This is a library providing OpenGL 1.x functionality for OpenGL ES accelerated hardware.
This is a fork a glshim (https://github.com/lunixbochs/glshim). Go check this lib if you need things like RemoteGL or TinyGLES (for 100% software rendering).
The focus is on compatibility and speed with a wide selection of game and software.
It has been tested successfully of a large selection of games and software, including: Minecraft, OpenMW, SeriousSam (both First and Second Encounters), RVGL (ReVolt GL), TSMC (The Secret Maryo Chronicles), TORCS, SpeedDreams, GL-117, Foobillard(plus), Blender 2.68 to name just a few.
Most function of OpenGL up to 1.5 are supported, with some notable exceptions:
- Reading of Depth or Stencil buffer will not work
- GL_FEEDBACK mode is not implemented
Some know limitations:
- GL_SELECT as some limitation in its implementation (for exemple, current Depth buffer or binded texture are not taken into account)
- NPOT texture are supported, but not with GL_REPEAT / GL_MIRRORED, only GL_CLAMP will work properly (unless the GLES Hardware support NPOT)
- Framebuffer use FRAMEBUFFER_OES extension (that must be present in the GLES 1.1 stack)
- Multiple Color attachment on Framebuffer are not supported
- OcclusionQuery is implemented, but with a 0 bits precision
- Probably many other things
Status of the GLES2 backend
- This backend is at its early stage of development, so do not expect much from it
- The FPE (Fixed Pipeline Emulator) is not implemented yet, so no OpenGL 1.5 drawing call will work
- The Shader Conversion is really crude, so only simple shaders will work
- An ES2 context should be usable (usefull for SDL2)
- Only OpenRA has been tested for now (and it does work fine in game)
How to compile and per-platform specific comment can be found here
Standard GLU do works without any issues.
Put lib/libGL.so.1 in your LD_LIBRARY_PATH
.
Beware that GL4ES is meant to replace any libGL you can have on your system (like Mesa for example)
There are many environnement variable to control gl4es behavour, also usable at runtime using glHint(...)
.
See here for all variables and what they do.
The change log is here