diff options
author | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-09 00:10:27 +0000 |
---|---|---|
committer | jbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-09 00:10:27 +0000 |
commit | 26e14d18ae692d5e4af783bf92f33854bc20f86d (patch) | |
tree | d1a03c976fd5f7fcb5630b52c771ad4db56a5000 | |
parent | a446534de1a24cbfe8858a9958dd22383f1b49d1 (diff) | |
download | chromium_src-26e14d18ae692d5e4af783bf92f33854bc20f86d.zip chromium_src-26e14d18ae692d5e4af783bf92f33854bc20f86d.tar.gz chromium_src-26e14d18ae692d5e4af783bf92f33854bc20f86d.tar.bz2 |
Add gl bindings for ANGLE_instanced_arrays and ARB_instanced_arrays
BUG=93148
TEST=
Review URL: http://codereview.chromium.org/9348046
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121112 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | gpu/command_buffer/common/gl_mock.h | 18 | ||||
-rw-r--r-- | third_party/khronos/GLES2/gl2ext.h | 18 | ||||
-rw-r--r-- | third_party/khronos/README.chromium | 1 | ||||
-rwxr-xr-x | ui/gfx/gl/generate_bindings.py | 24 | ||||
-rw-r--r-- | ui/gfx/gl/gl_interface.h | 26 |
5 files changed, 87 insertions, 0 deletions
diff --git a/gpu/command_buffer/common/gl_mock.h b/gpu/command_buffer/common/gl_mock.h index 174da30..1b43373 100644 --- a/gpu/command_buffer/common/gl_mock.h +++ b/gpu/command_buffer/common/gl_mock.h @@ -486,6 +486,24 @@ class MockGLInterface : public GLInterface { MOCK_METHOD1(SetSurfaceCHROMIUM, void(GLuint)); MOCK_METHOD0(GetGraphicsResetStatusARB, GLenum()); + + MOCK_METHOD4(DrawArraysInstancedANGLE, void( + GLenum mode, GLint first, GLsizei count, GLsizei primcount)); + + MOCK_METHOD4(DrawArraysInstancedARB, void( + GLenum mode, GLint first, GLsizei count, GLsizei primcount)); + + MOCK_METHOD5(DrawElementsInstancedANGLE, void( + GLenum mode, GLsizei count, GLenum type, const void* indices, + GLsizei primcount)); + + MOCK_METHOD5(DrawElementsInstancedARB, void( + GLenum mode, GLsizei count, GLenum type, const void* indices, + GLsizei primcount)); + + MOCK_METHOD2(VertexAttribDivisorANGLE, void(GLuint index, GLuint divisor)); + + MOCK_METHOD2(VertexAttribDivisorARB, void(GLuint index, GLuint divisor)); }; } // namespace gfx diff --git a/third_party/khronos/GLES2/gl2ext.h b/third_party/khronos/GLES2/gl2ext.h index c22ef1e..547518c 100644 --- a/third_party/khronos/GLES2/gl2ext.h +++ b/third_party/khronos/GLES2/gl2ext.h @@ -218,6 +218,11 @@ typedef void* GLeglImageOES; #define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93A3 #endif +/* GL_ANGLE_instanced_arrays */ +#ifndef GL_ANGLE_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE +#endif + /*------------------------------------------------------------------------* * APPLE extension tokens *------------------------------------------------------------------------*/ @@ -956,6 +961,19 @@ GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); #endif +/* GL_ANGLE_instanced_arrays */ +#ifndef GL_ANGLE_instanced_arrays +#define GL_ANGLE_instanced_arrays 1 +#ifdef GL_GLEXT_PROTOTYPES +GL_APICALL void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor); +GL_APICALL void GL_APIENTRY glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +GL_APICALL void GL_APIENTRY glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif +typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISORANGLEPROC) (GLuint index, GLuint divisor); +typedef void (GL_APIENTRYP PFNGLDRAWARRAYSINSTANCEDANGLEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GL_APIENTRYP PFNGLDRAWELEMENTSINSTANCEDANGLEPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif + /*------------------------------------------------------------------------* * APPLE extension functions *------------------------------------------------------------------------*/ diff --git a/third_party/khronos/README.chromium b/third_party/khronos/README.chromium index c2b2769..6d30fdb 100644 --- a/third_party/khronos/README.chromium +++ b/third_party/khronos/README.chromium @@ -18,5 +18,6 @@ GLES2/gl2.h - Added GL_CONTEXT_LOST constant. GLES2/gl2ext.h - Added Chromium and Angle extensions. + - Added ANGLE_instanced_arrays EGL/eglplatform.h - Added EGLNative*Type for Mac. diff --git a/ui/gfx/gl/generate_bindings.py b/ui/gfx/gl/generate_bindings.py index 80e4d3b..0681a67 100755 --- a/ui/gfx/gl/generate_bindings.py +++ b/ui/gfx/gl/generate_bindings.py @@ -636,6 +636,30 @@ GL_FUNCTIONS = [ 'arguments': 'GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length,' 'GLint* values', }, +{ 'return_type': 'void', + 'names': ['glDrawArraysInstancedANGLE'], + 'arguments': 'GLenum mode, GLint first, GLsizei count, GLsizei primcount', }, +{ 'return_type': 'void', + 'names': ['glDrawArraysInstancedARB'], + 'arguments': 'GLenum mode, GLint first, GLsizei count, GLsizei primcount', }, +{ 'return_type': 'void', + 'names': ['glDrawElementsInstancedANGLE'], + 'arguments': + 'GLenum mode, GLsizei count, GLenum type, const void* indices, ' + 'GLsizei primcount', }, +{ 'return_type': 'void', + 'names': ['glDrawElementsInstancedARB'], + 'arguments': + 'GLenum mode, GLsizei count, GLenum type, const void* indices, ' + 'GLsizei primcount', }, +{ 'return_type': 'void', + 'names': ['glVertexAttribDivisorANGLE'], + 'arguments': + 'GLuint index, GLuint divisor', }, +{ 'return_type': 'void', + 'names': ['glVertexAttribDivisorARB'], + 'arguments': + 'GLuint index, GLuint divisor', }, ] OSMESA_FUNCTIONS = [ diff --git a/ui/gfx/gl/gl_interface.h b/ui/gfx/gl/gl_interface.h index bd372fb..f962b8d 100644 --- a/ui/gfx/gl/gl_interface.h +++ b/ui/gfx/gl/gl_interface.h @@ -603,6 +603,32 @@ class GL_EXPORT GLInterface { GLsizei* length, GLint* values) = 0; + virtual void DrawArraysInstancedANGLE(GLenum mode, + GLint first, + GLsizei count, + GLsizei primcount) = 0; + + virtual void DrawArraysInstancedARB(GLenum mode, + GLint first, + GLsizei count, + GLsizei primcount) = 0; + + virtual void DrawElementsInstancedANGLE(GLenum mode, + GLsizei count, + GLenum type, + const void* indices, + GLsizei primcount) = 0; + + virtual void DrawElementsInstancedARB(GLenum mode, + GLsizei count, + GLenum type, + const void* indices, + GLsizei primcount) = 0; + + virtual void VertexAttribDivisorANGLE(GLuint index, GLuint divisor) = 0; + + virtual void VertexAttribDivisorARB(GLuint index, GLuint divisor) = 0; + private: static GLInterface* interface_; }; |