RESOLVED FIXED 96937
OpenGL building issue when compiling for Harmattan
https://bugs.webkit.org/show_bug.cgi?id=96937
Summary OpenGL building issue when compiling for Harmattan
Laszlo Papp
Reported 2012-09-17 11:56:41 PDT
There are two issues: 1) PFNGL* 2) GLchar not typedef'd for Harmattan so a workaround needs to be added in here, just like it was done for the QtBase project. In file included from platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:37: platform/graphics/opengl/Extensions3DOpenGLES.h:110: error: 'PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:111: error: 'PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:112: error: 'PFNGLBINDVERTEXARRAYOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:113: error: 'PFNGLDELETEVERTEXARRAYSOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:114: error: 'PFNGLGENVERTEXARRAYSOESPROC' does not name a type platform/graphics/opengl/Extensions3DOpenGLES.h:115: error: 'PFNGLISVERTEXARRAYOESPROC' does not name a type platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'void WebCore::GraphicsContext3D::compileShader(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:479: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:480: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:482: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'bool WebCore::GraphicsContext3D::getActiveAttrib(Platform3DObject, GC3Duint, WebCore::ActiveInfo&)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:632: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:636: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:639: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'bool WebCore::GraphicsContext3D::getActiveUniform(Platform3DObject, GC3Duint, WebCore::ActiveInfo&)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:656: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:660: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:664: error: request for member 'get' in 'name', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'WTF::String WebCore::GraphicsContext3D::getProgramInfoLog(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1118: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1119: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1121: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: In member function 'WTF::String WebCore::GraphicsContext3D::getShaderInfoLog(Platform3DObject)': platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: 'GLchar' was not declared in this scope platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: template argument 1 is invalid platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: invalid type in declaration before '=' token platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: expected type-specifier before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: expected ')' before 'GLchar' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1185: error: cannot convert 'WTF::PassOwnArrayPtr<int>' to 'int' in initialization platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1186: error: request for member 'get' in 'info', which is of non-class type 'int' platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:1188: error: request for member 'get' in 'info', which is of non-class type 'int' make[3]: *** [obj/release/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.o] Error 1 make[3]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit/Source/WebCore' make[2]: *** [sub-Target-pri-make_first-ordered] Error 2 make[2]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit/Source/WebCore' make[1]: *** [sub-Source-WebCore-WebCore-pro-make_first-ordered] Error 2 make[1]: Leaving directory `/home/lpapp/qt5-beta1/qt5-webkit/qt5-webkit' dh_auto_build: make -j1 returned exit code 2 make: *** [build] Error 9
Attachments
Initial fixes (1.68 KB, patch)
2012-09-17 16:38 PDT, Lauro Moura Maranhao Neto
no flags
Patch (1.93 KB, patch)
2012-09-18 04:42 PDT, Simon Hausmann
no flags
Lauro Moura Maranhao Neto
Comment 1 2012-09-17 16:38:54 PDT
Created attachment 164474 [details] Initial fixes
Lauro Moura Maranhao Neto
Comment 2 2012-09-17 16:41:47 PDT
As suggested by Simon over IRC, including qopengles2ext.h from Extensions3DOpenGLES.h helped solve the issue, but just including it causes the build to fail like in https://bugs.webkit.org/show_bug.cgi?id=91030. This is due to qopengles2ext.h defining two of the PFN* extension functions with a PROC suffix (like Khrono's version) while WebKit's own ANGLE copy does not. So, in the first patch are the initial changes to make it past this problem.
Laszlo Papp
Comment 3 2012-09-18 01:37:31 PDT
Wouldn't a qopengl.h include be enough? That would already have the typedef for the GLchar, and would also include the qopengles2ext.h header.
Simon Hausmann
Comment 4 2012-09-18 04:27:14 PDT
Part of the problem is that the qopengles2ext.h header has what I believe is a bug. See also https://codereview.qt-project.org/#change,35004 This can be worked around though by avoiding the inclusion of gl2ext.h.
Simon Hausmann
Comment 5 2012-09-18 04:42:02 PDT
WebKit Review Bot
Comment 6 2012-09-18 05:24:23 PDT
Comment on attachment 164532 [details] Patch Clearing flags on attachment: 164532 Committed r128877: <http://trac.webkit.org/changeset/128877>
WebKit Review Bot
Comment 7 2012-09-18 05:24:27 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.