(other) arenas. Those are false positives (often there is more
than one shortest path, all with the same length; e.g. in case of
a regular gridded section). Added more details in error reporting
to help in debugging, but generally disabled the test for identical
paths, only the actual path length is tested now.
* pass timeout to driver, rather than unconditional 1ms sleep
This way if the fence is signalled earlier, we can get on with life
sooner.
* optimize displacement bind/clear/render
Stop thrashing render targets, and group things together into single
render-passes. And only bind/clear if we will actually draw.
It adds support for OpenGL ES renderer, which is needed for Android port and for running STK on other embedded devices such as Raspberry Pi.
Currently it works in two ways:
- Shader-based pipeline, which requires OpenGL ES 3.0 (Android >= 4.3)
- Fallback to irrlicht-based fixed pipeline that needs OpenGL ES 2.0. The fixed pipeline generally works, but it is affected by the same issues as our OpenGL 2.1 fixed pipeline renderer.
I tried to modify our OpenGL renderer as little as possible to avoid regressions. The only one major change is that we are now using the "#stk_include" directive in shaders instead of linking multiple shaders into one program.
Currently it works only on linux. The Android port needs some refactoring. In theory it should be possible to make it working on Windows, but we would need some OpenGL ES SDK, or maybe modified libglew.
At this stage it is playable with current mesa drivers. I tested it on intel graphics card and I didn't notice any issues.
On Android only the OpenGL ES 2.0 renderer with fixed pipeline has been tested for now.