GL4ES - The OpenGL driver for GLES Hardware

GL4ES is a OpenGL 2.1/1.5 to GL ES 2.0/1.1 translation library, with support for Pandora, ODroid, OrangePI, CHIP, Raspberry PI, Android, Emscripten and AmigaOS4.

View on GitHub

GL4ES - OpenGL for GLES Hardware

Many OpenGL software already works with GL4ES.


Complex OpenGL 1.5 games, like Foobillard++, that uses cascaded display list, line stipple and TexGen works fine. Here running on the OpenPandora. It will work with both GLES1.1 and GLES2.0 backend. Most OpenGL 1.x games will runs.

Play on Youtube

The limit is an hardware one: GLES1.1 and GLES2.0 hardware do not allow reading Depth buffer, so some games that use it (like AssaultCube) for game play wont run correctly. Some FPS are using it just for cosmetics (Lens flare) and run fine without, like Serious Sam (both First and Second Encounter), here on the OpenPandora again.

AssaultCube on Android AssaultCube an Android also use gl4es for the rendering

Play on Youtube

More complex program, like Blender, can also run.


But also Minecraft, here on an ODroid in this old video.


On the OpenGL 2.0, side using GLES2.0 backend, OpenRA can run on the Pandora.

And OpenGL 2.x opens a lot of doors. Many commercial games run just fine on gl4es.

Play on Youtube

Here some FNA games, running on an ODroid XU4 (using method described there). That video show just a few, and even more can be make to run.

Play on Youtube

And with Box86, even more commercial games can run, like here NeverWinter Night on an ODroid XU4

GL4ES also now works on some other platform, like AmigaOS4 (so BigEndian platform) Play on Youtube

Here running Foobillard++

Or even in a web browser (that support WebGL): try it with Stunt Car Remake here

Another web browser example: Serious Sam Engine, try it here (initial 80MB game files download). source repo Gif of Serious Engine

Neverball in a browser also use gl4es for rendering: neverball in a browser

About performances: while gl4es is a wrapper, there are many caching and works done in gl4es to avoid slowdown and bottleneck. While those optimization are useless in highly optimized engine, like the Quake3 engine, on other engine and games, gl4es can be (much) faster than straight GLES conversion (especially if there are a lot of glBegin(...)/glEnd() drawing commands). On an x86 VM, gl4es running on GLES can be faster than direct OpenGL use on some games! Now GL4ES can also use VBO, either when the software use it, or automatically when using glList, giving sometimes a nice boost (the boost depend on the Platform and game)