Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ppapi / c / ppb_opengles2.h
index 7fec50d..8847377 100644 (file)
@@ -1,17 +1,61 @@
-// Copyright 2014 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.
+/* Copyright 2014 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. */
 
-// This file is auto-generated from
-// gpu/command_buffer/build_gles2_cmd_buffer.py
-// It's formatted by clang-format using chromium coding style:
-//    clang-format -i -style=chromium filename
-// DO NOT EDIT!
+/* From ppb_opengles2.idl modified Fri Sep  5 14:52:51 2014. */
 
-// OpenGL ES interface.
 #ifndef PPAPI_C_PPB_OPENGLES2_H_
 #define PPAPI_C_PPB_OPENGLES2_H_
 
+#include "ppapi/c/pp_macros.h"
+#include "ppapi/c/pp_resource.h"
+#include "ppapi/c/pp_stdint.h"
+
+#define PPB_OPENGLES2_INTERFACE_1_0 "PPB_OpenGLES2;1.0"
+#define PPB_OPENGLES2_INTERFACE PPB_OPENGLES2_INTERFACE_1_0
+
+#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 \
+    "PPB_OpenGLES2InstancedArrays;1.0"
+#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE \
+    PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0
+
+#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 \
+    "PPB_OpenGLES2FramebufferBlit;1.0"
+#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE \
+    PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0
+
+#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 \
+    "PPB_OpenGLES2FramebufferMultisample;1.0"
+#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE \
+    PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0
+
+#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 \
+    "PPB_OpenGLES2ChromiumEnableFeature;1.0"
+#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE \
+    PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0
+
+#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 \
+    "PPB_OpenGLES2ChromiumMapSub;1.0"
+#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE \
+    PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0
+
+#define PPB_OPENGLES2_QUERY_INTERFACE_1_0 "PPB_OpenGLES2Query;1.0"
+#define PPB_OPENGLES2_QUERY_INTERFACE PPB_OPENGLES2_QUERY_INTERFACE_1_0
+
+#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0 \
+    "PPB_OpenGLES2VertexArrayObject;1.0"
+#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE \
+    PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0
+
+/**
+ * @file
+ * This file is auto-generated from
+ * gpu/command_buffer/build_gles2_cmd_buffer.py
+ * It's formatted by clang-format using chromium coding style:
+ *    clang-format -i -style=chromium filename
+ * DO NOT EDIT! */
+
+
 #include "ppapi/c/pp_resource.h"
 
 #ifndef __gl2_h_
@@ -39,8 +83,469 @@ typedef long int GLsizeiptr;
 #endif  // _WIN64
 #endif  // __gl2_h_
 
