Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(501)

Unified Diff: ppapi/shared_impl/ppb_opengles2_shared.cc

Issue 9420017: Add Pepper support for several GL extensions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: change name Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ppapi/shared_impl/ppb_opengles2_shared.cc
diff --git a/ppapi/shared_impl/ppb_opengles2_shared.cc b/ppapi/shared_impl/ppb_opengles2_shared.cc
index 635ea410ce7047607b219dfc7ee71537ae16f7bd..049e8da58e8a6163c3d03a28b1244fc1f13c69cc 100644
--- a/ppapi/shared_impl/ppb_opengles2_shared.cc
+++ b/ppapi/shared_impl/ppb_opengles2_shared.cc
@@ -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.
@@ -743,8 +743,74 @@ void Viewport(
GetGLES(context_id)->Viewport(x, y, width, height);
}
+void BlitFramebufferEXT(
+ PP_Resource context_id, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
+ GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask,
+ GLenum filter) {
+ GetGLES(
+ context_id)->BlitFramebufferEXT(
+ srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask,
+ filter);
+}
+
+void RenderbufferStorageMultisampleEXT(
+ PP_Resource context_id, GLenum target, GLsizei samples,
+ GLenum internalformat, GLsizei width, GLsizei height) {
+ GetGLES(
+ context_id)->RenderbufferStorageMultisampleEXT(
+ target, samples, internalformat, width, height);
+}
+
+GLboolean EnableFeatureCHROMIUM(PP_Resource context_id, const char* feature) {
+ return GetGLES(context_id)->EnableFeatureCHROMIUM(feature);
+}
-const struct PPB_OpenGLES2 ppb_opengles2 = {
+void* MapBufferSubDataCHROMIUM(
+ PP_Resource context_id, GLuint target, GLintptr offset, GLsizeiptr size,
+ GLenum access) {
+ return GetGLES(
+ context_id)->MapBufferSubDataCHROMIUM(target, offset, size, access);
+}
+
+void UnmapBufferSubDataCHROMIUM(PP_Resource context_id, const void* mem) {
+ GetGLES(context_id)->UnmapBufferSubDataCHROMIUM(mem);
+}
+
+void* MapTexSubImage2DCHROMIUM(
+ PP_Resource context_id, GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type,
+ GLenum access) {
+ return GetGLES(
+ context_id)->MapTexSubImage2DCHROMIUM(
+ target, level, xoffset, yoffset, width, height, format, type,
+ access);
+}
+
+void UnmapTexSubImage2DCHROMIUM(PP_Resource context_id, const void* mem) {
+ GetGLES(context_id)->UnmapTexSubImage2DCHROMIUM(mem);
+}
+
+void DrawArraysInstancedANGLE(
+ PP_Resource context_id, GLenum mode, GLint first, GLsizei count,
+ GLsizei primcount) {
+ GetGLES(context_id)->DrawArraysInstancedANGLE(mode, first, count, primcount);
+}
+
+void DrawElementsInstancedANGLE(
+ PP_Resource context_id, GLenum mode, GLsizei count, GLenum type,
+ const void* indices, GLsizei primcount) {
+ GetGLES(
+ context_id)->DrawElementsInstancedANGLE(
+ mode, count, type, indices, primcount);
+}
+
+void VertexAttribDivisorANGLE(
+ PP_Resource context_id, GLuint index, GLuint divisor) {
+ GetGLES(context_id)->VertexAttribDivisorANGLE(index, divisor);
+}
+
+
+const struct PPB_OpenGLES2 ppb_opengles2_ = {
&ActiveTexture,
&AttachShader,
&BindAttribLocation,
@@ -889,10 +955,72 @@ const struct PPB_OpenGLES2 ppb_opengles2 = {
&Viewport
};
+
+const struct PPB_OpenGLES2InstancedArrays ppb_opengles2_instancedarrays = {
+ &DrawArraysInstancedANGLE,
+ &DrawElementsInstancedANGLE,
+ &VertexAttribDivisorANGLE
+};
+
+
+const struct PPB_OpenGLES2FramebufferBlit ppb_opengles2_framebufferblit = {
+ &BlitFramebufferEXT
+};
+
+
+const struct PPB_OpenGLES2FramebufferMultisample
+ ppb_opengles2_framebuffermultisample = {
+ &RenderbufferStorageMultisampleEXT
+};
+
+
+const struct PPB_OpenGLES2ChromiumEnableFeature
+ ppb_opengles2_chromiumenablefeature = {
+ &EnableFeatureCHROMIUM
+};
+
+
+const struct PPB_OpenGLES2ChromiumMapSub ppb_opengles2_chromiummapsub = {
+ &MapBufferSubDataCHROMIUM,
+ &UnmapBufferSubDataCHROMIUM,
+ &MapTexSubImage2DCHROMIUM,
+ &UnmapTexSubImage2DCHROMIUM
+};
+
} // namespace
const PPB_OpenGLES2* PPB_OpenGLES2_Shared::GetInterface() {
- return &ppb_opengles2;
+ return &ppb_opengles2_;
+}
+
+
+const PPB_OpenGLES2InstancedArrays*
+ PPB_OpenGLES2_Shared::GetInstancedArraysInterface() {
+ return &ppb_opengles2_instancedarrays;
+}
+
+
+const PPB_OpenGLES2FramebufferBlit*
+ PPB_OpenGLES2_Shared::GetFramebufferBlitInterface() {
+ return &ppb_opengles2_framebufferblit;
+}
+
+
+const PPB_OpenGLES2FramebufferMultisample*
+ PPB_OpenGLES2_Shared::GetFramebufferMultisampleInterface() {
+ return &ppb_opengles2_framebuffermultisample;
+}
+
+
+const PPB_OpenGLES2ChromiumEnableFeature*
+ PPB_OpenGLES2_Shared::GetChromiumEnableFeatureInterface() {
+ return &ppb_opengles2_chromiumenablefeature;
+}
+
+
+const PPB_OpenGLES2ChromiumMapSub*
+ PPB_OpenGLES2_Shared::GetChromiumMapSubInterface() {
+ return &ppb_opengles2_chromiummapsub;
}
} // namespace ppapi

Powered by Google App Engine
This is Rietveld 408576698