ANGLE (Almost Native Graphics Layer Engine) is a software wrapper, that provides a Khronos certified OpenGLES2.0 implementation on Windows platforms. This is a good tool to understand how 3D Graphics APIs work internally. Qt5 also uses ANGLE internally on windows builds, to be able to run the SceneGraph framework using OpenGLES2.0 across all platforms, including windows, in all versions from Qt5.1, Qt5.2 and further.
2. ANGLE – Code base
• Obtaining the code
• To get the code, git can be used, as below. Note that ANGLE
is a part of Chromium repository at this time (2014).
• git clone https://chromium.googlesource.com/angle/angle
• Code organisation
• ANGLE is written in c++, and there are 4 main sub projects
in ANGLE. These are listed below:
• libEGL libGLESv2 preprocessor translator The libEGL.lib, and
libGLESv2.lib are linked in every application, just like regular
OpenGL ES2 builds. The preprocessor and translator library
outputs, are a part of libGLESv2.lib itself, and are used for
Shader source compilation.
3. Building ANGLE
• Building
• There are 2 solution (.sln) files provided for building on
Windows platforms. These are
• angle/src/ANGLE.sln angle/samples/samples.sln These
need to be built, in the same order as above. When using
Visual Studio 2012 for Desktop, the below additional steps
are needed:
• Add the below path to the "Include Directories" option for
both projects (under C/C++ properties), and also separately
for libGLESv2.rc file (note that this is not a C/C++ file)
C:Program Files (x86)Windows
Kits8.0Includeum;C:Program Files (x86)Windows
Kits8.0Includeshared