-#define PPB_OPENGLES2_INTERFACE_1_0 "PPB_OpenGLES2;1.0"
-#define PPB_OPENGLES2_INTERFACE PPB_OPENGLES2_INTERFACE_1_0
+
+/**
+ * @addtogroup Interfaces
+ * @{
+ */
+struct PPB_OpenGLES2_1_0 {
+  void (*ActiveTexture)(PP_Resource context, GLenum texture);
+  void (*AttachShader)(PP_Resource context, GLuint program, GLuint shader);
+  void (*BindAttribLocation)(PP_Resource context,
+                             GLuint program,
+                             GLuint index,
+                             const char* name);
+  void (*BindBuffer)(PP_Resource context, GLenum target, GLuint buffer);
+  void (*BindFramebuffer)(PP_Resource context,
+                          GLenum target,
+                          GLuint framebuffer);
+  void (*BindRenderbuffer)(PP_Resource context,
+                           GLenum target,
+                           GLuint renderbuffer);
+  void (*BindTexture)(PP_Resource context, GLenum target, GLuint texture);
+  void (*BlendColor)(PP_Resource context,
+                     GLclampf red,
+                     GLclampf green,
+                     GLclampf blue,
+                     GLclampf alpha);
+  void (*BlendEquation)(PP_Resource context, GLenum mode);
+  void (*BlendEquationSeparate)(PP_Resource context,
+                                GLenum modeRGB,
+                                GLenum modeAlpha);
+  void (*BlendFunc)(PP_Resource context, GLenum sfactor, GLenum dfactor);
+  void (*BlendFuncSeparate)(PP_Resource context,
+                            GLenum srcRGB,
+                            GLenum dstRGB,
+                            GLenum srcAlpha,
+                            GLenum dstAlpha);
+  void (*BufferData)(PP_Resource context,
+                     GLenum target,
+                     GLsizeiptr size,
+                     const void* data,
+                     GLenum usage);
+  void (*BufferSubData)(PP_Resource context,
+                        GLenum target,
+                        GLintptr offset,
+                        GLsizeiptr size,
+                        const void* data);
+  GLenum (*CheckFramebufferStatus)(PP_Resource context, GLenum target);
+  void (*Clear)(PP_Resource context, GLbitfield mask);
+  void (*ClearColor)(PP_Resource context,
+                     GLclampf red,
+                     GLclampf green,
+                     GLclampf blue,
+                     GLclampf alpha);
+  void (*ClearDepthf)(PP_Resource context, GLclampf depth);
+  void (*ClearStencil)(PP_Resource context, GLint s);
+  void (*ColorMask)(PP_Resource context,
+                    GLboolean red,
+                    GLboolean green,
+                    GLboolean blue,
+                    GLboolean alpha);
+  void (*CompileShader)(PP_Resource context, GLuint shader);
+  void (*CompressedTexImage2D)(PP_Resource context,
+                               GLenum target,
+                               GLint level,
+                               GLenum internalformat,
+                               GLsizei width,
+                               GLsizei height,
+                               GLint border,
+                               GLsizei imageSize,
+                               const void* data);
+  void (*CompressedTexSubImage2D)(PP_Resource context,
+                                  GLenum target,
+                                  GLint level,
+                                  GLint xoffset,
+                                  GLint yoffset,
+                                  GLsizei width,
+                                  GLsizei height,
+                                  GLenum format,
+                                  GLsizei imageSize,
+                                  const void* data);
+  void (*CopyTexImage2D)(PP_Resource context,
+                         GLenum target,
+                         GLint level,
+                         GLenum internalformat,
+                         GLint x,
+                         GLint y,
+                         GLsizei width,
+                         GLsizei height,
+                         GLint border);
+  void (*CopyTexSubImage2D)(PP_Resource context,
+                            GLenum target,
+                            GLint level,
+                            GLint xoffset,
+                            GLint yoffset,
+                            GLint x,
+                            GLint y,
+                            GLsizei width,
+                            GLsizei height);
+  GLuint (*CreateProgram)(PP_Resource context);
+  GLuint (*CreateShader)(PP_Resource context, GLenum type);
+  void (*CullFace)(PP_Resource context, GLenum mode);
+  void (*DeleteBuffers)(PP_Resource context, GLsizei n, const GLuint* buffers);
+  void (*DeleteFramebuffers)(PP_Resource context,
+                             GLsizei n,
+                             const GLuint* framebuffers);
+  void (*DeleteProgram)(PP_Resource context, GLuint program);
+  void (*DeleteRenderbuffers)(PP_Resource context,
+                              GLsizei n,
+                              const GLuint* renderbuffers);
+  void (*DeleteShader)(PP_Resource context, GLuint shader);
+  void (*DeleteTextures)(PP_Resource context,
+                         GLsizei n,
+                         const GLuint* textures);
+  void (*DepthFunc)(PP_Resource context, GLenum func);
+  void (*DepthMask)(PP_Resource context, GLboolean flag);
+  void (*DepthRangef)(PP_Resource context, GLclampf zNear, GLclampf zFar);
+  void (*DetachShader)(PP_Resource context, GLuint program, GLuint shader);
+  void (*Disable)(PP_Resource context, GLenum cap);
+  void (*DisableVertexAttribArray)(PP_Resource context, GLuint index);
+  void (*DrawArrays)(PP_Resource context,
+                     GLenum mode,
+                     GLint first,
+                     GLsizei count);
+  void (*DrawElements)(PP_Resource context,
+                       GLenum mode,
+                       GLsizei count,
+                       GLenum type,
+                       const void* indices);
+  void (*Enable)(PP_Resource context, GLenum cap);
+  void (*EnableVertexAttribArray)(PP_Resource context, GLuint index);
+  void (*Finish)(PP_Resource context);
+  void (*Flush)(PP_Resource context);
+  void (*FramebufferRenderbuffer)(PP_Resource context,
+                                  GLenum target,
+                                  GLenum attachment,
+                                  GLenum renderbuffertarget,
+                                  GLuint renderbuffer);
+  void (*FramebufferTexture2D)(PP_Resource context,
+                               GLenum target,
+                               GLenum attachment,
+                               GLenum textarget,
+                               GLuint texture,
+                               GLint level);
+  void (*FrontFace)(PP_Resource context, GLenum mode);
+  void (*GenBuffers)(PP_Resource context, GLsizei n, GLuint* buffers);
+  void (*GenerateMipmap)(PP_Resource context, GLenum target);
+  void (*GenFramebuffers)(PP_Resource context, GLsizei n, GLuint* framebuffers);
+  void (*GenRenderbuffers)(PP_Resource context,
+                           GLsizei n,
+                           GLuint* renderbuffers);
+  void (*GenTextures)(PP_Resource context, GLsizei n, GLuint* textures);
+  void (*GetActiveAttrib)(PP_Resource context,
+                          GLuint program,
+                          GLuint index,
+                          GLsizei bufsize,
+                          GLsizei* length,
+                          GLint* size,
+                          GLenum* type,
+                          char* name);
+  void (*GetActiveUniform)(PP_Resource context,
+                           GLuint program,
+                           GLuint index,
+                           GLsizei bufsize,
+                           GLsizei* length,
+                           GLint* size,
+                           GLenum* type,
+                           char* name);
+  void (*GetAttachedShaders)(PP_Resource context,
+                             GLuint program,
+                             GLsizei maxcount,
+                             GLsizei* count,
+                             GLuint* shaders);
+  GLint (*GetAttribLocation)(PP_Resource context,
+                             GLuint program,
+                             const char* name);
+  void (*GetBooleanv)(PP_Resource context, GLenum pname, GLboolean* params);
+  void (*GetBufferParameteriv)(PP_Resource context,
+                               GLenum target,
+                               GLenum pname,
+                               GLint* params);
+  GLenum (*GetError)(PP_Resource context);
+  void (*GetFloatv)(PP_Resource context, GLenum pname, GLfloat* params);
+  void (*GetFramebufferAttachmentParameteriv)(PP_Resource context,
+                                              GLenum target,
+                                              GLenum attachment,
+                                              GLenum pname,
+                                              GLint* params);
+  void (*GetIntegerv)(PP_Resource context, GLenum pname, GLint* params);
+  void (*GetProgramiv)(PP_Resource context,
+                       GLuint program,
+                       GLenum pname,
+                       GLint* params);
+  void (*GetProgramInfoLog)(PP_Resource context,
+                            GLuint program,
+                            GLsizei bufsize,
+                            GLsizei* length,
+                            char* infolog);
+  void (*GetRenderbufferParameteriv)(PP_Resource context,
+                                     GLenum target,
+                                     GLenum pname,
+                                     GLint* params);
+  void (*GetShaderiv)(PP_Resource context,
+                      GLuint shader,
+                      GLenum pname,
+                      GLint* params);
+  void (*GetShaderInfoLog)(PP_Resource context,
+                           GLuint shader,
+                           GLsizei bufsize,
+                           GLsizei* length,
+                           char* infolog);
+  void (*GetShaderPrecisionFormat)(PP_Resource context,
+                                   GLenum shadertype,
+                                   GLenum precisiontype,
+                                   GLint* range,
+                                   GLint* precision);
+  void (*GetShaderSource)(PP_Resource context,
+                          GLuint shader,
+                          GLsizei bufsize,
+                          GLsizei* length,
+                          char* source);
+  const GLubyte* (*GetString)(PP_Resource context, GLenum name);
+  void (*GetTexParameterfv)(PP_Resource context,
+                            GLenum target,
+                            GLenum pname,
+                            GLfloat* params);
+  void (*GetTexParameteriv)(PP_Resource context,
+                            GLenum target,
+                            GLenum pname,
+                            GLint* params);
+  void (*GetUniformfv)(PP_Resource context,
+                       GLuint program,
+                       GLint location,
+                       GLfloat* params);
+  void (*GetUniformiv)(PP_Resource context,
+                       GLuint program,
+                       GLint location,
+                       GLint* params);
+  GLint (*GetUniformLocation)(PP_Resource context,
+                              GLuint program,
+                              const char* name);
+  void (*GetVertexAttribfv)(PP_Resource context,
+                            GLuint index,
+                            GLenum pname,
+                            GLfloat* params);
+  void (*GetVertexAttribiv)(PP_Resource context,
+                            GLuint index,
+                            GLenum pname,
+                            GLint* params);
+  void (*GetVertexAttribPointerv)(PP_Resource context,
+                                  GLuint index,
+                                  GLenum pname,
+                                  void** pointer);
+  void (*Hint)(PP_Resource context, GLenum target, GLenum mode);
+  GLboolean (*IsBuffer)(PP_Resource context, GLuint buffer);
+  GLboolean (*IsEnabled)(PP_Resource context, GLenum cap);
+  GLboolean (*IsFramebuffer)(PP_Resource context, GLuint framebuffer);
+  GLboolean (*IsProgram)(PP_Resource context, GLuint program);
+  GLboolean (*IsRenderbuffer)(PP_Resource context, GLuint renderbuffer);
+  GLboolean (*IsShader)(PP_Resource context, GLuint shader);
+  GLboolean (*IsTexture)(PP_Resource context, GLuint texture);
+  void (*LineWidth)(PP_Resource context, GLfloat width);
+  void (*LinkProgram)(PP_Resource context, GLuint program);
+  void (*PixelStorei)(PP_Resource context, GLenum pname, GLint param);
+  void (*PolygonOffset)(PP_Resource context, GLfloat factor, GLfloat units);
+  void (*ReadPixels)(PP_Resource context,
+                     GLint x,
+                     GLint y,
+                     GLsizei width,
+                     GLsizei height,
+                     GLenum format,
+                     GLenum type,
+                     void* pixels);
+  void (*ReleaseShaderCompiler)(PP_Resource context);
+  void (*RenderbufferStorage)(PP_Resource context,
+                              GLenum target,
+                              GLenum internalformat,
+                              GLsizei width,
+                              GLsizei height);
+  void (*SampleCoverage)(PP_Resource context, GLclampf value, GLboolean invert);
+  void (*Scissor)(PP_Resource context,
+                  GLint x,
+                  GLint y,
+                  GLsizei width,
+                  GLsizei height);
+  void (*ShaderBinary)(PP_Resource context,
+                       GLsizei n,
+                       const GLuint* shaders,
+                       GLenum binaryformat,
+                       const void* binary,
+                       GLsizei length);
+  void (*ShaderSource)(PP_Resource context,
+                       GLuint shader,
+                       GLsizei count,
+                       const char** str,
+                       const GLint* length);
+  void (*StencilFunc)(PP_Resource context, GLenum func, GLint ref, GLuint mask);
+  void (*StencilFuncSeparate)(PP_Resource context,
+                              GLenum face,
+                              GLenum func,
+                              GLint ref,
+                              GLuint mask);
+  void (*StencilMask)(PP_Resource context, GLuint mask);
+  void (*StencilMaskSeparate)(PP_Resource context, GLenum face, GLuint mask);
+  void (*StencilOp)(PP_Resource context,
+                    GLenum fail,
+                    GLenum zfail,
+                    GLenum zpass);
+  void (*StencilOpSeparate)(PP_Resource context,
+                            GLenum face,
+                            GLenum fail,
+                            GLenum zfail,
+                            GLenum zpass);
+  void (*TexImage2D)(PP_Resource context,
+                     GLenum target,
+                     GLint level,
+                     GLint internalformat,
+                     GLsizei width,
+                     GLsizei height,
+                     GLint border,
+                     GLenum format,
+                     GLenum type,
+                     const void* pixels);
+  void (*TexParameterf)(PP_Resource context,
+                        GLenum target,
+                        GLenum pname,
+                        GLfloat param);
+  void (*TexParameterfv)(PP_Resource context,
+                         GLenum target,
+                         GLenum pname,
+                         const GLfloat* params);
+  void (*TexParameteri)(PP_Resource context,
+                        GLenum target,
+                        GLenum pname,
+                        GLint param);
+  void (*TexParameteriv)(PP_Resource context,
+                         GLenum target,
+                         GLenum pname,
+                         const GLint* params);
+  void (*TexSubImage2D)(PP_Resource context,
+                        GLenum target,
+                        GLint level,
+                        GLint xoffset,
+                        GLint yoffset,
+                        GLsizei width,
+                        GLsizei height,
+                        GLenum format,
+                        GLenum type,
+                        const void* pixels);
+  void (*Uniform1f)(PP_Resource context, GLint location, GLfloat x);
+  void (*Uniform1fv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLfloat* v);
+  void (*Uniform1i)(PP_Resource context, GLint location, GLint x);
+  void (*Uniform1iv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLint* v);
+  void (*Uniform2f)(PP_Resource context, GLint location, GLfloat x, GLfloat y);
+  void (*Uniform2fv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLfloat* v);
+  void (*Uniform2i)(PP_Resource context, GLint location, GLint x, GLint y);
+  void (*Uniform2iv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLint* v);
+  void (*Uniform3f)(PP_Resource context,
+                    GLint location,
+                    GLfloat x,
+                    GLfloat y,
+                    GLfloat z);
+  void (*Uniform3fv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLfloat* v);
+  void (*Uniform3i)(PP_Resource context,
+                    GLint location,
+                    GLint x,
+                    GLint y,
+                    GLint z);
+  void (*Uniform3iv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLint* v);
+  void (*Uniform4f)(PP_Resource context,
+                    GLint location,
+                    GLfloat x,
+                    GLfloat y,
+                    GLfloat z,
+                    GLfloat w);
+  void (*Uniform4fv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLfloat* v);
+  void (*Uniform4i)(PP_Resource context,
+                    GLint location,
+                    GLint x,
+                    GLint y,
+                    GLint z,
+                    GLint w);
+  void (*Uniform4iv)(PP_Resource context,
+                     GLint location,
+                     GLsizei count,
+                     const GLint* v);
+  void (*UniformMatrix2fv)(PP_Resource context,
+                           GLint location,
+                           GLsizei count,
+                           GLboolean transpose,
+                           const GLfloat* value);
+  void (*UniformMatrix3fv)(PP_Resource context,
+                           GLint location,
+                           GLsizei count,
+                           GLboolean transpose,
+                           const GLfloat* value);
+  void (*UniformMatrix4fv)(PP_Resource context,
+                           GLint location,
+                           GLsizei count,
+                           GLboolean transpose,
+                           const GLfloat* value);
+  void (*UseProgram)(PP_Resource context, GLuint program);
+  void (*ValidateProgram)(PP_Resource context, GLuint program);
+  void (*VertexAttrib1f)(PP_Resource context, GLuint indx, GLfloat x);
+  void (*VertexAttrib1fv)(PP_Resource context,
+                          GLuint indx,
+                          const GLfloat* values);
+  void (*VertexAttrib2f)(PP_Resource context,
+                         GLuint indx,
+                         GLfloat x,
+                         GLfloat y);
+  void (*VertexAttrib2fv)(PP_Resource context,
+                          GLuint indx,
+                          const GLfloat* values);
+  void (*VertexAttrib3f)(PP_Resource context,
+                         GLuint indx,
+                         GLfloat x,
+                         GLfloat y,
+                         GLfloat z);
+  void (*VertexAttrib3fv)(PP_Resource context,
+                          GLuint indx,
+                          const GLfloat* values);
+  void (*VertexAttrib4f)(PP_Resource context,
+                         GLuint indx,
+                         GLfloat x,
+                         GLfloat y,
+                         GLfloat z,
+                         GLfloat w);
+  void (*VertexAttrib4fv)(PP_Resource context,
+                          GLuint indx,
+                          const GLfloat* values);
+  void (*VertexAttribPointer)(PP_Resource context,
+                              GLuint indx,
+                              GLint size,
+                              GLenum type,
+                              GLboolean normalized,
+                              GLsizei stride,
+                              const void* ptr);
+  void (*Viewport)(PP_Resource context,
+                   GLint x,
+                   GLint y,
+                   GLsizei width,
+                   GLsizei height);
+};
 
 struct PPB_OpenGLES2 {
   void (*ActiveTexture)(PP_Resource context, GLenum texture);
@@ -501,10 +1006,22 @@ struct PPB_OpenGLES2 {
                    GLsizei height);
 };
 
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0 \
-  "PPB_OpenGLES2InstancedArrays;1.0"
-#define PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE \
-  PPB_OPENGLES2_INSTANCEDARRAYS_INTERFACE_1_0
+struct PPB_OpenGLES2InstancedArrays_1_0 {
+  void (*DrawArraysInstancedANGLE)(PP_Resource context,
+                                   GLenum mode,
+                                   GLint first,
+                                   GLsizei count,
+                                   GLsizei primcount);
+  void (*DrawElementsInstancedANGLE)(PP_Resource context,
+                                     GLenum mode,
+                                     GLsizei count,
+                                     GLenum type,
+                                     const void* indices,
+                                     GLsizei primcount);
+  void (*VertexAttribDivisorANGLE)(PP_Resource context,
+                                   GLuint index,
+                                   GLuint divisor);
+};
 
 struct PPB_OpenGLES2InstancedArrays {
   void (*DrawArraysInstancedANGLE)(PP_Resource context,
@@ -523,10 +1040,19 @@ struct PPB_OpenGLES2InstancedArrays {
                                    GLuint divisor);
 };
 
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0 \
-  "PPB_OpenGLES2FramebufferBlit;1.0"
-#define PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE \
-  PPB_OPENGLES2_FRAMEBUFFERBLIT_INTERFACE_1_0
+struct PPB_OpenGLES2FramebufferBlit_1_0 {
+  void (*BlitFramebufferEXT)(PP_Resource context,
+                             GLint srcX0,
+                             GLint srcY0,
+                             GLint srcX1,
+                             GLint srcY1,
+                             GLint dstX0,
+                             GLint dstY0,
+                             GLint dstX1,
+                             GLint dstY1,
+                             GLbitfield mask,
+                             GLenum filter);
+};
 
 struct PPB_OpenGLES2FramebufferBlit {
   void (*BlitFramebufferEXT)(PP_Resource context,
@@ -542,10 +1068,14 @@ struct PPB_OpenGLES2FramebufferBlit {
                              GLenum filter);
 };
 
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0 \
-  "PPB_OpenGLES2FramebufferMultisample;1.0"
-#define PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE \
-  PPB_OPENGLES2_FRAMEBUFFERMULTISAMPLE_INTERFACE_1_0
+struct PPB_OpenGLES2FramebufferMultisample_1_0 {
+  void (*RenderbufferStorageMultisampleEXT)(PP_Resource context,
+                                            GLenum target,
+                                            GLsizei samples,
+                                            GLenum internalformat,
+                                            GLsizei width,
+                                            GLsizei height);
+};
 
 struct PPB_OpenGLES2FramebufferMultisample {
   void (*RenderbufferStorageMultisampleEXT)(PP_Resource context,
@@ -556,19 +1086,33 @@ struct PPB_OpenGLES2FramebufferMultisample {
                                             GLsizei height);
 };
 
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0 \
-  "PPB_OpenGLES2ChromiumEnableFeature;1.0"
-#define PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE \
-  PPB_OPENGLES2_CHROMIUMENABLEFEATURE_INTERFACE_1_0
+struct PPB_OpenGLES2ChromiumEnableFeature_1_0 {
+  GLboolean (*EnableFeatureCHROMIUM)(PP_Resource context, const char* feature);
+};
 
 struct PPB_OpenGLES2ChromiumEnableFeature {
   GLboolean (*EnableFeatureCHROMIUM)(PP_Resource context, const char* feature);
 };
 
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0 \
-  "PPB_OpenGLES2ChromiumMapSub;1.0"
-#define PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE \
-  PPB_OPENGLES2_CHROMIUMMAPSUB_INTERFACE_1_0
+struct PPB_OpenGLES2ChromiumMapSub_1_0 {
+  void* (*MapBufferSubDataCHROMIUM)(PP_Resource context,
+                                    GLuint target,
+                                    GLintptr offset,
+                                    GLsizeiptr size,
+                                    GLenum access);
+  void (*UnmapBufferSubDataCHROMIUM)(PP_Resource context, const void* mem);
+  void* (*MapTexSubImage2DCHROMIUM)(PP_Resource context,
+                                    GLenum target,
+                                    GLint level,
+                                    GLint xoffset,
+                                    GLint yoffset,
+                                    GLsizei width,
+                                    GLsizei height,
+                                    GLenum format,
+                                    GLenum type,
+                                    GLenum access);
+  void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
+};
 
 struct PPB_OpenGLES2ChromiumMapSub {
   void* (*MapBufferSubDataCHROMIUM)(PP_Resource context,
@@ -590,8 +1134,23 @@ struct PPB_OpenGLES2ChromiumMapSub {
   void (*UnmapTexSubImage2DCHROMIUM)(PP_Resource context, const void* mem);
 };
 
-#define PPB_OPENGLES2_QUERY_INTERFACE_1_0 "PPB_OpenGLES2Query;1.0"
-#define PPB_OPENGLES2_QUERY_INTERFACE PPB_OPENGLES2_QUERY_INTERFACE_1_0
+struct PPB_OpenGLES2Query_1_0 {
+  void (*GenQueriesEXT)(PP_Resource context, GLsizei n, GLuint* queries);
+  void (*DeleteQueriesEXT)(PP_Resource context,
+                           GLsizei n,
+                           const GLuint* queries);
+  GLboolean (*IsQueryEXT)(PP_Resource context, GLuint id);
+  void (*BeginQueryEXT)(PP_Resource context, GLenum target, GLuint id);
+  void (*EndQueryEXT)(PP_Resource context, GLenum target);
+  void (*GetQueryivEXT)(PP_Resource context,
+                        GLenum target,
+                        GLenum pname,
+                        GLint* params);
+  void (*GetQueryObjectuivEXT)(PP_Resource context,
+                               GLuint id,
+                               GLenum pname,
+                               GLuint* params);
+};
 
 struct PPB_OpenGLES2Query {
   void (*GenQueriesEXT)(PP_Resource context, GLsizei n, GLuint* queries);
@@ -611,10 +1170,14 @@ struct PPB_OpenGLES2Query {
                                GLuint* params);
 };
 
-#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0 \
-  "PPB_OpenGLES2VertexArrayObject;1.0"
-#define PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE \
-  PPB_OPENGLES2_VERTEXARRAYOBJECT_INTERFACE_1_0
+struct PPB_OpenGLES2VertexArrayObject_1_0 {
+  void (*GenVertexArraysOES)(PP_Resource context, GLsizei n, GLuint* arrays);
+  void (*DeleteVertexArraysOES)(PP_Resource context,
+                                GLsizei n,
+                                const GLuint* arrays);
+  GLboolean (*IsVertexArrayOES)(PP_Resource context, GLuint array);
+  void (*BindVertexArrayOES)(PP_Resource context, GLuint array);
+};
 
 struct PPB_OpenGLES2VertexArrayObject {
   void (*GenVertexArraysOES)(PP_Resource context, GLsizei n, GLuint* arrays);
@@ -624,5 +1187,9 @@ struct PPB_OpenGLES2VertexArrayObject {
   GLboolean (*IsVertexArrayOES)(PP_Resource context, GLuint array);
   void (*BindVertexArrayOES)(PP_Resource context, GLuint array);
 };
+/**
+ * @}
+ */
+
+#endif  /* PPAPI_C_PPB_OPENGLES2_H_ */
 
-#endif  // PPAPI_C_PPB_OPENGLES2_H_