Hi Mark just to clarify for you,
>GL/gl.h is for desktop OpenGL. GLES2/gl2.h & GLES2/gl2ext.h are for OpenGL ES. gl.h and gl2.h/gl2ext.h should not be mixed. correct >Functions with suffices (IMG, ANGLE, etc.) are extensions to OpenGL ES. Similar functionality is often available in core desktop OpenGL using the same function name without the suffix. then again - there is an OpenGL ES program being compiled to EMSCRIPTEN IMG, ANGLE suffices do not translate to correct webgl names and code fails in browser in functions with IMG ANGLE are used, so only C code without suffices will compile correctly with EMSCRIPTEN so functionality of IMG ANGLE functions is present in webgl - but correct OpenGL ES program using them will not compile to working code. >I do not know which of the extensions you have mentioned are supported by Emscripten’s OpenGL ES emulation. so those functions I mentioned in first email are supported ( it is clear by looking at library_gl.js ) and more - they are implemented via those IMG ANGLE functions at Windows platform in Firefox and Chrome - But correct headers for OpenGL ES programs using those functions to work seamlessly are missing - one needs to fix headers manually so the correct OpengGL ES program starts to compile to correct webgl program in browser. Regards Sergey On Thu, Apr 2, 2015 at 5:51 AM, キャロウ マーク <[email protected]> wrote: > > On Apr 2, 2015, at 5:19 AM, Sergey Kurdakov <[email protected]> > wrote: > > Hi, > > I started to update my port of osg to emscripten > > and I have following questions ( though I will resolve them by manual > header file change, the questions seems of interest to others ). > > as far as I understand, library_gl.js replaces > > gl calls in C code by name. > > Now,there are few special cases when functions are available via > library_gl.js > but cannot be found in OpenGL ES header files supplied with EMSCRIPTEN. > > say > > > https://github.com/kripken/emscripten/blob/master/system/include/GLES2/gl2ext.h > > declares > GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, > GLsizei, GLenum, GLsizei, GLsizei); > > and there is > > glRenderbufferStorageMultisample in library_gl.js > > if someone has a C program with glRenderbufferStorageMultisampleIMG > this call will not be mapped ( though internally this function will be used > by WebGL), but if someone uses > glRenderbufferStorageMultisample it will be ok. > but > glRenderbufferStorageMultisample is declared in gl/gl.h > > but mixing gl/gl.h and GLES2 gl2.h/gl2ext.h headers might cause conflicts. > > there are other combinations. > > say glBlitFramebuffer is in > > https://github.com/kripken/emscripten/blob/master/src/library_gl.js > > but there is no corresponding function declared in > > > https://github.com/kripken/emscripten/blob/master/system/include/GLES2/gl2ext.h > or > > https://github.com/kripken/emscripten/blob/master/system/include/GLES2/gl2.h > > ( this function appears in ES 3.0/webgl 2.0 but I do not see guards > against it's use with WebGL 1.0 code, and else l glBlitFramebufferANGLE > exists in ANGLE but it's not declared at all in above two files) > > so it will be nice to have a standard approach in described situation - > when there is an available webgl function which is possible to use in > OpenGL ES 2.0 in ANGLE based application ( it's nice to debug at desctop > prior to compiling code to emscripten ), but there is no straightforward > way to 'compile' into valid webgl code without changing stock header files > and no > additional information is provided > at > > http://kripken.github.io/emscripten-site/docs/porting/multimedia_and_graphics/OpenGL-support.html#opengl-support-webgl-subset > > > GL/gl.h is for desktop OpenGL. GLES2/gl2.h & GLES2/gl2ext.h are for OpenGL > ES. gl.h and gl2.h/gl2ext.h should not be mixed. They are for different, > but similar, APIs. > > Functions with suffices (IMG, ANGLE, etc.) are extensions to OpenGL ES. > Similar functionality is often available in core desktop OpenGL using the > same function name without the suffix. > > The correct way to use extensions in OpenGL ES 2 is to get the extensions > string via glGetString(GL_EXTENSIONS) and search it for the name of the > extension of interest. If found, it means the implementation supports that > extension. You then use eglGetProcAddr to get pointers to the extension > functions and use those pointers to call the functions. > > I do not know which of the extensions you have mentioned are supported by > Emscripten’s OpenGL ES emulation. > > Regards > > -Mark > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
