diff options
author | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-17 11:14:08 +0000 |
---|---|---|
committer | zork@chromium.org <zork@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-07-17 11:14:08 +0000 |
commit | 078a18885570c144487ef89eacd0cfa44ea95139 (patch) | |
tree | d26390b79909ee8ef2ed92ac0e4437b5484e85ea /ppapi/lib | |
parent | 3d4807a6c12ae94ea7d03c17ab943d43f4b1e326 (diff) | |
download | chromium_src-078a18885570c144487ef89eacd0cfa44ea95139.zip chromium_src-078a18885570c144487ef89eacd0cfa44ea95139.tar.gz chromium_src-078a18885570c144487ef89eacd0cfa44ea95139.tar.bz2 |
Add PPAPI interface for OpenGL ES 2.0 Vertex Array Objects.
BUG=72612,370496
Review URL: https://codereview.chromium.org/397183002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@283750 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/lib')
-rw-r--r-- | ppapi/lib/gl/gles2/gl2ext_ppapi.c | 11 | ||||
-rw-r--r-- | ppapi/lib/gl/gles2/gl2ext_ppapi.h | 2 | ||||
-rw-r--r-- | ppapi/lib/gl/gles2/gles2.c | 29 |
3 files changed, 42 insertions, 0 deletions
diff --git a/ppapi/lib/gl/gles2/gl2ext_ppapi.c b/ppapi/lib/gl/gles2/gl2ext_ppapi.c index e5872b5..c37f41a 100644 --- a/ppapi/lib/gl/gles2/gl2ext_ppapi.c +++ b/ppapi/lib/gl/gles2/gl2ext_ppapi.c @@ -38,6 +38,8 @@ static const struct PPB_OpenGLES2ChromiumMapSub* g_gles2_chromium_map_sub_interface = NULL; static const struct PPB_OpenGLES2Query* g_gles2_query_interface = NULL; +static const struct PPB_OpenGLES2VertexArrayObject* + g_gles2_vertex_array_object_interface = NULL; static const struct PPB_OpenGLES2DrawBuffers_Dev* g_gles2_draw_buffers_interface = NULL; @@ -75,6 +77,10 @@ GLboolean GL_APIENTRY glInitializePPAPI( g_gles2_query_interface = get_browser_interface(PPB_OPENGLES2_QUERY_INTERFACE); } + if (!g_gles2_vertex_array_object_interface) { + g_gles2_vertex_array_object_interface = + get_browser_interface(PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE); + } if (!g_gles2_draw_buffers_interface) { g_gles2_draw_buffers_interface = get_browser_interface(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE); @@ -129,6 +135,11 @@ const struct PPB_OpenGLES2Query* GL_APIENTRY return g_gles2_query_interface; } +const struct PPB_OpenGLES2VertexArrayObject* GL_APIENTRY + glGetVertexArrayObjectInterfacePPAPI(void) { + return g_gles2_vertex_array_object_interface; +} + const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY glGetDrawBuffersInterfacePPAPI(void) { return g_gles2_draw_buffers_interface; diff --git a/ppapi/lib/gl/gles2/gl2ext_ppapi.h b/ppapi/lib/gl/gles2/gl2ext_ppapi.h index ff593c2..c4769033 100644 --- a/ppapi/lib/gl/gles2/gl2ext_ppapi.h +++ b/ppapi/lib/gl/gles2/gl2ext_ppapi.h @@ -49,6 +49,8 @@ GL_APICALL const struct PPB_OpenGLES2ChromiumMapSub* GL_APIENTRY glGetChromiumMapSubInterfacePPAPI(void); GL_APICALL const struct PPB_OpenGLES2Query* GL_APIENTRY glGetQueryInterfacePPAPI(void); +GL_APICALL const struct PPB_OpenGLES2VertexArrayObject* GL_APIENTRY + glGetVertexArrayObjectInterfacePPAPI(void); GL_APICALL const struct PPB_OpenGLES2DrawBuffers_Dev* GL_APIENTRY glGetDrawBuffersInterfacePPAPI(void); diff --git a/ppapi/lib/gl/gles2/gles2.c b/ppapi/lib/gl/gles2/gles2.c index 60922cd..faefb09 100644 --- a/ppapi/lib/gl/gles2/gles2.c +++ b/ppapi/lib/gl/gles2/gles2.c @@ -967,6 +967,35 @@ glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) { ext->GetQueryObjectuivEXT(glGetCurrentContextPPAPI(), id, pname, params); } +void GL_APIENTRY glGenVertexArraysOES(GLsizei n, GLuint* arrays) { + const struct PPB_OpenGLES2VertexArrayObject* ext = + glGetVertexArrayObjectInterfacePPAPI(); + if (ext) + ext->GenVertexArraysOES(glGetCurrentContextPPAPI(), n, arrays); +} + +void GL_APIENTRY glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) { + const struct PPB_OpenGLES2VertexArrayObject* ext = + glGetVertexArrayObjectInterfacePPAPI(); + if (ext) + ext->DeleteVertexArraysOES(glGetCurrentContextPPAPI(), n, arrays); +} + +GLboolean GL_APIENTRY glIsVertexArrayOES(GLuint array) { + const struct PPB_OpenGLES2VertexArrayObject* ext = + glGetVertexArrayObjectInterfacePPAPI(); + if (ext) + return ext->IsVertexArrayOES(glGetCurrentContextPPAPI(), array); + return 0; +} + +void GL_APIENTRY glBindVertexArrayOES(GLuint array) { + const struct PPB_OpenGLES2VertexArrayObject* ext = + glGetVertexArrayObjectInterfacePPAPI(); + if (ext) + ext->BindVertexArrayOES(glGetCurrentContextPPAPI(), array); +} + GLboolean GL_APIENTRY glEnableFeatureCHROMIUM(const char* feature) { const struct PPB_OpenGLES2ChromiumEnableFeature* ext = glGetChromiumEnableFeatureInterfacePPAPI(); |