Both gl2.h and gl3.h are included when USE_OPENGL_ES is enabled in . This breaks the build for systems that only support OpenGLES2, but not OpenGLES3. USE_OPENGL_ES should specify the version of the API and include the corresponding header only, to avoid any confusion.
USE_OPENGL_ES is supposed to require only OpenGL ES 2, not OpenGL ES 3.
Looks like this has been broken since r209233, bug #165283, over a year ago.
I thought we had a requirement to support WebKit on devices that have only OpenGL ES 2. However, if nobody has noticed that this has been broken for over a year, maybe that's not so important anymore.
> Both gl2.h and gl3.h are included when USE_OPENGL_ES is enabled in . This
> breaks the build for systems that only support OpenGLES2, but not OpenGLES3.
> USE_OPENGL_ES should specify the version of the API and include the
> corresponding header only, to avoid any confusion.
It was that way actually. USE_OPENGL_ES was USE_OPENGL_ES_2 and (for linux ports) meant we were using the GLES2 API, but it was renamed to USE_OPENGL_ES in r228590 as in apple ports it can mean GLES2 or GLES3 APIs.
In any case, the <GLES3/gl3.h> include should not be necessary. They seem to include it just for the definition of GL_MAJOR_VERSION, which which seems to be only used in Extensions3DOpenGLCommon::initializeAvailableExtensions() in a platform guarded code.
I'll send a temptative patch removing that include to see what exactly (if anything) fails in the wincairo bot.
Created attachment 334443 [details]
Comment on attachment 334443 [details]
Clearing flags on attachment: 334443
Committed r228917: <https://trac.webkit.org/changeset/228917>
All reviewed patches have been landed. Closing bug.