Changeset 142786 in webkit
- Timestamp:
- Feb 13, 2013 1:30:21 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r142779 r142786 1 2013-02-13 Kondapally Kalyan <kalyan.kondapally@intel.com> 2 3 [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object. 4 https://bugs.webkit.org/show_bug.cgi?id=109382 5 6 Reviewed by Kenneth Russell. 7 8 Enable oes-vertex-array-object for EFL port. 9 10 * fast/canvas/webgl/oes-vertex-array-object-expected.txt: 11 * fast/canvas/webgl/oes-vertex-array-object.html: 12 * platform/efl/TestExpectations: 13 1 14 2013-02-13 Filip Pizlo <fpizlo@apple.com> 2 15 -
trunk/LayoutTests/fast/canvas/webgl/oes-vertex-array-object-expected.txt
r129275 r142786 49 49 50 50 TEST COMPLETE 51 -
trunk/LayoutTests/fast/canvas/webgl/oes-vertex-array-object.html
r129275 r142786 34 34 debug(""); 35 35 36 if (window.internals) 37 window.internals.settings.setWebGLErrorsToConsoleEnabled(false); 38 36 39 var wtu = WebGLTestUtils; 37 40 var canvas = document.getElementById("canvas"); … … 591 594 debug(""); 592 595 successfullyParsed = true; 596 isSuccessfullyParsed(); 593 597 </script> 594 <script src="../../resources/js-test-post.js"></script>595 596 598 </body> 597 599 </html> -
trunk/LayoutTests/platform/efl/TestExpectations
r142774 r142786 345 345 346 346 webkit.org/b/99096 fast/canvas/webgl/arraybuffer-transfer-of-control.html [ Failure Pass ] 347 348 # Expected to fail until support for extension is implemented349 webkit.org/b/96828 fast/canvas/webgl/oes-vertex-array-object.html [ Failure Pass ]350 347 351 348 # Expected to fail until OES_element_index_uint extension is implemented -
trunk/Source/WebCore/ChangeLog
r142782 r142786 1 2013-02-13 Kondapally Kalyan <kalyan.kondapally@intel.com> 2 3 [WebGL][EFL][GTK][Qt]Add support for OES_vertex_array_object. 4 https://bugs.webkit.org/show_bug.cgi?id=109382 5 6 Reviewed by Kenneth Russell. 7 8 Covered by fast/canvas/webgl/oes-vertex-array-object.html 9 10 This patch adds support for using Vertex Array Object with OpenGl. 11 The patch adds support for loading necessary opengl functions 12 and support for checking GL_ARB_vertex_array_object. The support 13 for OES_vertex_array_object is advertised if GL_ARB_vertex_array_object is 14 supported. 15 16 * platform/graphics/OpenGLShims.cpp: 17 (WebCore::initializeOpenGLShims): 18 * platform/graphics/OpenGLShims.h: 19 (_OpenGLFunctionTable): 20 Added support for loading the necessary functions. 21 22 * platform/graphics/opengl/Extensions3DOpenGL.cpp: 23 (WebCore::Extensions3DOpenGL::createVertexArrayOES): 24 (WebCore::Extensions3DOpenGL::deleteVertexArrayOES): 25 (WebCore::Extensions3DOpenGL::isVertexArrayOES): 26 (WebCore::Extensions3DOpenGL::bindVertexArrayOES): 27 (WebCore::Extensions3DOpenGL::supportsExtension): 28 29 (WebCore): 30 (WebCore::Extensions3DOpenGL::isVertexArrayObjectSupported): 31 * platform/graphics/opengl/Extensions3DOpenGL.h: 32 (Extensions3DOpenGL): 33 1 34 2013-02-13 Eberhard Graether <egraether@google.com> 2 35 -
trunk/Source/WebCore/platform/graphics/OpenGLShims.cpp
r134476 r142786 128 128 ASSIGN_FUNCTION_TABLE_ENTRY(glBindFramebuffer, success); 129 129 ASSIGN_FUNCTION_TABLE_ENTRY(glBindRenderbuffer, success); 130 ASSIGN_FUNCTION_TABLE_ENTRY(glBindVertexArray, success); 130 131 ASSIGN_FUNCTION_TABLE_ENTRY(glBlendColor, success); 131 132 ASSIGN_FUNCTION_TABLE_ENTRY(glBlendEquation, success); … … 149 150 ASSIGN_FUNCTION_TABLE_ENTRY(glDeleteRenderbuffers, success); 150 151 ASSIGN_FUNCTION_TABLE_ENTRY(glDeleteShader, success); 152 ASSIGN_FUNCTION_TABLE_ENTRY(glDeleteVertexArrays, success); 151 153 ASSIGN_FUNCTION_TABLE_ENTRY(glDetachShader, success); 152 154 ASSIGN_FUNCTION_TABLE_ENTRY(glDisableVertexAttribArray, success); … … 158 160 ASSIGN_FUNCTION_TABLE_ENTRY(glGenFramebuffers, success); 159 161 ASSIGN_FUNCTION_TABLE_ENTRY(glGenRenderbuffers, success); 162 ASSIGN_FUNCTION_TABLE_ENTRY(glGenVertexArrays, success); 160 163 ASSIGN_FUNCTION_TABLE_ENTRY(glGetActiveAttrib, success); 161 164 ASSIGN_FUNCTION_TABLE_ENTRY(glGetActiveUniform, success); … … 181 184 ASSIGN_FUNCTION_TABLE_ENTRY(glIsRenderbuffer, success); 182 185 ASSIGN_FUNCTION_TABLE_ENTRY(glIsShader, success); 186 ASSIGN_FUNCTION_TABLE_ENTRY(glIsVertexArray, success); 183 187 ASSIGN_FUNCTION_TABLE_ENTRY(glLinkProgram, success); 184 188 ASSIGN_FUNCTION_TABLE_ENTRY(glRenderbufferStorage, success); -
trunk/Source/WebCore/platform/graphics/OpenGLShims.h
r127961 r142786 54 54 typedef void (GLAPIENTRY *glBindFramebufferType) (GLenum, GLuint); 55 55 typedef void (GLAPIENTRY *glBindRenderbufferType) (GLenum, GLuint); 56 typedef void (GLAPIENTRY *glBindVertexArrayType) (GLuint); 56 57 typedef void (GLAPIENTRY *glBlendColorType) (GLclampf, GLclampf, GLclampf, GLclampf); 57 58 typedef void (GLAPIENTRY *glBlendEquationType) (GLenum); … … 70 71 typedef void (GLAPIENTRY *glDeleteRenderbuffersType) (GLsizei n, const GLuint*); 71 72 typedef void (GLAPIENTRY *glDeleteShaderType) (GLuint); 73 typedef void (GLAPIENTRY *glDeleteVertexArraysType) (GLsizei, const GLuint*); 72 74 typedef void (GLAPIENTRY *glDetachShaderType) (GLuint, GLuint); 73 75 typedef void (GLAPIENTRY *glDisableVertexAttribArrayType) (GLuint); … … 79 81 typedef void (GLAPIENTRY *glGenFramebuffersType) (GLsizei, GLuint*); 80 82 typedef void (GLAPIENTRY *glGenRenderbuffersType) (GLsizei, GLuint*); 83 typedef void (GLAPIENTRY *glGenVertexArraysType) (GLsizei, GLuint*); 81 84 typedef void (GLAPIENTRY *glGetActiveAttribType) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*); 82 85 typedef void (GLAPIENTRY *glGetActiveUniformType) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*); … … 102 105 typedef GLboolean (GLAPIENTRY *glIsRenderbufferType) (GLuint); 103 106 typedef GLboolean (GLAPIENTRY *glIsShaderType) (GLuint); 107 typedef GLboolean (GLAPIENTRY *glIsVertexArrayType) (GLuint); 104 108 typedef void (GLAPIENTRY *glLinkProgramType) (GLuint); 105 109 typedef void (GLAPIENTRY *glRenderbufferStorageType) (GLenum, GLenum, GLsizei, GLsizei); … … 150 154 FUNCTION_TABLE_ENTRY(glBindFramebuffer); 151 155 FUNCTION_TABLE_ENTRY(glBindRenderbuffer); 156 FUNCTION_TABLE_ENTRY(glBindVertexArray); 152 157 FUNCTION_TABLE_ENTRY(glBlendColor); 153 158 FUNCTION_TABLE_ENTRY(glBlendEquation); … … 166 171 FUNCTION_TABLE_ENTRY(glDeleteRenderbuffers); 167 172 FUNCTION_TABLE_ENTRY(glDeleteShader); 173 FUNCTION_TABLE_ENTRY(glDeleteVertexArrays); 168 174 FUNCTION_TABLE_ENTRY(glDetachShader); 169 175 FUNCTION_TABLE_ENTRY(glDisableVertexAttribArray); … … 175 181 FUNCTION_TABLE_ENTRY(glGenFramebuffers); 176 182 FUNCTION_TABLE_ENTRY(glGenRenderbuffers); 183 FUNCTION_TABLE_ENTRY(glGenVertexArrays); 177 184 FUNCTION_TABLE_ENTRY(glGetActiveAttrib); 178 185 FUNCTION_TABLE_ENTRY(glGetActiveUniform); … … 198 205 FUNCTION_TABLE_ENTRY(glIsRenderbuffer); 199 206 FUNCTION_TABLE_ENTRY(glIsShader); 207 FUNCTION_TABLE_ENTRY(glIsVertexArray); 200 208 FUNCTION_TABLE_ENTRY(glLinkProgram); 201 209 FUNCTION_TABLE_ENTRY(glRenderbufferStorage); … … 249 257 #define glBindRenderbufferEXT glBindRenderbuffer 250 258 #define glBindRenderbuffer LOOKUP_GL_FUNCTION(glBindRenderbuffer) 259 #define glBindVertexArray LOOKUP_GL_FUNCTION(glBindVertexArray) 251 260 #define glBlendColor LOOKUP_GL_FUNCTION(glBlendColor) 252 261 #define glBlendEquation LOOKUP_GL_FUNCTION(glBlendEquation) … … 269 278 #define glDeleteRenderbuffers LOOKUP_GL_FUNCTION(glDeleteRenderbuffers) 270 279 #define glDeleteShader LOOKUP_GL_FUNCTION(glDeleteShader) 280 #define glDeleteVertexArrays LOOKUP_GL_FUNCTION(glDeleteVertexArrays) 271 281 #define glDetachShader LOOKUP_GL_FUNCTION(glDetachShader) 272 282 #define glDisableVertexAttribArray LOOKUP_GL_FUNCTION(glDisableVertexAttribArray) … … 283 293 #define glGenRenderbuffersEXT glGenRenderbuffers 284 294 #define glGenRenderbuffers LOOKUP_GL_FUNCTION(glGenRenderbuffers) 295 #define glGenVertexArrays LOOKUP_GL_FUNCTION(glGenVertexArrays) 285 296 #define glGetActiveAttrib LOOKUP_GL_FUNCTION(glGetActiveAttrib) 286 297 #define glGetActiveUniform LOOKUP_GL_FUNCTION(glGetActiveUniform) … … 311 322 #define glIsRenderbuffer LOOKUP_GL_FUNCTION(glIsRenderbuffer) 312 323 #define glIsShader LOOKUP_GL_FUNCTION(glIsShader) 324 #define glIsVertexArray LOOKUP_GL_FUNCTION(glIsVertexArray) 313 325 #define glLinkProgram LOOKUP_GL_FUNCTION(glLinkProgram) 314 326 #define glRenderbufferStorageEXT glRenderbufferStorage -
trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.cpp
r131780 r142786 65 65 { 66 66 m_context->makeContextCurrent(); 67 #if !PLATFORM(GTK) && !PLATFORM(QT) && !PLATFORM(EFL) && defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object68 67 GLuint array = 0; 68 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 69 if (isVertexArrayObjectSupported()) 70 glGenVertexArrays(1, &array); 71 #elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 69 72 glGenVertexArraysAPPLE(1, &array); 73 #endif 70 74 return array; 71 #else72 return 0;73 #endif74 75 } 75 76 … … 78 79 if (!array) 79 80 return; 80 81 81 82 m_context->makeContextCurrent(); 82 #if !PLATFORM(GTK) && !PLATFORM(QT) && !PLATFORM(EFL) && defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 83 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 84 if (isVertexArrayObjectSupported()) 85 glDeleteVertexArrays(1, &array); 86 #elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 83 87 glDeleteVertexArraysAPPLE(1, &array); 84 88 #endif … … 89 93 if (!array) 90 94 return GL_FALSE; 91 95 92 96 m_context->makeContextCurrent(); 93 #if !PLATFORM(GTK) && !PLATFORM(QT) && !PLATFORM(EFL) && defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 97 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 98 if (isVertexArrayObjectSupported()) 99 return glIsVertexArray(array); 100 #elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 94 101 return glIsVertexArrayAPPLE(array); 95 #e lse102 #endif 96 103 return GL_FALSE; 97 #endif98 104 } 99 105 … … 101 107 { 102 108 m_context->makeContextCurrent(); 103 #if !PLATFORM(GTK) && !PLATFORM(QT) && !PLATFORM(EFL) && defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 109 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 110 if (isVertexArrayObjectSupported()) 111 glBindVertexArray(array); 112 #elif defined(GL_APPLE_vertex_array_object) && GL_APPLE_vertex_array_object 104 113 glBindVertexArrayAPPLE(array); 105 114 #else … … 151 160 152 161 // GL_OES_vertex_array_object 153 if (name == "GL_OES_vertex_array_object") 162 if (name == "GL_OES_vertex_array_object") { 163 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 164 return m_availableExtensions.contains("GL_ARB_vertex_array_object"); 165 #else 154 166 return m_availableExtensions.contains("GL_APPLE_vertex_array_object"); 167 #endif 168 } 155 169 156 170 // Desktop GL always supports the standard derivative functions … … 173 187 } 174 188 189 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 190 bool Extensions3DOpenGL::isVertexArrayObjectSupported() 191 { 192 static const bool supportsVertexArrayObject = supports("GL_OES_vertex_array_object"); 193 return supportsVertexArrayObject; 194 } 195 #endif 196 175 197 } // namespace WebCore 176 198 -
trunk/Source/WebCore/platform/graphics/opengl/Extensions3DOpenGL.h
r128572 r142786 60 60 virtual bool supportsExtension(const WTF::String&); 61 61 virtual String getExtensions(); 62 #if (PLATFORM(GTK) || PLATFORM(QT) || PLATFORM(EFL)) 63 private: 64 bool isVertexArrayObjectSupported(); 65 #endif 62 66 }; 63 67
Note: See TracChangeset
for help on using the changeset viewer.