Hi All,Nigel,

The plan is that applications would use only a single header "glew.h" for ES and desktop. GLEW usage for ES should be as similar to that of desktop GLEW.

 But how the extensions can be exposed, there are few option:

1. There could be 2 lib one exposing ONLY desktop and the other ONLY ES core and extensions. The memory usage will be minimum and the enum would be filtered automatically. But then the applications(which targets both desktop and ES and wants to check extensions from both) has to take care that it compiles for both for which it might need to use some macro(may be same macro which will be used inside GLEW lib).

2. Expose all desktop GL and ES extensions and core spec and its corresponding function pointers(global variables). But then for embedded system there would be many global variables( which will be not be required), unnecessary increasing the memory usage.

3. Expose all desktop GL and ES extensions and core  spec but try to do some compile time optimizations(at compile time as we know that desktop extensions are not supported by ES and vice-versa) so that memory usage can be decreased. But how much it can be done need to be checked.

For the 2 and 3 case we need to take care of variables coming from both desktop and ES.

Any suggestion ?


On 24 May 2011 00:37, Nigel Stewart <nstewart@nvidia.com> wrote:

I looked over the changes, changes seem uncontroversial to me.
My git wizardry is a bit limited, but I'll have a bit of a think
about the correct way to selectively bring changes into the
GLEW repository, such as --include vs --no-parent for wget.

So the idea is for glew.h to expose BOTH desktop GL and
ES together?  And glewInit will detect and load the
relevant API?  The idea is to filter all the enums to
ensure they're not duplicated?  Just wondering.

Keep up the good work.

- Nigel

On 5/23/11 6:03 AM, Shariq Hasnain wrote:

Hi All, Nigel,

In continuation of the discussion I had regarding adding ES and EGL support to GLEW,I have done the following things :

1 - Added core  files of ES and EGL.
    The OpenGL ES version 1.0 and EGL version 1.1 are added in the auto/src folder in the files glew_head_es.h and eglew_head.h respectively.
    The egl header file 'egl.h' for version 1.0 is not present in khronos website(Actually it is there but it contains the egl.h for version 1.3), so this version has not been added.
    The higher versions of ES and EGL are added in core_es and core_egl folders respectively.

2- The ES and EGL extensions specs are downloaded and parsed to create the desciptors.

    To create the descriptors files from the extensions files two new scipts are added:
    update_ext_egl.sh and update_ext_es.sh.

  Also the update_registry.sh has been modified to use "--include" option instead of the earlier "--no-parent" options.
  The earlier option was downloading all the extensions recursively from www.khronos.org <http://www.khronos.org>. even when specified the path "http://www.khronos.org/registry/gles/".

The  source code can be cloned using "git clone /git://git.linaro.org/people/shariqhasnain/glew-es_core.git <http://git.linaro.org/people/shariqhasnain/glew-es_core.git>"/

Kindly go through it and provide your feedback.

My next plan is to generate the header files having ES and EGL support.
glew.h will have ES related stuff and eglew.h will be generated similar to glxew.h/wglew.h.


           This email message is for the sole use of the intended recipient(s) and may contain
           confidential information.  Any unauthorized review, use, disclosure or distribution
           is prohibited.  If you are not the intended recipient, please contact the sender by
           reply email and destroy all copies of the original message.