WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-65465-20110801155842.patch (text/plain), 4.84 KB, created by
Benjamin Poulain
on 2011-08-01 06:52:31 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Benjamin Poulain
Created:
2011-08-01 06:52:31 PDT
Size:
4.84 KB
patch
obsolete
>Subversion Revision: 91993 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 8e33e61485b4a54d440ccc114de72bc3244c389c..a2b4d81fbc4415ddcac4776ad0b9b685b6699db8 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2011-08-01 Benjamin Poulain <benjamin@webkit.org> >+ >+ [Qt] OpenGLShims does not build on ARM >+ https://bugs.webkit.org/show_bug.cgi?id=65465 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Fix the build with OpenGL ES 2: >+ -lookupOpenGLFunctionAddress() was defined but not used for OpenGL ES. >+ -glBlitFramebuffer() and glRenderbufferStorageMultisample() are not part of the specification. >+ When those are available as platform extension, the extension has been added. >+ -GLchar is not defined on some platform. The patch adds the same typedef as the official definition >+ to avoid conflicts. >+ >+ * platform/graphics/cairo/OpenGLShims.cpp: >+ (lookupOpenGLFunctionAddress): >+ (WebCore::initializeOpenGLShims): >+ * platform/graphics/cairo/OpenGLShims.h: >+ > 2011-07-28 Leandro Gracia Gil <leandrogracia@chromium.org> > > Fix speech input icon rect on RTL directions. >diff --git a/Source/WebCore/platform/graphics/cairo/OpenGLShims.cpp b/Source/WebCore/platform/graphics/cairo/OpenGLShims.cpp >index e5c51dd6c5fa484d3cdca036f78192db99503906..28316e0e4a5391c4511605bde2867cf9e1840eaa 100644 >--- a/Source/WebCore/platform/graphics/cairo/OpenGLShims.cpp >+++ b/Source/WebCore/platform/graphics/cairo/OpenGLShims.cpp >@@ -26,15 +26,18 @@ > #include <wtf/text/CString.h> > #include <wtf/text/WTFString.h> > >+namespace WebCore { >+ >+OpenGLFunctionTable* openGLFunctionTable() >+{ >+ static OpenGLFunctionTable table; >+ return &table; >+} >+ > #if PLATFORM(QT) && defined(QT_OPENGL_ES_2) > #define ASSIGN_FUNCTION_TABLE_ENTRY(FunctionName, success) \ > openGLFunctionTable()->FunctionName = ::FunctionName > #else >-#define ASSIGN_FUNCTION_TABLE_ENTRY(FunctionName, success) \ >- openGLFunctionTable()->FunctionName = reinterpret_cast<FunctionName##Type>(lookupOpenGLFunctionAddress(#FunctionName, success)) >-#endif >- >-namespace WebCore { > > #if PLATFORM(QT) > static void* getProcAddress(const char* procName) >@@ -86,11 +89,9 @@ static void* lookupOpenGLFunctionAddress(const char* functionName, bool& success > return target; > } > >-OpenGLFunctionTable* openGLFunctionTable() >-{ >- static OpenGLFunctionTable table; >- return &table; >-} >+#define ASSIGN_FUNCTION_TABLE_ENTRY(FunctionName, success) \ >+ openGLFunctionTable()->FunctionName = reinterpret_cast<FunctionName##Type>(lookupOpenGLFunctionAddress(#FunctionName, success)) >+#endif > > bool initializeOpenGLShims() > { >@@ -110,7 +111,17 @@ bool initializeOpenGLShims() > ASSIGN_FUNCTION_TABLE_ENTRY(glBlendEquation, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glBlendEquationSeparate, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glBlendFuncSeparate, success); >+#if defined(GL_ES_VERSION_2_0) >+ >+#if defined(GL_ANGLE_framebuffer_blit) >+ openGLFunctionTable()->glBlitFramebuffer = ::GL_ANGLE_framebuffer_blit; >+#else >+ openGLFunctionTable()->glBlitFramebuffer = 0; >+#endif >+ >+#else > ASSIGN_FUNCTION_TABLE_ENTRY(glBlitFramebuffer, success); >+#endif > ASSIGN_FUNCTION_TABLE_ENTRY(glBufferData, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glBufferSubData, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glCheckFramebufferStatus, success); >@@ -156,7 +167,19 @@ bool initializeOpenGLShims() > ASSIGN_FUNCTION_TABLE_ENTRY(glIsShader, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glLinkProgram, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glRenderbufferStorage, success); >+#if defined(GL_ES_VERSION_2_0) >+ >+#if defined(GL_APPLE_framebuffer_multisample) >+ openGLFunctionTable()->glRenderbufferStorageMultisample = ::glRenderbufferStorageMultisampleAPPLE; >+#elif defined(GL_ANGLE_framebuffer_multisample) >+ openGLFunctionTable()->glRenderbufferStorageMultisample = ::glRenderbufferStorageMultisampleANGLE; >+#else >+ openGLFunctionTable()->glRenderbufferStorageMultisample = 0; >+#endif >+ >+#else > ASSIGN_FUNCTION_TABLE_ENTRY(glRenderbufferStorageMultisample, success); >+#endif > ASSIGN_FUNCTION_TABLE_ENTRY(glSampleCoverage, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glShaderSource, success); > ASSIGN_FUNCTION_TABLE_ENTRY(glStencilFuncSeparate, success); >diff --git a/Source/WebCore/platform/graphics/cairo/OpenGLShims.h b/Source/WebCore/platform/graphics/cairo/OpenGLShims.h >index efbdf86e74ad71faf6ebbd1ebd82067487933dc7..a5c3c777997b9735a8427811ea97c0db790a4f4c 100644 >--- a/Source/WebCore/platform/graphics/cairo/OpenGLShims.h >+++ b/Source/WebCore/platform/graphics/cairo/OpenGLShims.h >@@ -23,6 +23,11 @@ > #include <GL/gl.h> > #endif > >+#if defined(GL_ES_VERSION_2_0) >+// Some openGL ES systems miss this typedef. >+typedef char GLchar; >+#endif >+ > typedef struct _OpenGLFunctionTable OpenGLFunctionTable; > > namespace WebCore {
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 65465
:
102511
| 102513