[About] [News] [Documentation] [Screenshots]

Chapter 3. Using bugle with OpenGL ES 2

3.1. Introduction

As of July 2008, bugle has partial support for OpenGL ES 2. It has been tested using the AMD OpenGL ES Emulator 1.3, and basic features work. These include tracing, and the debugger using breakpoints, examining state, and examining shaders. Texture and framebuffer viewing does not currently work (due to limitations of the query mechanisms in OpenGL ES 2. Many of the filtersets do not work, either because they intrinsicly depend on features excluded from OpenGL ES 2 (such as a modelview matrix or polygon mode), or because they have not yet been ported. The test suite is not supported.

It should be noted that when using an emulator that works on top of OpenGL, an alternative approach to debugging is to use bugle as a regular (desktop) OpenGL debugger. This will reveal data such as textures and framebuffers. However, it cannot access the error checking that is done in the emulation layer. For example, an INVALID_ENUM error will not be caught by the debugger if it is generated entirely within the emulation layer.

Support on top of X11 rather than Windows is theoretically present and compiles, but has not been tested. Feedback from anyone with a working OpenGL ES 2 implementation on an X11 system is welcomed.

3.2. Configuration

Configuration can be done largely as described in Section 2.2, “Configuring”. To indicate that OpenGL ES 2 is desired, the extra parameter --with-target=gles2-egl-win must be passed to configure.

Note

Desktop OpenGL header files and libraries are still required for the GUI debugger.

You also need to ensure that your various paths are set correctly. The headers, libraries and DLLs for the OpenGL ES 2 implementation need to be listed in CPATH, LIBRARY_PATH and PATH respectively, unless the compiler is already configured to find them.

3.3. Installation

Apart from the usual installation step, some extra setup is required on a Windows system, due to the limitations of the dynamic linker. Create copies of the system libEGL.dll and libGLESv2.dll called bglEGL.dll and bglGLESv2.dll respectively. Then modify each of these files so that links to the other use the replacement name. This can be done as follows, although you might find that the version of sed provided with MSYS is too old:

$ sed -b 's/libGLESv2/bglGLESv2/g' libEGL.dll > bglEGL.dll
$ sed -b 's/libEGL/bglEGL/g' libGLESv2.dll > bglGLESv2.dll

You should check that the new files are exactly the same size as the originals. Next, make sure that the versions of libEGL.dll and libGLESv2.dll installed by bugle are the first on the path, and that the renamed libraries you generated are also on the path.


SourceForge.net Logo