summaryrefslogtreecommitdiffstats
path: root/ppapi/lib
diff options
context:
space:
mode:
authorjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-06 02:11:17 +0000
committerjbauman@chromium.org <jbauman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-06 02:11:17 +0000
commit3a9ac0a9aaf69b3cfc09d5194b83bb2a2130cac9 (patch)
treea8e04fa7a2f06a5fdf997ba1a9d93c7ced95f212 /ppapi/lib
parentbc23425942484265dab5e2540a9c2844851f0703 (diff)
downloadchromium_src-3a9ac0a9aaf69b3cfc09d5194b83bb2a2130cac9.zip
chromium_src-3a9ac0a9aaf69b3cfc09d5194b83bb2a2130cac9.tar.gz
chromium_src-3a9ac0a9aaf69b3cfc09d5194b83bb2a2130cac9.tar.bz2
Add new PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE_1_0 pepper interface.
This allows applications to draw to multiple render targets at the same time. BUG=318019 Review URL: https://codereview.chromium.org/182213003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255222 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/lib')
-rw-r--r--ppapi/lib/gl/gles2/gl2ext_ppapi.c11
-rw-r--r--ppapi/lib/gl/gles2/gl2ext_ppapi.h2
-rw-r--r--ppapi/lib/gl/gles2/gles2.c7
3 files changed, 20 insertions, 0 deletions
diff --git a/ppapi/lib/gl/gles2/gl2ext_ppapi.c b/ppapi/lib/gl/gles2/gl2ext_ppapi.c
index a310114..e5872b5 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_OpenGLES2DrawBuffers_Dev*
+ g_gles2_draw_buffers_interface = NULL;
// TODO(alokp): Make sure PP_TLS works on all supported platforms.
static PP_TLS PP_Resource g_current_context = 0;
@@ -73,6 +75,10 @@ GLboolean GL_APIENTRY glInitializePPAPI(
g_gles2_query_interface =
get_browser_interface(PPB_OPENGLES2_QUERY_INTERFACE);
}
+ if (!g_gles2_draw_buffers_interface) {
+ g_gles2_draw_buffers_interface =
+ get_browser_interface(PPB_OPENGLES2_DRAWBUFFERS_DEV_INTERFACE);
+ }
return g_gles2_interface ? GL_TRUE : GL_FALSE;
}
@@ -122,3 +128,8 @@ const struct PPB_OpenGLES2Query* GL_APIENTRY
glGetQueryInterfacePPAPI(void) {
return g_gles2_query_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 146d914..ff593c2 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_OpenGLES2DrawBuffers_Dev* GL_APIENTRY
+ glGetDrawBuffersInterfacePPAPI(void);
#ifdef __cplusplus
}
diff --git a/ppapi/lib/gl/gles2/gles2.c b/ppapi/lib/gl/gles2/gles2.c
index dabb20c..3e9732d 100644
--- a/ppapi/lib/gl/gles2/gles2.c
+++ b/ppapi/lib/gl/gles2/gles2.c
@@ -1055,3 +1055,10 @@ void GL_APIENTRY glVertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
if (ext)
ext->VertexAttribDivisorANGLE(glGetCurrentContextPPAPI(), index, divisor);
}
+void GL_APIENTRY glDrawBuffersEXT(GLsizei count, const GLenum* bufs) {
+ const struct PPB_OpenGLES2DrawBuffers_Dev* ext =
+ glGetDrawBuffersInterfacePPAPI();
+ if (ext)
+ ext->DrawBuffersEXT(glGetCurrentContextPPAPI(), count, bufs);
+}
+