Summary

GLEW (OpenGL Extension Wrangler Library) has been adopted in many cross-platform OpenGL applications/toolkits/games, but it has no EGL/GLES2 support currently. This spec is intended to add EGL/GLES2 support in GLEW library, so that GLEW library can be used on ARM platforms, and it can be easier to port GLEW based OpenGL applications to OpenGL ES2.0.

Release Note

TBD

Rationale

Minimize duplicate effort for porting GLEW based applications to OpenGL ES2.0.

User stories

One developer wants to port a GLEW based OpenGL application to OpenGL ES2.0. Then he needs to update those GLEW related code with flavor of OpenGL ES2.0. There are many similar cases for porting OpenGL applications/toolkits/games, and then there will be much duplicate effort for the porting.

Assumptions

Design

  • Different libraries should be loaded for symbol resolve at runtime (libGL.so for OpenGL, and libGLESv2.so for OpenGL ES2.0). It can be determined at compile time for the first step. Later the proxy library for OpenGL/OpenGL ES can be used to resolve it.
  • Runtime check for OpenGL ES core/extension functions can be implemented similar as existing OpenGL core/extension support in GLEW library.
  • Runtime check for EGL core/extension functions can be implemented similar as existing GLX support in GLEW library.
  • GLX and WGL support will not be provided for embedded.

Implementation

No duplication of effort:

  • Announce the intentions and design ideas to the upstream mailing list and get feedback.
  • Locate other groups that may be planning on (or have already started) working on a similar task and see how we can cooperate

OpenGL ES/EGL support:

  • The glew library source files are generated by perl scripts and some other source files.
  • Perl scripts need to be modified to add support for OpenGL ES 2.0/EGL.
  • Modify the scripts to download the OpenGL ES/EGL specs, parse them and generate the descriptor from it and resolve any issue faced.
  • Modify the source files needed to generate the final glew library source code.

Test/Demo Plan

  • Need to test the glew library in embedded. It can be done by following ways:
    • Find applications using glew (would be using OpenGL and wgl/glx) and port it to use OpenGL ES and EGL.
    • Applications using OpenGL ES and EGL can be modified to use the glew library and test them.
    • Make some basic application to test the implementation.
  • How the final testing will be done will depend on the number of tests cases available for each one of them.

Unresolved issues

  • Need to check if VisualInfo utility (which gives the list of the pixel formats supported) and glewinfo utility (which allows you to verify the entry points for the extensions supported on your platform) need to be provided for embedded glew library.

BoF agenda and discussion

TBD


WorkingGroups/Middleware/Graphics/Specs/1105/GLES2_ GLEW (last modified 2011-01-27 06:48:57)