summaryrefslogtreecommitdiffstats
path: root/ppapi/lib/gl/gles2/gl2ext_ppapi.c
diff options
context:
space:
mode:
authorjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-26 21:09:27 +0000
committerjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-26 21:09:27 +0000
commit5763796867cd36dc07dbba82e38c61a5879a0c77 (patch)
treee7ce1e2150db516a842e278f013b1ebc7585d7e3 /ppapi/lib/gl/gles2/gl2ext_ppapi.c
parentffbec69cf826b6c5e88f2f29500c2f6f277130b9 (diff)
downloadchromium_src-5763796867cd36dc07dbba82e38c61a5879a0c77.zip
chromium_src-5763796867cd36dc07dbba82e38c61a5879a0c77.tar.gz
chromium_src-5763796867cd36dc07dbba82e38c61a5879a0c77.tar.bz2
Add Pepper support for several GL extensions
Add support to the command buffer code generator to generate multiple pepper interfaces, and use that to generate interfaces for ANGLE_instanced_arrays, ANGLE_framebuffer_blit, ANGLE_framebuffer_multisample, CHROMIUM_enable_feature, and CHROMIUM_map_sub. BUG=93148 TEST= Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=123696 Review URL: https://chromiumcodereview.appspot.com/9420017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123702 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/lib/gl/gles2/gl2ext_ppapi.c')
-rw-r--r--ppapi/lib/gl/gles2/gl2ext_ppapi.c58
1 files changed, 57 insertions, 1 deletions
diff --git a/ppapi/lib/gl/gles2/gl2ext_ppapi.c b/ppapi/lib/gl/gles2/gl2ext_ppapi.c
index 62d842d..6bdc09d 100644
--- a/ppapi/lib/gl/gles2/gl2ext_ppapi.c
+++ b/ppapi/lib/gl/gles2/gl2ext_ppapi.c
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -26,6 +26,16 @@
// TODO(alokp): This will need to be thread-safe if we build gles2 as a
// shared library.
static const struct PPB_OpenGLES2* g_gles2_interface = NULL;
+static const struct PPB_OpenGLES2InstancedArrays_Dev*
+ g_gles2_instanced_arrays_interface = NULL;
+static const struct PPB_OpenGLES2FramebufferBlit_Dev*
+ g_gles2_framebuffer_blit_interface = NULL;
+static const struct PPB_OpenGLES2FramebufferMultisample_Dev*
+ g_gles2_framebuffer_multisample_interface = NULL;
+static const struct PPB_OpenGLES2ChromiumEnableFeature_Dev*
+ g_gles2_chromium_enable_feature_interface = NULL;
+static const struct PPB_OpenGLES2ChromiumMapSub_Dev*
+ g_gles2_chromium_map_sub_interface = NULL;
// TODO(alokp): Make sure PP_TLS works on all supported platforms.
static PP_TLS PP_Resource g_current_context = 0;
@@ -35,6 +45,28 @@ GLboolean GL_APIENTRY glInitializePPAPI(
if (!g_gles2_interface) {
g_gles2_interface = get_browser_interface(PPB_OPENGLES2_INTERFACE);
}
+ if (!g_gles2_instanced_arrays_interface) {
+ g_gles2_instanced_arrays_interface =
+ get_browser_interface(PPB_OPENGLES2_INSTANCEDARRAYS_DEV_INTERFACE);
+ }
+ if (!g_gles2_framebuffer_blit_interface) {
+ g_gles2_framebuffer_blit_interface =
+ get_browser_interface(PPB_OPENGLES2_FRAMEBUFFERBLIT_DEV_INTERFACE);
+ }
+ if (!g_gles2_framebuffer_multisample_interface) {
+ g_gles2_framebuffer_multisample_interface =
+ get_browser_interface(
+ PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_DEV_INTERFACE);
+ }
+ if (!g_gles2_chromium_enable_feature_interface) {
+ g_gles2_chromium_enable_feature_interface =
+ get_browser_interface(
+ PPB_OPENGLES2_CHROMIUMENABLEFEATURE_DEV_INTERFACE);
+ }
+ if (!g_gles2_chromium_map_sub_interface) {
+ g_gles2_chromium_map_sub_interface =
+ get_browser_interface(PPB_OPENGLES2_CHROMIUMMAPSUB_DEV_INTERFACE);
+ }
return g_gles2_interface ? GL_TRUE : GL_FALSE;
}
@@ -55,3 +87,27 @@ const struct PPB_OpenGLES2* GL_APIENTRY glGetInterfacePPAPI() {
return g_gles2_interface;
}
+const struct PPB_OpenGLES2InstancedArrays_Dev* GL_APIENTRY
+ glGetInstancedArraysInterfacePPAPI() {
+ return g_gles2_instanced_arrays_interface;
+}
+
+const struct PPB_OpenGLES2FramebufferBlit_Dev* GL_APIENTRY
+ glGetFramebufferBlitInterfacePPAPI() {
+ return g_gles2_framebuffer_blit_interface;
+}
+
+const struct PPB_OpenGLES2FramebufferMultisample_Dev* GL_APIENTRY
+ glGetFramebufferMultisampleInterfacePPAPI() {
+ return g_gles2_framebuffer_multisample_interface;
+}
+
+const struct PPB_OpenGLES2ChromiumEnableFeature_Dev* GL_APIENTRY
+ glGetChromiumEnableFeatureInterfacePPAPI() {
+ return g_gles2_chromium_enable_feature_interface;
+}
+
+const struct PPB_OpenGLES2ChromiumMapSub_Dev* GL_APIENTRY
+ glGetChromiumMapSubInterfacePPAPI() {
+ return g_gles2_chromium_map_sub_interface;
+}