diff options
-rwxr-xr-x | gpu/command_buffer/build_gles2_cmd_buffer.py | 130 | ||||
-rw-r--r-- | ppapi/cpp/instance.cc | 8 | ||||
-rw-r--r-- | ppapi/cpp/instance.h | 4 | ||||
-rw-r--r-- | ppapi/ppapi_shared.gypi | 2 | ||||
-rw-r--r-- | ppapi/proxy/ppb_context_3d_proxy.cc | 4 | ||||
-rw-r--r-- | ppapi/proxy/ppb_context_3d_proxy.h | 1 | ||||
-rw-r--r-- | ppapi/proxy/ppb_opengles2_proxy.cc | 891 | ||||
-rw-r--r-- | ppapi/proxy/ppb_opengles2_proxy.h | 6 | ||||
-rw-r--r-- | ppapi/shared_impl/opengles2_impl.cc | 904 | ||||
-rw-r--r-- | ppapi/shared_impl/opengles2_impl.h | 20 | ||||
-rw-r--r-- | ppapi/thunk/ppb_context_3d_api.h | 9 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_plugin_instance.cc | 105 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppapi_plugin_instance.h | 10 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_context_3d_impl.cc | 4 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_context_3d_impl.h | 1 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_graphics_3d_impl.cc | 6 | ||||
-rw-r--r-- | webkit/plugins/ppapi/ppb_opengles_impl.cc | 891 |
17 files changed, 1060 insertions, 1936 deletions
diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 738b84a..76f3c59 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py @@ -5718,24 +5718,25 @@ const size_t GLES2Util::enum_to_string_table_len_ = file.Write(_LICENSE) file.Write(_DO_NOT_EDIT_WARNING) - file.Write("#include \"webkit/plugins/ppapi/ppb_opengles_impl.h\"\n\n") - + file.Write("#include \"ppapi/shared_impl/opengles2_impl.h\"\n\n") + file.Write("#include \"base/logging.h\"\n") file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n") - file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n") - file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n") - file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n") - file.Write("#include \"webkit/plugins/ppapi/ppb_context_3d_impl.h\"\n\n") - - file.Write("using ppapi::ResourceObjectBase;\n") - file.Write("using ppapi::TrackerBase;\n\n") - file.Write("namespace webkit {\n") + file.Write("#include \"ppapi/shared_impl/graphics_3d_impl.h\"\n") + file.Write("#include \"ppapi/thunk/enter.h\"\n") + file.Write("#include \"ppapi/thunk/ppb_context_3d_api.h\"\n\n") + file.Write("namespace ppapi {\n\n") file.Write("namespace {\n\n") file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\n") - file.Write(" ResourceObjectBase* base = TrackerBase::Get()->GetResourceAPI(context);\n") - file.Write(" DCHECK(base->AsPPB_Context3D_API());\n") - file.Write(" return static_cast<PPB_Context3D_Impl*>(base)->gles2_impl();\n") + file.Write(" thunk::EnterResource<thunk::PPB_Graphics3D_API> enter_g3d(context, false);\n") + file.Write(" if (enter_g3d.succeeded()) {\n") + file.Write(" return static_cast<Graphics3DImpl*>(enter_g3d.object())->gles2_impl();\n") + file.Write(" } else {\n") + file.Write(" thunk::EnterResource<thunk::PPB_Context3D_API> enter_c3d(context, true);\n") + file.Write(" DCHECK(enter_c3d.succeeded());\n") + file.Write(" return enter_c3d.object()->GetGLES2Impl();\n") + file.Write(" }\n") file.Write("}\n\n") for func in self.original_functions: @@ -5766,106 +5767,12 @@ const size_t GLES2Util::enum_to_string_table_len_ = file.Write("} // namespace\n") file.Write(""" -const PPB_OpenGLES2_Dev* PPB_OpenGLES_Impl::GetInterface() { +const PPB_OpenGLES2_Dev* OpenGLES2Impl::GetInterface() { return &ppb_opengles2; } """) file.Write("} // namespace ppapi\n") - file.Write("} // namespace webkit\n\n") - - file.Close() - - def WritePepperGLES2ProxyImplementation(self, filename): - """Writes the Pepper OpenGLES interface implementation.""" - - file = CWriter(filename) - file.Write(_LICENSE) - file.Write(_DO_NOT_EDIT_WARNING) - - file.Write("#include \"ppapi/proxy/ppb_opengles2_proxy.h\"\n\n") - - file.Write("#include \"gpu/command_buffer/client/gles2_implementation.h\"\n") - file.Write("#include \"ppapi/c/pp_errors.h\"\n") - file.Write("#include \"ppapi/c/pp_resource.h\"\n") - file.Write("#include \"ppapi/c/dev/ppb_opengles_dev.h\"\n") - file.Write("#include \"ppapi/proxy/plugin_dispatcher.h\"\n") - file.Write("#include \"ppapi/proxy/plugin_resource.h\"\n") - file.Write("#include \"ppapi/proxy/ppb_context_3d_proxy.h\"\n") - file.Write("#include \"ppapi/shared_impl/resource_object_base.h\"\n") - file.Write("#include \"ppapi/shared_impl/tracker_base.h\"\n\n") - - file.Write("namespace pp {\n") - file.Write("namespace proxy {\n\n") - file.Write("namespace {\n\n") - file.Write("gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) {\n") - file.Write(" ppapi::ResourceObjectBase* base =\n") - file.Write(" ppapi::TrackerBase::Get()->GetResourceAPI(context);\n") - file.Write(" DCHECK(base->AsPPB_Context3D_API());\n") - file.Write(" return static_cast<Context3D*>(base)->gles2_impl();\n") - file.Write("}\n\n") - - for func in self.original_functions: - if not func.IsCoreGLFunction(): - continue - - original_arg = func.MakeTypedOriginalArgString("") - context_arg = "PP_Resource context_id" - if len(original_arg): - arg = context_arg + ", " + original_arg - else: - arg = context_arg - file.Write("%s %s(%s) {\n" % (func.return_type, func.name, arg)) - - return_str = "" if func.return_type == "void" else "return " - file.Write(" %sGetGLES(context_id)->%s(%s);\n" % - (return_str, func.original_name, - func.MakeOriginalArgString(""))) - file.Write("}\n\n") - - file.Write("const struct PPB_OpenGLES2_Dev opengles2_interface = {\n") - file.Write(" &") - file.Write(",\n &".join( - f.name for f in self.original_functions if f.IsCoreGLFunction())) - file.Write("\n") - file.Write("};\n\n") - - file.Write(""" -InterfaceProxy* CreateOpenGLES2Proxy(Dispatcher* dispatcher, - const void* target_interface) { - return new PPB_OpenGLES2_Proxy(dispatcher, target_interface); -} - -} // namespace - -PPB_OpenGLES2_Proxy::PPB_OpenGLES2_Proxy(Dispatcher* dispatcher, - const void* target_interface) - : InterfaceProxy(dispatcher, target_interface) { -} - -PPB_OpenGLES2_Proxy::~PPB_OpenGLES2_Proxy() { -} - -// static -const InterfaceProxy::Info* PPB_OpenGLES2_Proxy::GetInfo() { - static const Info info = { - &opengles2_interface, - PPB_OPENGLES2_DEV_INTERFACE, - INTERFACE_ID_PPB_OPENGLES2, - false, - &CreateOpenGLES2Proxy, - }; - return &info; -} - -bool PPB_OpenGLES2_Proxy::OnMessageReceived(const IPC::Message& msg) { - return false; -} - -""") - file.Write("} // namespace proxy\n") - file.Write("} // namespace pp\n") - file.Close() def WriteGLES2ToPPAPIBridge(self, filename): @@ -5995,12 +5902,7 @@ def main(argv): elif options.alternate_mode == "chrome_ppapi": # To trigger this action, do "make ppapi_gles_implementation" - gen.WritePepperGLES2Implementation( - "webkit/plugins/ppapi/ppb_opengles_impl.cc") - - elif options.alternate_mode == "chrome_ppapi_proxy": - gen.WritePepperGLES2ProxyImplementation( - "ppapi/proxy/ppb_opengles2_proxy.cc") + gen.WritePepperGLES2Implementation("ppapi/shared_impl/opengles2_impl.cc") elif options.alternate_mode == "nacl_ppapi": gen.WritePepperGLES2NaClProxy( diff --git a/ppapi/cpp/instance.cc b/ppapi/cpp/instance.cc index 5cf4e35..75e9a1f 100644 --- a/ppapi/cpp/instance.cc +++ b/ppapi/cpp/instance.cc @@ -8,6 +8,7 @@ #include "ppapi/c/ppb_input_event.h" #include "ppapi/c/ppb_instance.h" #include "ppapi/c/ppb_messaging.h" +#include "ppapi/cpp/dev/graphics_3d_dev.h" #include "ppapi/cpp/dev/surface_3d_dev.h" #include "ppapi/cpp/graphics_2d.h" #include "ppapi/cpp/image_data.h" @@ -85,6 +86,13 @@ bool Instance::BindGraphics(const Graphics2D& graphics) { pp_instance(), graphics.pp_resource())); } +bool Instance::BindGraphics(const Graphics3D_Dev& graphics) { + if (!has_interface<PPB_Instance>()) + return false; + return PP_ToBool(get_interface<PPB_Instance>()->BindGraphics( + pp_instance(), graphics.pp_resource())); +} + bool Instance::BindGraphics(const Surface3D_Dev& graphics) { if (!has_interface<PPB_Instance>()) return false; diff --git a/ppapi/cpp/instance.h b/ppapi/cpp/instance.h index a55660e..abf441f 100644 --- a/ppapi/cpp/instance.h +++ b/ppapi/cpp/instance.h @@ -24,6 +24,7 @@ struct PP_InputEvent; namespace pp { class Graphics2D; +class Graphics3D_Dev; class InputEvent; class ImageData; class Point; @@ -189,6 +190,9 @@ class Instance { bool BindGraphics(const Graphics2D& graphics); /// See PPB_Instance.BindGraphics. + bool BindGraphics(const Graphics3D_Dev& graphics); + + /// See PPB_Instance.BindGraphics. bool BindGraphics(const Surface3D_Dev& graphics); /// See PPB_Instance.IsFullFrame. diff --git a/ppapi/ppapi_shared.gypi b/ppapi/ppapi_shared.gypi index 04cb41f..f24bc7e 100644 --- a/ppapi/ppapi_shared.gypi +++ b/ppapi/ppapi_shared.gypi @@ -44,6 +44,8 @@ 'shared_impl/input_event_impl.h', 'shared_impl/instance_impl.cc', 'shared_impl/instance_impl.h', + 'shared_impl/opengles2_impl.cc', + 'shared_impl/opengles2_impl.h', 'shared_impl/ppapi_preferences.cc', 'shared_impl/ppapi_preferences.h', 'shared_impl/ppp_instance_combined.cc', diff --git a/ppapi/proxy/ppb_context_3d_proxy.cc b/ppapi/proxy/ppb_context_3d_proxy.cc index 4881aa9..9bf9098 100644 --- a/ppapi/proxy/ppb_context_3d_proxy.cc +++ b/ppapi/proxy/ppb_context_3d_proxy.cc @@ -512,6 +512,10 @@ void Context3D::UnmapTexSubImage2DCHROMIUM(const void* mem) { gles2_impl_->UnmapTexSubImage2DCHROMIUM(mem); } +gpu::gles2::GLES2Implementation* Context3D::GetGLES2Impl() { + return gles2_impl(); +} + // PPB_Context3D_Proxy --------------------------------------------------------- PPB_Context3D_Proxy::PPB_Context3D_Proxy(Dispatcher* dispatcher, diff --git a/ppapi/proxy/ppb_context_3d_proxy.h b/ppapi/proxy/ppb_context_3d_proxy.h index 991b7a2..ec9ece2 100644 --- a/ppapi/proxy/ppb_context_3d_proxy.h +++ b/ppapi/proxy/ppb_context_3d_proxy.h @@ -76,6 +76,7 @@ class Context3D : public PluginResource, GLenum type, GLenum access) OVERRIDE; virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) OVERRIDE; + virtual gpu::gles2::GLES2Implementation* GetGLES2Impl() OVERRIDE; bool CreateImplementation(); diff --git a/ppapi/proxy/ppb_opengles2_proxy.cc b/ppapi/proxy/ppb_opengles2_proxy.cc index 79527e4..904054b 100644 --- a/ppapi/proxy/ppb_opengles2_proxy.cc +++ b/ppapi/proxy/ppb_opengles2_proxy.cc @@ -2,905 +2,18 @@ // 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 -// DO NOT EDIT! - #include "ppapi/proxy/ppb_opengles2_proxy.h" -#include "gpu/command_buffer/client/gles2_implementation.h" -#include "ppapi/c/pp_errors.h" -#include "ppapi/c/pp_resource.h" -#include "ppapi/c/dev/ppb_opengles_dev.h" -#include "ppapi/proxy/plugin_dispatcher.h" -#include "ppapi/proxy/plugin_resource.h" -#include "ppapi/proxy/ppb_context_3d_proxy.h" -#include "ppapi/shared_impl/resource_object_base.h" -#include "ppapi/shared_impl/tracker_base.h" +#include "ppapi/shared_impl/opengles2_impl.h" namespace pp { namespace proxy { namespace { - -gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) { - ppapi::ResourceObjectBase* base = - ppapi::TrackerBase::Get()->GetResourceAPI(context); - DCHECK(base->AsPPB_Context3D_API()); - return static_cast<Context3D*>(base)->gles2_impl(); -} - -void ActiveTexture(PP_Resource context_id, GLenum texture) { - GetGLES(context_id)->ActiveTexture(texture); -} - -void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) { - GetGLES(context_id)->AttachShader(program, shader); -} - -void BindAttribLocation( - PP_Resource context_id, GLuint program, GLuint index, const char* name) { - GetGLES(context_id)->BindAttribLocation(program, index, name); -} - -void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) { - GetGLES(context_id)->BindBuffer(target, buffer); -} - -void BindFramebuffer( - PP_Resource context_id, GLenum target, GLuint framebuffer) { - GetGLES(context_id)->BindFramebuffer(target, framebuffer); -} - -void BindRenderbuffer( - PP_Resource context_id, GLenum target, GLuint renderbuffer) { - GetGLES(context_id)->BindRenderbuffer(target, renderbuffer); -} - -void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) { - GetGLES(context_id)->BindTexture(target, texture); -} - -void BlendColor( - PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { - GetGLES(context_id)->BlendColor(red, green, blue, alpha); -} - -void BlendEquation(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->BlendEquation(mode); -} - -void BlendEquationSeparate( - PP_Resource context_id, GLenum modeRGB, GLenum modeAlpha) { - GetGLES(context_id)->BlendEquationSeparate(modeRGB, modeAlpha); -} - -void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) { - GetGLES(context_id)->BlendFunc(sfactor, dfactor); -} - -void BlendFuncSeparate( - PP_Resource context_id, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, - GLenum dstAlpha) { - GetGLES(context_id)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); -} - -void BufferData( - PP_Resource context_id, GLenum target, GLsizeiptr size, const void* data, - GLenum usage) { - GetGLES(context_id)->BufferData(target, size, data, usage); -} - -void BufferSubData( - PP_Resource context_id, GLenum target, GLintptr offset, GLsizeiptr size, - const void* data) { - GetGLES(context_id)->BufferSubData(target, offset, size, data); -} - -GLenum CheckFramebufferStatus(PP_Resource context_id, GLenum target) { - return GetGLES(context_id)->CheckFramebufferStatus(target); -} - -void Clear(PP_Resource context_id, GLbitfield mask) { - GetGLES(context_id)->Clear(mask); -} - -void ClearColor( - PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { - GetGLES(context_id)->ClearColor(red, green, blue, alpha); -} - -void ClearDepthf(PP_Resource context_id, GLclampf depth) { - GetGLES(context_id)->ClearDepthf(depth); -} - -void ClearStencil(PP_Resource context_id, GLint s) { - GetGLES(context_id)->ClearStencil(s); -} - -void ColorMask( - PP_Resource context_id, GLboolean red, GLboolean green, GLboolean blue, - GLboolean alpha) { - GetGLES(context_id)->ColorMask(red, green, blue, alpha); -} - -void CompileShader(PP_Resource context_id, GLuint shader) { - GetGLES(context_id)->CompileShader(shader); -} - -void CompressedTexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, - GLsizei width, GLsizei height, GLint border, GLsizei imageSize, - const void* data) { - GetGLES( - context_id)->CompressedTexImage2D( - target, level, internalformat, width, height, border, imageSize, - data); -} - -void CompressedTexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLsizei width, GLsizei height, GLenum format, - GLsizei imageSize, const void* data) { - GetGLES( - context_id)->CompressedTexSubImage2D( - target, level, xoffset, yoffset, width, height, format, imageSize, - data); -} - -void CopyTexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, - GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { - GetGLES( - context_id)->CopyTexImage2D( - target, level, internalformat, x, y, width, height, border); -} - -void CopyTexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES( - context_id)->CopyTexSubImage2D( - target, level, xoffset, yoffset, x, y, width, height); -} - -GLuint CreateProgram(PP_Resource context_id) { - return GetGLES(context_id)->CreateProgram(); -} - -GLuint CreateShader(PP_Resource context_id, GLenum type) { - return GetGLES(context_id)->CreateShader(type); -} - -void CullFace(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->CullFace(mode); -} - -void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) { - GetGLES(context_id)->DeleteBuffers(n, buffers); -} - -void DeleteFramebuffers( - PP_Resource context_id, GLsizei n, const GLuint* framebuffers) { - GetGLES(context_id)->DeleteFramebuffers(n, framebuffers); -} - -void DeleteProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->DeleteProgram(program); -} - -void DeleteRenderbuffers( - PP_Resource context_id, GLsizei n, const GLuint* renderbuffers) { - GetGLES(context_id)->DeleteRenderbuffers(n, renderbuffers); -} - -void DeleteShader(PP_Resource context_id, GLuint shader) { - GetGLES(context_id)->DeleteShader(shader); -} - -void DeleteTextures( - PP_Resource context_id, GLsizei n, const GLuint* textures) { - GetGLES(context_id)->DeleteTextures(n, textures); -} - -void DepthFunc(PP_Resource context_id, GLenum func) { - GetGLES(context_id)->DepthFunc(func); -} - -void DepthMask(PP_Resource context_id, GLboolean flag) { - GetGLES(context_id)->DepthMask(flag); -} - -void DepthRangef(PP_Resource context_id, GLclampf zNear, GLclampf zFar) { - GetGLES(context_id)->DepthRangef(zNear, zFar); -} - -void DetachShader(PP_Resource context_id, GLuint program, GLuint shader) { - GetGLES(context_id)->DetachShader(program, shader); -} - -void Disable(PP_Resource context_id, GLenum cap) { - GetGLES(context_id)->Disable(cap); -} - -void DisableVertexAttribArray(PP_Resource context_id, GLuint index) { - GetGLES(context_id)->DisableVertexAttribArray(index); -} - -void DrawArrays( - PP_Resource context_id, GLenum mode, GLint first, GLsizei count) { - GetGLES(context_id)->DrawArrays(mode, first, count); -} - -void DrawElements( - PP_Resource context_id, GLenum mode, GLsizei count, GLenum type, - const void* indices) { - GetGLES(context_id)->DrawElements(mode, count, type, indices); -} - -void Enable(PP_Resource context_id, GLenum cap) { - GetGLES(context_id)->Enable(cap); -} - -void EnableVertexAttribArray(PP_Resource context_id, GLuint index) { - GetGLES(context_id)->EnableVertexAttribArray(index); -} - -void Finish(PP_Resource context_id) { - GetGLES(context_id)->Finish(); -} - -void Flush(PP_Resource context_id) { - GetGLES(context_id)->Flush(); -} - -void FramebufferRenderbuffer( - PP_Resource context_id, GLenum target, GLenum attachment, - GLenum renderbuffertarget, GLuint renderbuffer) { - GetGLES( - context_id)->FramebufferRenderbuffer( - target, attachment, renderbuffertarget, renderbuffer); -} - -void FramebufferTexture2D( - PP_Resource context_id, GLenum target, GLenum attachment, GLenum textarget, - GLuint texture, GLint level) { - GetGLES( - context_id)->FramebufferTexture2D( - target, attachment, textarget, texture, level); -} - -void FrontFace(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->FrontFace(mode); -} - -void GenBuffers(PP_Resource context_id, GLsizei n, GLuint* buffers) { - GetGLES(context_id)->GenBuffers(n, buffers); -} - -void GenerateMipmap(PP_Resource context_id, GLenum target) { - GetGLES(context_id)->GenerateMipmap(target); -} - -void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) { - GetGLES(context_id)->GenFramebuffers(n, framebuffers); -} - -void GenRenderbuffers( - PP_Resource context_id, GLsizei n, GLuint* renderbuffers) { - GetGLES(context_id)->GenRenderbuffers(n, renderbuffers); -} - -void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) { - GetGLES(context_id)->GenTextures(n, textures); -} - -void GetActiveAttrib( - PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, - GLsizei* length, GLint* size, GLenum* type, char* name) { - GetGLES( - context_id)->GetActiveAttrib( - program, index, bufsize, length, size, type, name); -} - -void GetActiveUniform( - PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, - GLsizei* length, GLint* size, GLenum* type, char* name) { - GetGLES( - context_id)->GetActiveUniform( - program, index, bufsize, length, size, type, name); -} - -void GetAttachedShaders( - PP_Resource context_id, GLuint program, GLsizei maxcount, GLsizei* count, - GLuint* shaders) { - GetGLES(context_id)->GetAttachedShaders(program, maxcount, count, shaders); -} - -GLint GetAttribLocation( - PP_Resource context_id, GLuint program, const char* name) { - return GetGLES(context_id)->GetAttribLocation(program, name); -} - -void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) { - GetGLES(context_id)->GetBooleanv(pname, params); -} - -void GetBufferParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetBufferParameteriv(target, pname, params); -} - -GLenum GetError(PP_Resource context_id) { - return GetGLES(context_id)->GetError(); -} - -void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetFloatv(pname, params); -} - -void GetFramebufferAttachmentParameteriv( - PP_Resource context_id, GLenum target, GLenum attachment, GLenum pname, - GLint* params) { - GetGLES( - context_id)->GetFramebufferAttachmentParameteriv( - target, attachment, pname, params); -} - -void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) { - GetGLES(context_id)->GetIntegerv(pname, params); -} - -void GetProgramiv( - PP_Resource context_id, GLuint program, GLenum pname, GLint* params) { - GetGLES(context_id)->GetProgramiv(program, pname, params); -} - -void GetProgramInfoLog( - PP_Resource context_id, GLuint program, GLsizei bufsize, GLsizei* length, - char* infolog) { - GetGLES(context_id)->GetProgramInfoLog(program, bufsize, length, infolog); -} - -void GetRenderbufferParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetRenderbufferParameteriv(target, pname, params); -} - -void GetShaderiv( - PP_Resource context_id, GLuint shader, GLenum pname, GLint* params) { - GetGLES(context_id)->GetShaderiv(shader, pname, params); -} - -void GetShaderInfoLog( - PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, - char* infolog) { - GetGLES(context_id)->GetShaderInfoLog(shader, bufsize, length, infolog); -} - -void GetShaderPrecisionFormat( - PP_Resource context_id, GLenum shadertype, GLenum precisiontype, - GLint* range, GLint* precision) { - GetGLES( - context_id)->GetShaderPrecisionFormat( - shadertype, precisiontype, range, precision); -} - -void GetShaderSource( - PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, - char* source) { - GetGLES(context_id)->GetShaderSource(shader, bufsize, length, source); -} - -const GLubyte* GetString(PP_Resource context_id, GLenum name) { - return GetGLES(context_id)->GetString(name); -} - -void GetTexParameterfv( - PP_Resource context_id, GLenum target, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetTexParameterfv(target, pname, params); -} - -void GetTexParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetTexParameteriv(target, pname, params); -} - -void GetUniformfv( - PP_Resource context_id, GLuint program, GLint location, GLfloat* params) { - GetGLES(context_id)->GetUniformfv(program, location, params); -} - -void GetUniformiv( - PP_Resource context_id, GLuint program, GLint location, GLint* params) { - GetGLES(context_id)->GetUniformiv(program, location, params); -} - -GLint GetUniformLocation( - PP_Resource context_id, GLuint program, const char* name) { - return GetGLES(context_id)->GetUniformLocation(program, name); -} - -void GetVertexAttribfv( - PP_Resource context_id, GLuint index, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetVertexAttribfv(index, pname, params); -} - -void GetVertexAttribiv( - PP_Resource context_id, GLuint index, GLenum pname, GLint* params) { - GetGLES(context_id)->GetVertexAttribiv(index, pname, params); -} - -void GetVertexAttribPointerv( - PP_Resource context_id, GLuint index, GLenum pname, void** pointer) { - GetGLES(context_id)->GetVertexAttribPointerv(index, pname, pointer); -} - -void Hint(PP_Resource context_id, GLenum target, GLenum mode) { - GetGLES(context_id)->Hint(target, mode); -} - -GLboolean IsBuffer(PP_Resource context_id, GLuint buffer) { - return GetGLES(context_id)->IsBuffer(buffer); -} - -GLboolean IsEnabled(PP_Resource context_id, GLenum cap) { - return GetGLES(context_id)->IsEnabled(cap); -} - -GLboolean IsFramebuffer(PP_Resource context_id, GLuint framebuffer) { - return GetGLES(context_id)->IsFramebuffer(framebuffer); -} - -GLboolean IsProgram(PP_Resource context_id, GLuint program) { - return GetGLES(context_id)->IsProgram(program); -} - -GLboolean IsRenderbuffer(PP_Resource context_id, GLuint renderbuffer) { - return GetGLES(context_id)->IsRenderbuffer(renderbuffer); -} - -GLboolean IsShader(PP_Resource context_id, GLuint shader) { - return GetGLES(context_id)->IsShader(shader); -} - -GLboolean IsTexture(PP_Resource context_id, GLuint texture) { - return GetGLES(context_id)->IsTexture(texture); -} - -void LineWidth(PP_Resource context_id, GLfloat width) { - GetGLES(context_id)->LineWidth(width); -} - -void LinkProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->LinkProgram(program); -} - -void PixelStorei(PP_Resource context_id, GLenum pname, GLint param) { - GetGLES(context_id)->PixelStorei(pname, param); -} - -void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) { - GetGLES(context_id)->PolygonOffset(factor, units); -} - -void ReadPixels( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, void* pixels) { - GetGLES(context_id)->ReadPixels(x, y, width, height, format, type, pixels); -} - -void ReleaseShaderCompiler(PP_Resource context_id) { - GetGLES(context_id)->ReleaseShaderCompiler(); -} - -void RenderbufferStorage( - PP_Resource context_id, GLenum target, GLenum internalformat, GLsizei width, - GLsizei height) { - GetGLES( - context_id)->RenderbufferStorage(target, internalformat, width, height); -} - -void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) { - GetGLES(context_id)->SampleCoverage(value, invert); -} - -void Scissor( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES(context_id)->Scissor(x, y, width, height); -} - -void ShaderBinary( - PP_Resource context_id, GLsizei n, const GLuint* shaders, - GLenum binaryformat, const void* binary, GLsizei length) { - GetGLES(context_id)->ShaderBinary(n, shaders, binaryformat, binary, length); -} - -void ShaderSource( - PP_Resource context_id, GLuint shader, GLsizei count, const char** str, - const GLint* length) { - GetGLES(context_id)->ShaderSource(shader, count, str, length); -} - -void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) { - GetGLES(context_id)->StencilFunc(func, ref, mask); -} - -void StencilFuncSeparate( - PP_Resource context_id, GLenum face, GLenum func, GLint ref, GLuint mask) { - GetGLES(context_id)->StencilFuncSeparate(face, func, ref, mask); -} - -void StencilMask(PP_Resource context_id, GLuint mask) { - GetGLES(context_id)->StencilMask(mask); -} - -void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) { - GetGLES(context_id)->StencilMaskSeparate(face, mask); -} - -void StencilOp( - PP_Resource context_id, GLenum fail, GLenum zfail, GLenum zpass) { - GetGLES(context_id)->StencilOp(fail, zfail, zpass); -} - -void StencilOpSeparate( - PP_Resource context_id, GLenum face, GLenum fail, GLenum zfail, - GLenum zpass) { - GetGLES(context_id)->StencilOpSeparate(face, fail, zfail, zpass); -} - -void TexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint internalformat, - GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, - const void* pixels) { - GetGLES( - context_id)->TexImage2D( - target, level, internalformat, width, height, border, format, type, - pixels); -} - -void TexParameterf( - PP_Resource context_id, GLenum target, GLenum pname, GLfloat param) { - GetGLES(context_id)->TexParameterf(target, pname, param); -} - -void TexParameterfv( - PP_Resource context_id, GLenum target, GLenum pname, - const GLfloat* params) { - GetGLES(context_id)->TexParameterfv(target, pname, params); -} - -void TexParameteri( - PP_Resource context_id, GLenum target, GLenum pname, GLint param) { - GetGLES(context_id)->TexParameteri(target, pname, param); -} - -void TexParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, const GLint* params) { - GetGLES(context_id)->TexParameteriv(target, pname, params); -} - -void TexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, - const void* pixels) { - GetGLES( - context_id)->TexSubImage2D( - target, level, xoffset, yoffset, width, height, format, type, - pixels); -} - -void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) { - GetGLES(context_id)->Uniform1f(location, x); -} - -void Uniform1fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform1fv(location, count, v); -} - -void Uniform1i(PP_Resource context_id, GLint location, GLint x) { - GetGLES(context_id)->Uniform1i(location, x); -} - -void Uniform1iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform1iv(location, count, v); -} - -void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) { - GetGLES(context_id)->Uniform2f(location, x, y); -} - -void Uniform2fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform2fv(location, count, v); -} - -void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) { - GetGLES(context_id)->Uniform2i(location, x, y); -} - -void Uniform2iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform2iv(location, count, v); -} - -void Uniform3f( - PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z) { - GetGLES(context_id)->Uniform3f(location, x, y, z); -} - -void Uniform3fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform3fv(location, count, v); -} - -void Uniform3i( - PP_Resource context_id, GLint location, GLint x, GLint y, GLint z) { - GetGLES(context_id)->Uniform3i(location, x, y, z); -} - -void Uniform3iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform3iv(location, count, v); -} - -void Uniform4f( - PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z, - GLfloat w) { - GetGLES(context_id)->Uniform4f(location, x, y, z, w); -} - -void Uniform4fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform4fv(location, count, v); -} - -void Uniform4i( - PP_Resource context_id, GLint location, GLint x, GLint y, GLint z, - GLint w) { - GetGLES(context_id)->Uniform4i(location, x, y, z, w); -} - -void Uniform4iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform4iv(location, count, v); -} - -void UniformMatrix2fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix2fv(location, count, transpose, value); -} - -void UniformMatrix3fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix3fv(location, count, transpose, value); -} - -void UniformMatrix4fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix4fv(location, count, transpose, value); -} - -void UseProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->UseProgram(program); -} - -void ValidateProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->ValidateProgram(program); -} - -void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) { - GetGLES(context_id)->VertexAttrib1f(indx, x); -} - -void VertexAttrib1fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib1fv(indx, values); -} - -void VertexAttrib2f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) { - GetGLES(context_id)->VertexAttrib2f(indx, x, y); -} - -void VertexAttrib2fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib2fv(indx, values); -} - -void VertexAttrib3f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z) { - GetGLES(context_id)->VertexAttrib3f(indx, x, y, z); -} - -void VertexAttrib3fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib3fv(indx, values); -} - -void VertexAttrib4f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z, - GLfloat w) { - GetGLES(context_id)->VertexAttrib4f(indx, x, y, z, w); -} - -void VertexAttrib4fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib4fv(indx, values); -} - -void VertexAttribPointer( - PP_Resource context_id, GLuint indx, GLint size, GLenum type, - GLboolean normalized, GLsizei stride, const void* ptr) { - GetGLES( - context_id)->VertexAttribPointer( - indx, size, type, normalized, stride, ptr); -} - -void Viewport( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES(context_id)->Viewport(x, y, width, height); -} - -const struct PPB_OpenGLES2_Dev opengles2_interface = { - &ActiveTexture, - &AttachShader, - &BindAttribLocation, - &BindBuffer, - &BindFramebuffer, - &BindRenderbuffer, - &BindTexture, - &BlendColor, - &BlendEquation, - &BlendEquationSeparate, - &BlendFunc, - &BlendFuncSeparate, - &BufferData, - &BufferSubData, - &CheckFramebufferStatus, - &Clear, - &ClearColor, - &ClearDepthf, - &ClearStencil, - &ColorMask, - &CompileShader, - &CompressedTexImage2D, - &CompressedTexSubImage2D, - &CopyTexImage2D, - &CopyTexSubImage2D, - &CreateProgram, - &CreateShader, - &CullFace, - &DeleteBuffers, - &DeleteFramebuffers, - &DeleteProgram, - &DeleteRenderbuffers, - &DeleteShader, - &DeleteTextures, - &DepthFunc, - &DepthMask, - &DepthRangef, - &DetachShader, - &Disable, - &DisableVertexAttribArray, - &DrawArrays, - &DrawElements, - &Enable, - &EnableVertexAttribArray, - &Finish, - &Flush, - &FramebufferRenderbuffer, - &FramebufferTexture2D, - &FrontFace, - &GenBuffers, - &GenerateMipmap, - &GenFramebuffers, - &GenRenderbuffers, - &GenTextures, - &GetActiveAttrib, - &GetActiveUniform, - &GetAttachedShaders, - &GetAttribLocation, - &GetBooleanv, - &GetBufferParameteriv, - &GetError, - &GetFloatv, - &GetFramebufferAttachmentParameteriv, - &GetIntegerv, - &GetProgramiv, - &GetProgramInfoLog, - &GetRenderbufferParameteriv, - &GetShaderiv, - &GetShaderInfoLog, - &GetShaderPrecisionFormat, - &GetShaderSource, - &GetString, - &GetTexParameterfv, - &GetTexParameteriv, - &GetUniformfv, - &GetUniformiv, - &GetUniformLocation, - &GetVertexAttribfv, - &GetVertexAttribiv, - &GetVertexAttribPointerv, - &Hint, - &IsBuffer, - &IsEnabled, - &IsFramebuffer, - &IsProgram, - &IsRenderbuffer, - &IsShader, - &IsTexture, - &LineWidth, - &LinkProgram, - &PixelStorei, - &PolygonOffset, - &ReadPixels, - &ReleaseShaderCompiler, - &RenderbufferStorage, - &SampleCoverage, - &Scissor, - &ShaderBinary, - &ShaderSource, - &StencilFunc, - &StencilFuncSeparate, - &StencilMask, - &StencilMaskSeparate, - &StencilOp, - &StencilOpSeparate, - &TexImage2D, - &TexParameterf, - &TexParameterfv, - &TexParameteri, - &TexParameteriv, - &TexSubImage2D, - &Uniform1f, - &Uniform1fv, - &Uniform1i, - &Uniform1iv, - &Uniform2f, - &Uniform2fv, - &Uniform2i, - &Uniform2iv, - &Uniform3f, - &Uniform3fv, - &Uniform3i, - &Uniform3iv, - &Uniform4f, - &Uniform4fv, - &Uniform4i, - &Uniform4iv, - &UniformMatrix2fv, - &UniformMatrix3fv, - &UniformMatrix4fv, - &UseProgram, - &ValidateProgram, - &VertexAttrib1f, - &VertexAttrib1fv, - &VertexAttrib2f, - &VertexAttrib2fv, - &VertexAttrib3f, - &VertexAttrib3fv, - &VertexAttrib4f, - &VertexAttrib4fv, - &VertexAttribPointer, - &Viewport -}; - - InterfaceProxy* CreateOpenGLES2Proxy(Dispatcher* dispatcher, const void* target_interface) { return new PPB_OpenGLES2_Proxy(dispatcher, target_interface); } - } // namespace PPB_OpenGLES2_Proxy::PPB_OpenGLES2_Proxy(Dispatcher* dispatcher, @@ -914,7 +27,7 @@ PPB_OpenGLES2_Proxy::~PPB_OpenGLES2_Proxy() { // static const InterfaceProxy::Info* PPB_OpenGLES2_Proxy::GetInfo() { static const Info info = { - &opengles2_interface, + ppapi::OpenGLES2Impl::GetInterface(), PPB_OPENGLES2_DEV_INTERFACE, INTERFACE_ID_PPB_OPENGLES2, false, diff --git a/ppapi/proxy/ppb_opengles2_proxy.h b/ppapi/proxy/ppb_opengles2_proxy.h index d4ea6f9..9388f4c 100644 --- a/ppapi/proxy/ppb_opengles2_proxy.h +++ b/ppapi/proxy/ppb_opengles2_proxy.h @@ -1,4 +1,4 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -19,14 +19,12 @@ class PPB_OpenGLES2_Proxy : public InterfaceProxy { static const Info* GetInfo(); - const PPB_OpenGLES2_Dev* ppb_gles2_target() const { + const PPB_OpenGLES2_Dev* ppb_opengles2_target() const { return reinterpret_cast<const PPB_OpenGLES2_Dev*>(target_interface()); } // InterfaceProxy implementation. virtual bool OnMessageReceived(const IPC::Message& msg); - - private: }; } // namespace proxy diff --git a/ppapi/shared_impl/opengles2_impl.cc b/ppapi/shared_impl/opengles2_impl.cc new file mode 100644 index 0000000..d79fb10 --- /dev/null +++ b/ppapi/shared_impl/opengles2_impl.cc @@ -0,0 +1,904 @@ +// Copyright (c) 2011 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 +// DO NOT EDIT! + +#include "ppapi/shared_impl/opengles2_impl.h" + +#include "base/logging.h" +#include "gpu/command_buffer/client/gles2_implementation.h" +#include "ppapi/shared_impl/graphics_3d_impl.h" +#include "ppapi/thunk/enter.h" +#include "ppapi/thunk/ppb_context_3d_api.h" + +namespace ppapi { + +namespace { + +gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) { + thunk::EnterResource<thunk::PPB_Graphics3D_API> enter_g3d(context, false); + if (enter_g3d.succeeded()) { + return static_cast<Graphics3DImpl*>(enter_g3d.object())->gles2_impl(); + } else { + thunk::EnterResource<thunk::PPB_Context3D_API> enter_c3d(context, true); + DCHECK(enter_c3d.succeeded()); + return enter_c3d.object()->GetGLES2Impl(); + } +} + +void ActiveTexture(PP_Resource context_id, GLenum texture) { + GetGLES(context_id)->ActiveTexture(texture); +} + +void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) { + GetGLES(context_id)->AttachShader(program, shader); +} + +void BindAttribLocation( + PP_Resource context_id, GLuint program, GLuint index, const char* name) { + GetGLES(context_id)->BindAttribLocation(program, index, name); +} + +void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) { + GetGLES(context_id)->BindBuffer(target, buffer); +} + +void BindFramebuffer( + PP_Resource context_id, GLenum target, GLuint framebuffer) { + GetGLES(context_id)->BindFramebuffer(target, framebuffer); +} + +void BindRenderbuffer( + PP_Resource context_id, GLenum target, GLuint renderbuffer) { + GetGLES(context_id)->BindRenderbuffer(target, renderbuffer); +} + +void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) { + GetGLES(context_id)->BindTexture(target, texture); +} + +void BlendColor( + PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, + GLclampf alpha) { + GetGLES(context_id)->BlendColor(red, green, blue, alpha); +} + +void BlendEquation(PP_Resource context_id, GLenum mode) { + GetGLES(context_id)->BlendEquation(mode); +} + +void BlendEquationSeparate( + PP_Resource context_id, GLenum modeRGB, GLenum modeAlpha) { + GetGLES(context_id)->BlendEquationSeparate(modeRGB, modeAlpha); +} + +void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) { + GetGLES(context_id)->BlendFunc(sfactor, dfactor); +} + +void BlendFuncSeparate( + PP_Resource context_id, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, + GLenum dstAlpha) { + GetGLES(context_id)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); +} + +void BufferData( + PP_Resource context_id, GLenum target, GLsizeiptr size, const void* data, + GLenum usage) { + GetGLES(context_id)->BufferData(target, size, data, usage); +} + +void BufferSubData( + PP_Resource context_id, GLenum target, GLintptr offset, GLsizeiptr size, + const void* data) { + GetGLES(context_id)->BufferSubData(target, offset, size, data); +} + +GLenum CheckFramebufferStatus(PP_Resource context_id, GLenum target) { + return GetGLES(context_id)->CheckFramebufferStatus(target); +} + +void Clear(PP_Resource context_id, GLbitfield mask) { + GetGLES(context_id)->Clear(mask); +} + +void ClearColor( + PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, + GLclampf alpha) { + GetGLES(context_id)->ClearColor(red, green, blue, alpha); +} + +void ClearDepthf(PP_Resource context_id, GLclampf depth) { + GetGLES(context_id)->ClearDepthf(depth); +} + +void ClearStencil(PP_Resource context_id, GLint s) { + GetGLES(context_id)->ClearStencil(s); +} + +void ColorMask( + PP_Resource context_id, GLboolean red, GLboolean green, GLboolean blue, + GLboolean alpha) { + GetGLES(context_id)->ColorMask(red, green, blue, alpha); +} + +void CompileShader(PP_Resource context_id, GLuint shader) { + GetGLES(context_id)->CompileShader(shader); +} + +void CompressedTexImage2D( + PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, + GLsizei width, GLsizei height, GLint border, GLsizei imageSize, + const void* data) { + GetGLES( + context_id)->CompressedTexImage2D( + target, level, internalformat, width, height, border, imageSize, + data); +} + +void CompressedTexSubImage2D( + PP_Resource context_id, GLenum target, GLint level, GLint xoffset, + GLint yoffset, GLsizei width, GLsizei height, GLenum format, + GLsizei imageSize, const void* data) { + GetGLES( + context_id)->CompressedTexSubImage2D( + target, level, xoffset, yoffset, width, height, format, imageSize, + data); +} + +void CopyTexImage2D( + PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, + GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { + GetGLES( + context_id)->CopyTexImage2D( + target, level, internalformat, x, y, width, height, border); +} + +void CopyTexSubImage2D( + PP_Resource context_id, GLenum target, GLint level, GLint xoffset, + GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { + GetGLES( + context_id)->CopyTexSubImage2D( + target, level, xoffset, yoffset, x, y, width, height); +} + +GLuint CreateProgram(PP_Resource context_id) { + return GetGLES(context_id)->CreateProgram(); +} + +GLuint CreateShader(PP_Resource context_id, GLenum type) { + return GetGLES(context_id)->CreateShader(type); +} + +void CullFace(PP_Resource context_id, GLenum mode) { + GetGLES(context_id)->CullFace(mode); +} + +void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) { + GetGLES(context_id)->DeleteBuffers(n, buffers); +} + +void DeleteFramebuffers( + PP_Resource context_id, GLsizei n, const GLuint* framebuffers) { + GetGLES(context_id)->DeleteFramebuffers(n, framebuffers); +} + +void DeleteProgram(PP_Resource context_id, GLuint program) { + GetGLES(context_id)->DeleteProgram(program); +} + +void DeleteRenderbuffers( + PP_Resource context_id, GLsizei n, const GLuint* renderbuffers) { + GetGLES(context_id)->DeleteRenderbuffers(n, renderbuffers); +} + +void DeleteShader(PP_Resource context_id, GLuint shader) { + GetGLES(context_id)->DeleteShader(shader); +} + +void DeleteTextures( + PP_Resource context_id, GLsizei n, const GLuint* textures) { + GetGLES(context_id)->DeleteTextures(n, textures); +} + +void DepthFunc(PP_Resource context_id, GLenum func) { + GetGLES(context_id)->DepthFunc(func); +} + +void DepthMask(PP_Resource context_id, GLboolean flag) { + GetGLES(context_id)->DepthMask(flag); +} + +void DepthRangef(PP_Resource context_id, GLclampf zNear, GLclampf zFar) { + GetGLES(context_id)->DepthRangef(zNear, zFar); +} + +void DetachShader(PP_Resource context_id, GLuint program, GLuint shader) { + GetGLES(context_id)->DetachShader(program, shader); +} + +void Disable(PP_Resource context_id, GLenum cap) { + GetGLES(context_id)->Disable(cap); +} + +void DisableVertexAttribArray(PP_Resource context_id, GLuint index) { + GetGLES(context_id)->DisableVertexAttribArray(index); +} + +void DrawArrays( + PP_Resource context_id, GLenum mode, GLint first, GLsizei count) { + GetGLES(context_id)->DrawArrays(mode, first, count); +} + +void DrawElements( + PP_Resource context_id, GLenum mode, GLsizei count, GLenum type, + const void* indices) { + GetGLES(context_id)->DrawElements(mode, count, type, indices); +} + +void Enable(PP_Resource context_id, GLenum cap) { + GetGLES(context_id)->Enable(cap); +} + +void EnableVertexAttribArray(PP_Resource context_id, GLuint index) { + GetGLES(context_id)->EnableVertexAttribArray(index); +} + +void Finish(PP_Resource context_id) { + GetGLES(context_id)->Finish(); +} + +void Flush(PP_Resource context_id) { + GetGLES(context_id)->Flush(); +} + +void FramebufferRenderbuffer( + PP_Resource context_id, GLenum target, GLenum attachment, + GLenum renderbuffertarget, GLuint renderbuffer) { + GetGLES( + context_id)->FramebufferRenderbuffer( + target, attachment, renderbuffertarget, renderbuffer); +} + +void FramebufferTexture2D( + PP_Resource context_id, GLenum target, GLenum attachment, GLenum textarget, + GLuint texture, GLint level) { + GetGLES( + context_id)->FramebufferTexture2D( + target, attachment, textarget, texture, level); +} + +void FrontFace(PP_Resource context_id, GLenum mode) { + GetGLES(context_id)->FrontFace(mode); +} + +void GenBuffers(PP_Resource context_id, GLsizei n, GLuint* buffers) { + GetGLES(context_id)->GenBuffers(n, buffers); +} + +void GenerateMipmap(PP_Resource context_id, GLenum target) { + GetGLES(context_id)->GenerateMipmap(target); +} + +void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) { + GetGLES(context_id)->GenFramebuffers(n, framebuffers); +} + +void GenRenderbuffers( + PP_Resource context_id, GLsizei n, GLuint* renderbuffers) { + GetGLES(context_id)->GenRenderbuffers(n, renderbuffers); +} + +void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) { + GetGLES(context_id)->GenTextures(n, textures); +} + +void GetActiveAttrib( + PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, + GLsizei* length, GLint* size, GLenum* type, char* name) { + GetGLES( + context_id)->GetActiveAttrib( + program, index, bufsize, length, size, type, name); +} + +void GetActiveUniform( + PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, + GLsizei* length, GLint* size, GLenum* type, char* name) { + GetGLES( + context_id)->GetActiveUniform( + program, index, bufsize, length, size, type, name); +} + +void GetAttachedShaders( + PP_Resource context_id, GLuint program, GLsizei maxcount, GLsizei* count, + GLuint* shaders) { + GetGLES(context_id)->GetAttachedShaders(program, maxcount, count, shaders); +} + +GLint GetAttribLocation( + PP_Resource context_id, GLuint program, const char* name) { + return GetGLES(context_id)->GetAttribLocation(program, name); +} + +void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) { + GetGLES(context_id)->GetBooleanv(pname, params); +} + +void GetBufferParameteriv( + PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { + GetGLES(context_id)->GetBufferParameteriv(target, pname, params); +} + +GLenum GetError(PP_Resource context_id) { + return GetGLES(context_id)->GetError(); +} + +void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) { + GetGLES(context_id)->GetFloatv(pname, params); +} + +void GetFramebufferAttachmentParameteriv( + PP_Resource context_id, GLenum target, GLenum attachment, GLenum pname, + GLint* params) { + GetGLES( + context_id)->GetFramebufferAttachmentParameteriv( + target, attachment, pname, params); +} + +void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) { + GetGLES(context_id)->GetIntegerv(pname, params); +} + +void GetProgramiv( + PP_Resource context_id, GLuint program, GLenum pname, GLint* params) { + GetGLES(context_id)->GetProgramiv(program, pname, params); +} + +void GetProgramInfoLog( + PP_Resource context_id, GLuint program, GLsizei bufsize, GLsizei* length, + char* infolog) { + GetGLES(context_id)->GetProgramInfoLog(program, bufsize, length, infolog); +} + +void GetRenderbufferParameteriv( + PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { + GetGLES(context_id)->GetRenderbufferParameteriv(target, pname, params); +} + +void GetShaderiv( + PP_Resource context_id, GLuint shader, GLenum pname, GLint* params) { + GetGLES(context_id)->GetShaderiv(shader, pname, params); +} + +void GetShaderInfoLog( + PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, + char* infolog) { + GetGLES(context_id)->GetShaderInfoLog(shader, bufsize, length, infolog); +} + +void GetShaderPrecisionFormat( + PP_Resource context_id, GLenum shadertype, GLenum precisiontype, + GLint* range, GLint* precision) { + GetGLES( + context_id)->GetShaderPrecisionFormat( + shadertype, precisiontype, range, precision); +} + +void GetShaderSource( + PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, + char* source) { + GetGLES(context_id)->GetShaderSource(shader, bufsize, length, source); +} + +const GLubyte* GetString(PP_Resource context_id, GLenum name) { + return GetGLES(context_id)->GetString(name); +} + +void GetTexParameterfv( + PP_Resource context_id, GLenum target, GLenum pname, GLfloat* params) { + GetGLES(context_id)->GetTexParameterfv(target, pname, params); +} + +void GetTexParameteriv( + PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { + GetGLES(context_id)->GetTexParameteriv(target, pname, params); +} + +void GetUniformfv( + PP_Resource context_id, GLuint program, GLint location, GLfloat* params) { + GetGLES(context_id)->GetUniformfv(program, location, params); +} + +void GetUniformiv( + PP_Resource context_id, GLuint program, GLint location, GLint* params) { + GetGLES(context_id)->GetUniformiv(program, location, params); +} + +GLint GetUniformLocation( + PP_Resource context_id, GLuint program, const char* name) { + return GetGLES(context_id)->GetUniformLocation(program, name); +} + +void GetVertexAttribfv( + PP_Resource context_id, GLuint index, GLenum pname, GLfloat* params) { + GetGLES(context_id)->GetVertexAttribfv(index, pname, params); +} + +void GetVertexAttribiv( + PP_Resource context_id, GLuint index, GLenum pname, GLint* params) { + GetGLES(context_id)->GetVertexAttribiv(index, pname, params); +} + +void GetVertexAttribPointerv( + PP_Resource context_id, GLuint index, GLenum pname, void** pointer) { + GetGLES(context_id)->GetVertexAttribPointerv(index, pname, pointer); +} + +void Hint(PP_Resource context_id, GLenum target, GLenum mode) { + GetGLES(context_id)->Hint(target, mode); +} + +GLboolean IsBuffer(PP_Resource context_id, GLuint buffer) { + return GetGLES(context_id)->IsBuffer(buffer); +} + +GLboolean IsEnabled(PP_Resource context_id, GLenum cap) { + return GetGLES(context_id)->IsEnabled(cap); +} + +GLboolean IsFramebuffer(PP_Resource context_id, GLuint framebuffer) { + return GetGLES(context_id)->IsFramebuffer(framebuffer); +} + +GLboolean IsProgram(PP_Resource context_id, GLuint program) { + return GetGLES(context_id)->IsProgram(program); +} + +GLboolean IsRenderbuffer(PP_Resource context_id, GLuint renderbuffer) { + return GetGLES(context_id)->IsRenderbuffer(renderbuffer); +} + +GLboolean IsShader(PP_Resource context_id, GLuint shader) { + return GetGLES(context_id)->IsShader(shader); +} + +GLboolean IsTexture(PP_Resource context_id, GLuint texture) { + return GetGLES(context_id)->IsTexture(texture); +} + +void LineWidth(PP_Resource context_id, GLfloat width) { + GetGLES(context_id)->LineWidth(width); +} + +void LinkProgram(PP_Resource context_id, GLuint program) { + GetGLES(context_id)->LinkProgram(program); +} + +void PixelStorei(PP_Resource context_id, GLenum pname, GLint param) { + GetGLES(context_id)->PixelStorei(pname, param); +} + +void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) { + GetGLES(context_id)->PolygonOffset(factor, units); +} + +void ReadPixels( + PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, void* pixels) { + GetGLES(context_id)->ReadPixels(x, y, width, height, format, type, pixels); +} + +void ReleaseShaderCompiler(PP_Resource context_id) { + GetGLES(context_id)->ReleaseShaderCompiler(); +} + +void RenderbufferStorage( + PP_Resource context_id, GLenum target, GLenum internalformat, GLsizei width, + GLsizei height) { + GetGLES( + context_id)->RenderbufferStorage(target, internalformat, width, height); +} + +void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) { + GetGLES(context_id)->SampleCoverage(value, invert); +} + +void Scissor( + PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { + GetGLES(context_id)->Scissor(x, y, width, height); +} + +void ShaderBinary( + PP_Resource context_id, GLsizei n, const GLuint* shaders, + GLenum binaryformat, const void* binary, GLsizei length) { + GetGLES(context_id)->ShaderBinary(n, shaders, binaryformat, binary, length); +} + +void ShaderSource( + PP_Resource context_id, GLuint shader, GLsizei count, const char** str, + const GLint* length) { + GetGLES(context_id)->ShaderSource(shader, count, str, length); +} + +void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) { + GetGLES(context_id)->StencilFunc(func, ref, mask); +} + +void StencilFuncSeparate( + PP_Resource context_id, GLenum face, GLenum func, GLint ref, GLuint mask) { + GetGLES(context_id)->StencilFuncSeparate(face, func, ref, mask); +} + +void StencilMask(PP_Resource context_id, GLuint mask) { + GetGLES(context_id)->StencilMask(mask); +} + +void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) { + GetGLES(context_id)->StencilMaskSeparate(face, mask); +} + +void StencilOp( + PP_Resource context_id, GLenum fail, GLenum zfail, GLenum zpass) { + GetGLES(context_id)->StencilOp(fail, zfail, zpass); +} + +void StencilOpSeparate( + PP_Resource context_id, GLenum face, GLenum fail, GLenum zfail, + GLenum zpass) { + GetGLES(context_id)->StencilOpSeparate(face, fail, zfail, zpass); +} + +void TexImage2D( + PP_Resource context_id, GLenum target, GLint level, GLint internalformat, + GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, + const void* pixels) { + GetGLES( + context_id)->TexImage2D( + target, level, internalformat, width, height, border, format, type, + pixels); +} + +void TexParameterf( + PP_Resource context_id, GLenum target, GLenum pname, GLfloat param) { + GetGLES(context_id)->TexParameterf(target, pname, param); +} + +void TexParameterfv( + PP_Resource context_id, GLenum target, GLenum pname, + const GLfloat* params) { + GetGLES(context_id)->TexParameterfv(target, pname, params); +} + +void TexParameteri( + PP_Resource context_id, GLenum target, GLenum pname, GLint param) { + GetGLES(context_id)->TexParameteri(target, pname, param); +} + +void TexParameteriv( + PP_Resource context_id, GLenum target, GLenum pname, const GLint* params) { + GetGLES(context_id)->TexParameteriv(target, pname, params); +} + +void TexSubImage2D( + PP_Resource context_id, GLenum target, GLint level, GLint xoffset, + GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, + const void* pixels) { + GetGLES( + context_id)->TexSubImage2D( + target, level, xoffset, yoffset, width, height, format, type, + pixels); +} + +void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) { + GetGLES(context_id)->Uniform1f(location, x); +} + +void Uniform1fv( + PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { + GetGLES(context_id)->Uniform1fv(location, count, v); +} + +void Uniform1i(PP_Resource context_id, GLint location, GLint x) { + GetGLES(context_id)->Uniform1i(location, x); +} + +void Uniform1iv( + PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { + GetGLES(context_id)->Uniform1iv(location, count, v); +} + +void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) { + GetGLES(context_id)->Uniform2f(location, x, y); +} + +void Uniform2fv( + PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { + GetGLES(context_id)->Uniform2fv(location, count, v); +} + +void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) { + GetGLES(context_id)->Uniform2i(location, x, y); +} + +void Uniform2iv( + PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { + GetGLES(context_id)->Uniform2iv(location, count, v); +} + +void Uniform3f( + PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z) { + GetGLES(context_id)->Uniform3f(location, x, y, z); +} + +void Uniform3fv( + PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { + GetGLES(context_id)->Uniform3fv(location, count, v); +} + +void Uniform3i( + PP_Resource context_id, GLint location, GLint x, GLint y, GLint z) { + GetGLES(context_id)->Uniform3i(location, x, y, z); +} + +void Uniform3iv( + PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { + GetGLES(context_id)->Uniform3iv(location, count, v); +} + +void Uniform4f( + PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z, + GLfloat w) { + GetGLES(context_id)->Uniform4f(location, x, y, z, w); +} + +void Uniform4fv( + PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { + GetGLES(context_id)->Uniform4fv(location, count, v); +} + +void Uniform4i( + PP_Resource context_id, GLint location, GLint x, GLint y, GLint z, + GLint w) { + GetGLES(context_id)->Uniform4i(location, x, y, z, w); +} + +void Uniform4iv( + PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { + GetGLES(context_id)->Uniform4iv(location, count, v); +} + +void UniformMatrix2fv( + PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) { + GetGLES(context_id)->UniformMatrix2fv(location, count, transpose, value); +} + +void UniformMatrix3fv( + PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) { + GetGLES(context_id)->UniformMatrix3fv(location, count, transpose, value); +} + +void UniformMatrix4fv( + PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) { + GetGLES(context_id)->UniformMatrix4fv(location, count, transpose, value); +} + +void UseProgram(PP_Resource context_id, GLuint program) { + GetGLES(context_id)->UseProgram(program); +} + +void ValidateProgram(PP_Resource context_id, GLuint program) { + GetGLES(context_id)->ValidateProgram(program); +} + +void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) { + GetGLES(context_id)->VertexAttrib1f(indx, x); +} + +void VertexAttrib1fv( + PP_Resource context_id, GLuint indx, const GLfloat* values) { + GetGLES(context_id)->VertexAttrib1fv(indx, values); +} + +void VertexAttrib2f( + PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) { + GetGLES(context_id)->VertexAttrib2f(indx, x, y); +} + +void VertexAttrib2fv( + PP_Resource context_id, GLuint indx, const GLfloat* values) { + GetGLES(context_id)->VertexAttrib2fv(indx, values); +} + +void VertexAttrib3f( + PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z) { + GetGLES(context_id)->VertexAttrib3f(indx, x, y, z); +} + +void VertexAttrib3fv( + PP_Resource context_id, GLuint indx, const GLfloat* values) { + GetGLES(context_id)->VertexAttrib3fv(indx, values); +} + +void VertexAttrib4f( + PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z, + GLfloat w) { + GetGLES(context_id)->VertexAttrib4f(indx, x, y, z, w); +} + +void VertexAttrib4fv( + PP_Resource context_id, GLuint indx, const GLfloat* values) { + GetGLES(context_id)->VertexAttrib4fv(indx, values); +} + +void VertexAttribPointer( + PP_Resource context_id, GLuint indx, GLint size, GLenum type, + GLboolean normalized, GLsizei stride, const void* ptr) { + GetGLES( + context_id)->VertexAttribPointer( + indx, size, type, normalized, stride, ptr); +} + +void Viewport( + PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { + GetGLES(context_id)->Viewport(x, y, width, height); +} + + +const struct PPB_OpenGLES2_Dev ppb_opengles2 = { + &ActiveTexture, + &AttachShader, + &BindAttribLocation, + &BindBuffer, + &BindFramebuffer, + &BindRenderbuffer, + &BindTexture, + &BlendColor, + &BlendEquation, + &BlendEquationSeparate, + &BlendFunc, + &BlendFuncSeparate, + &BufferData, + &BufferSubData, + &CheckFramebufferStatus, + &Clear, + &ClearColor, + &ClearDepthf, + &ClearStencil, + &ColorMask, + &CompileShader, + &CompressedTexImage2D, + &CompressedTexSubImage2D, + &CopyTexImage2D, + &CopyTexSubImage2D, + &CreateProgram, + &CreateShader, + &CullFace, + &DeleteBuffers, + &DeleteFramebuffers, + &DeleteProgram, + &DeleteRenderbuffers, + &DeleteShader, + &DeleteTextures, + &DepthFunc, + &DepthMask, + &DepthRangef, + &DetachShader, + &Disable, + &DisableVertexAttribArray, + &DrawArrays, + &DrawElements, + &Enable, + &EnableVertexAttribArray, + &Finish, + &Flush, + &FramebufferRenderbuffer, + &FramebufferTexture2D, + &FrontFace, + &GenBuffers, + &GenerateMipmap, + &GenFramebuffers, + &GenRenderbuffers, + &GenTextures, + &GetActiveAttrib, + &GetActiveUniform, + &GetAttachedShaders, + &GetAttribLocation, + &GetBooleanv, + &GetBufferParameteriv, + &GetError, + &GetFloatv, + &GetFramebufferAttachmentParameteriv, + &GetIntegerv, + &GetProgramiv, + &GetProgramInfoLog, + &GetRenderbufferParameteriv, + &GetShaderiv, + &GetShaderInfoLog, + &GetShaderPrecisionFormat, + &GetShaderSource, + &GetString, + &GetTexParameterfv, + &GetTexParameteriv, + &GetUniformfv, + &GetUniformiv, + &GetUniformLocation, + &GetVertexAttribfv, + &GetVertexAttribiv, + &GetVertexAttribPointerv, + &Hint, + &IsBuffer, + &IsEnabled, + &IsFramebuffer, + &IsProgram, + &IsRenderbuffer, + &IsShader, + &IsTexture, + &LineWidth, + &LinkProgram, + &PixelStorei, + &PolygonOffset, + &ReadPixels, + &ReleaseShaderCompiler, + &RenderbufferStorage, + &SampleCoverage, + &Scissor, + &ShaderBinary, + &ShaderSource, + &StencilFunc, + &StencilFuncSeparate, + &StencilMask, + &StencilMaskSeparate, + &StencilOp, + &StencilOpSeparate, + &TexImage2D, + &TexParameterf, + &TexParameterfv, + &TexParameteri, + &TexParameteriv, + &TexSubImage2D, + &Uniform1f, + &Uniform1fv, + &Uniform1i, + &Uniform1iv, + &Uniform2f, + &Uniform2fv, + &Uniform2i, + &Uniform2iv, + &Uniform3f, + &Uniform3fv, + &Uniform3i, + &Uniform3iv, + &Uniform4f, + &Uniform4fv, + &Uniform4i, + &Uniform4iv, + &UniformMatrix2fv, + &UniformMatrix3fv, + &UniformMatrix4fv, + &UseProgram, + &ValidateProgram, + &VertexAttrib1f, + &VertexAttrib1fv, + &VertexAttrib2f, + &VertexAttrib2fv, + &VertexAttrib3f, + &VertexAttrib3fv, + &VertexAttrib4f, + &VertexAttrib4fv, + &VertexAttribPointer, + &Viewport +}; + +} // namespace + +const PPB_OpenGLES2_Dev* OpenGLES2Impl::GetInterface() { + return &ppb_opengles2; +} + +} // namespace ppapi diff --git a/ppapi/shared_impl/opengles2_impl.h b/ppapi/shared_impl/opengles2_impl.h new file mode 100644 index 0000000..6284a42 --- /dev/null +++ b/ppapi/shared_impl/opengles2_impl.h @@ -0,0 +1,20 @@ +// Copyright (c) 2011 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. + +#ifndef PPAPI_SHARED_IMPL_OPENGLES2_IMPL_H_ +#define PPAPI_SHARED_IMPL_OPENGLES2_IMPL_H_ + +#include "ppapi/c/dev/ppb_opengles_dev.h" + +namespace ppapi { + +class OpenGLES2Impl { + public: + static const PPB_OpenGLES2_Dev* GetInterface(); +}; + +} // namespace ppapi + +#endif // PPAPI_SHARED_IMPL_OPENGLES2_IMPL_H_ + diff --git a/ppapi/thunk/ppb_context_3d_api.h b/ppapi/thunk/ppb_context_3d_api.h index a89e0c8..feeba89 100644 --- a/ppapi/thunk/ppb_context_3d_api.h +++ b/ppapi/thunk/ppb_context_3d_api.h @@ -9,6 +9,12 @@ #include "ppapi/c/dev/ppb_context_3d_trusted_dev.h" #include "ppapi/c/dev/ppb_gles_chromium_texture_mapping_dev.h" +namespace gpu { +namespace gles2 { +class GLES2Implementation; +} // namespace gles2 +} // namespace gpu + namespace ppapi { namespace thunk { @@ -47,6 +53,9 @@ class PPB_Context3D_API { GLenum type, GLenum access) = 0; virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) = 0; + + // For binding with OpenGLES interface. + virtual gpu::gles2::GLES2Implementation* GetGLES2Impl() = 0; }; } // namespace thunk diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc index 3261ec2..3163a1c 100644 --- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc @@ -55,6 +55,7 @@ #include "webkit/plugins/ppapi/plugin_object.h" #include "webkit/plugins/ppapi/ppb_buffer_impl.h" #include "webkit/plugins/ppapi/ppb_graphics_2d_impl.h" +#include "webkit/plugins/ppapi/ppb_graphics_3d_impl.h" #include "webkit/plugins/ppapi/ppb_image_data_impl.h" #include "webkit/plugins/ppapi/ppb_input_event_impl.h" #include "webkit/plugins/ppapi/ppb_surface_3d_impl.h" @@ -89,6 +90,7 @@ using ppapi::thunk::EnterResourceNoLock; using ppapi::thunk::PPB_Buffer_API; using ppapi::thunk::PPB_Graphics2D_API; +using ppapi::thunk::PPB_Graphics3D_API; using ppapi::thunk::PPB_ImageData_API; using ppapi::thunk::PPB_Instance_FunctionAPI; using ppapi::thunk::PPB_Surface3D_API; @@ -286,8 +288,8 @@ void PluginInstance::Paint(WebCanvas* canvas, return; } - if (bound_graphics_2d()) - bound_graphics_2d()->Paint(canvas, plugin_rect, paint_rect); + if (GetBoundGraphics2D()) + GetBoundGraphics2D()->Paint(canvas, plugin_rect, paint_rect); } void PluginInstance::InvalidateRect(const gfx::Rect& rect) { @@ -321,10 +323,12 @@ void PluginInstance::ScrollRect(int dx, int dy, const gfx::Rect& rect) { } unsigned PluginInstance::GetBackingTextureId() { - if (!bound_graphics_3d()) - return 0; + if (GetBoundGraphics3D()) + return GetBoundGraphics3D()->GetBackingTextureId(); + else if (GetBoundSurface3D()) + return GetBoundSurface3D()->GetBackingTextureId(); - return bound_graphics_3d()->GetBackingTextureId(); + return 0; } void PluginInstance::CommitBackingTexture() { @@ -546,19 +550,23 @@ void PluginInstance::SetContentAreaFocus(bool has_focus) { } void PluginInstance::ViewInitiatedPaint() { - if (bound_graphics_2d()) - bound_graphics_2d()->ViewInitiatedPaint(); - if (bound_graphics_3d()) - bound_graphics_3d()->ViewInitiatedPaint(); + if (GetBoundGraphics2D()) + GetBoundGraphics2D()->ViewInitiatedPaint(); + else if (GetBoundGraphics3D()) + GetBoundGraphics3D()->ViewInitiatedPaint(); + else if (GetBoundSurface3D()) + GetBoundSurface3D()->ViewInitiatedPaint(); } void PluginInstance::ViewFlushedPaint() { // Keep a reference on the stack. See NOTE above. scoped_refptr<PluginInstance> ref(this); - if (bound_graphics_2d()) - bound_graphics_2d()->ViewFlushedPaint(); - if (bound_graphics_3d()) - bound_graphics_3d()->ViewFlushedPaint(); + if (GetBoundGraphics2D()) + GetBoundGraphics2D()->ViewFlushedPaint(); + else if (GetBoundGraphics3D()) + GetBoundGraphics3D()->ViewFlushedPaint(); + else if (GetBoundSurface3D()) + GetBoundSurface3D()->ViewFlushedPaint(); } bool PluginInstance::GetBitmapForOptimizedPluginPaint( @@ -568,13 +576,13 @@ bool PluginInstance::GetBitmapForOptimizedPluginPaint( gfx::Rect* clip) { if (!always_on_top_) return false; - if (!bound_graphics_2d() || !bound_graphics_2d()->is_always_opaque()) + if (!GetBoundGraphics2D() || !GetBoundGraphics2D()->is_always_opaque()) return false; // We specifically want to compare against the area covered by the backing // store when seeing if we cover the given paint bounds, since the backing // store could be smaller than the declared plugin area. - PPB_ImageData_Impl* image_data = bound_graphics_2d()->image_data(); + PPB_ImageData_Impl* image_data = GetBoundGraphics2D()->image_data(); gfx::Rect plugin_backing_store_rect(position_.origin(), gfx::Size(image_data->width(), image_data->height())); @@ -1260,7 +1268,7 @@ void PluginInstance::DrawSkBitmapToCanvas( } #endif // defined(OS_MACOSX) && !defined(USE_SKIA) -PPB_Graphics2D_Impl* PluginInstance::bound_graphics_2d() const { +PPB_Graphics2D_Impl* PluginInstance::GetBoundGraphics2D() const { if (bound_graphics_.get() == NULL) return NULL; @@ -1269,7 +1277,16 @@ PPB_Graphics2D_Impl* PluginInstance::bound_graphics_2d() const { return NULL; } -PPB_Surface3D_Impl* PluginInstance::bound_graphics_3d() const { +PPB_Graphics3D_Impl* PluginInstance::GetBoundGraphics3D() const { + if (bound_graphics_.get() == NULL) + return NULL; + + if (bound_graphics_->AsPPB_Graphics3D_API()) + return static_cast<PPB_Graphics3D_Impl*>(bound_graphics_.get()); + return NULL; +} + +PPB_Surface3D_Impl* PluginInstance::GetBoundSurface3D() const { if (bound_graphics_.get() == NULL) return NULL; @@ -1345,33 +1362,38 @@ PPB_Instance_FunctionAPI* PluginInstance::AsPPB_Instance_FunctionAPI() { PP_Bool PluginInstance::BindGraphics(PP_Instance instance, PP_Resource device) { if (bound_graphics_.get()) { - if (bound_graphics_2d()) { - bound_graphics_2d()->BindToInstance(NULL); - } else if (bound_graphics_.get()) { - bound_graphics_3d()->BindToInstance(false); - } - // Special-case clearing the current device. - if (!device) { - setBackingTextureId(0); - InvalidateRect(gfx::Rect()); + if (GetBoundGraphics2D()) { + GetBoundGraphics2D()->BindToInstance(NULL); + } else if (GetBoundGraphics3D()) { + GetBoundGraphics3D()->BindToInstance(false); + } else if (GetBoundSurface3D()) { + GetBoundSurface3D()->BindToInstance(false); } + bound_graphics_ = NULL; } - bound_graphics_ = NULL; - if (!device) + // Special-case clearing the current device. + if (!device) { + setBackingTextureId(0); + InvalidateRect(gfx::Rect()); return PP_TRUE; + } + + // Refuse to bind if we're transitioning to fullscreen. + if (fullscreen_container_ && !fullscreen_) + return PP_FALSE; EnterResourceNoLock<PPB_Graphics2D_API> enter_2d(device, false); PPB_Graphics2D_Impl* graphics_2d = enter_2d.succeeded() ? static_cast<PPB_Graphics2D_Impl*>(enter_2d.object()) : NULL; - EnterResourceNoLock<PPB_Surface3D_API> enter_3d(device, false); - PPB_Surface3D_Impl* graphics_3d = enter_3d.succeeded() ? - static_cast<PPB_Surface3D_Impl*>(enter_3d.object()) : NULL; + EnterResourceNoLock<PPB_Graphics3D_API> enter_3d(device, false); + PPB_Graphics3D_Impl* graphics_3d = enter_3d.succeeded() ? + static_cast<PPB_Graphics3D_Impl*>(enter_3d.object()) : NULL; + EnterResourceNoLock<PPB_Surface3D_API> enter_surface_3d(device, false); + PPB_Surface3D_Impl* surface_3d = enter_surface_3d.succeeded() ? + static_cast<PPB_Surface3D_Impl*>(enter_surface_3d.object()) : NULL; if (graphics_2d) { - // Refuse to bind if we're transitioning to fullscreen. - if (fullscreen_container_ && !fullscreen_) - return PP_FALSE; if (graphics_2d->instance() != this) return PP_FALSE; // Can't bind other instance's contexts. if (!graphics_2d->BindToInstance(this)) @@ -1381,9 +1403,6 @@ PP_Bool PluginInstance::BindGraphics(PP_Instance instance, setBackingTextureId(0); // BindToInstance will have invalidated the plugin if necessary. } else if (graphics_3d) { - // Refuse to bind if we're transitioning to fullscreen. - if (fullscreen_container_ && !fullscreen_) - return PP_FALSE; // Make sure graphics can only be bound to the instance it is // associated with. if (graphics_3d->instance() != this) @@ -1391,8 +1410,18 @@ PP_Bool PluginInstance::BindGraphics(PP_Instance instance, if (!graphics_3d->BindToInstance(true)) return PP_FALSE; - setBackingTextureId(graphics_3d->GetBackingTextureId()); bound_graphics_ = graphics_3d; + setBackingTextureId(graphics_3d->GetBackingTextureId()); + } else if (surface_3d) { + // Make sure graphics can only be bound to the instance it is + // associated with. + if (surface_3d->instance() != this) + return PP_FALSE; + if (!surface_3d->BindToInstance(true)) + return PP_FALSE; + + bound_graphics_ = surface_3d; + setBackingTextureId(surface_3d->GetBackingTextureId()); } else { // The device is not a valid resource type. return PP_FALSE; diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.h b/webkit/plugins/ppapi/ppapi_plugin_instance.h index d284580..c122ada 100644 --- a/webkit/plugins/ppapi/ppapi_plugin_instance.h +++ b/webkit/plugins/ppapi/ppapi_plugin_instance.h @@ -70,6 +70,7 @@ class PluginDelegate; class PluginModule; class PluginObject; class PPB_Graphics2D_Impl; +class PPB_Graphics3D_Impl; class PPB_ImageData_Impl; class PPB_Surface3D_Impl; class PPB_URLLoader_Impl; @@ -330,11 +331,16 @@ class PluginInstance : public base::RefCounted<PluginInstance>, // Get the bound graphics context as a concrete 2D graphics context or returns // null if the context is not 2D. - PPB_Graphics2D_Impl* bound_graphics_2d() const; + PPB_Graphics2D_Impl* GetBoundGraphics2D() const; + // Get the bound 3D graphics context. + // Returns NULL if bound graphics is not a 3D context. + PPB_Graphics3D_Impl* GetBoundGraphics3D() const; + + // DEPRECATED: PPB_Surface3D_Impl is being replaced with PPB_Graphics3D_Impl. // Get the bound 3D graphics surface. // Returns NULL if bound graphics is not a 3D surface. - PPB_Surface3D_Impl* bound_graphics_3d() const; + PPB_Surface3D_Impl* GetBoundSurface3D() const; // Sets the id of the texture that the plugin draws to. The id is in the // compositor space so it can use it to composite with rest of the page. diff --git a/webkit/plugins/ppapi/ppb_context_3d_impl.cc b/webkit/plugins/ppapi/ppb_context_3d_impl.cc index e4384b4..6014bde 100644 --- a/webkit/plugins/ppapi/ppb_context_3d_impl.cc +++ b/webkit/plugins/ppapi/ppb_context_3d_impl.cc @@ -266,6 +266,10 @@ void PPB_Context3D_Impl::UnmapTexSubImage2DCHROMIUM(const void* mem) { gles2_impl_->UnmapTexSubImage2DCHROMIUM(mem); } +gpu::gles2::GLES2Implementation* PPB_Context3D_Impl::GetGLES2Impl() { + return gles2_impl(); +} + bool PPB_Context3D_Impl::Init(PP_Config3D_Dev config, PP_Resource share_context, const int32_t* attrib_list) { diff --git a/webkit/plugins/ppapi/ppb_context_3d_impl.h b/webkit/plugins/ppapi/ppb_context_3d_impl.h index c64a7d6..4bdbe21 100644 --- a/webkit/plugins/ppapi/ppb_context_3d_impl.h +++ b/webkit/plugins/ppapi/ppb_context_3d_impl.h @@ -72,6 +72,7 @@ class PPB_Context3D_Impl : public Resource, GLenum type, GLenum access) OVERRIDE; virtual void UnmapTexSubImage2DCHROMIUM(const void* mem) OVERRIDE; + virtual gpu::gles2::GLES2Implementation* GetGLES2Impl() OVERRIDE; int32_t BindSurfacesImpl(PPB_Surface3D_Impl* draw, PPB_Surface3D_Impl* read); diff --git a/webkit/plugins/ppapi/ppb_graphics_3d_impl.cc b/webkit/plugins/ppapi/ppb_graphics_3d_impl.cc index 1c6c66b..e38d66c 100644 --- a/webkit/plugins/ppapi/ppb_graphics_3d_impl.cc +++ b/webkit/plugins/ppapi/ppb_graphics_3d_impl.cc @@ -141,6 +141,12 @@ PP_Graphics3DTrustedState PPB_Graphics3D_Impl::FlushSyncFast( bool PPB_Graphics3D_Impl::BindToInstance(bool bind) { bound_to_instance_ = bind; + if (bind && gles2_impl()) { + // Resize the backing texture to the size of the instance when it is bound. + // TODO(alokp): This should be the responsibility of plugins. + const gfx::Size& size = instance()->position().size(); + gles2_impl()->ResizeCHROMIUM(size.width(), size.height()); + } return true; } diff --git a/webkit/plugins/ppapi/ppb_opengles_impl.cc b/webkit/plugins/ppapi/ppb_opengles_impl.cc index 3183e27..3744a5d 100644 --- a/webkit/plugins/ppapi/ppb_opengles_impl.cc +++ b/webkit/plugins/ppapi/ppb_opengles_impl.cc @@ -2,902 +2,15 @@ // 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 -// DO NOT EDIT! - #include "webkit/plugins/ppapi/ppb_opengles_impl.h" -#include "gpu/command_buffer/client/gles2_implementation.h" -#include "ppapi/c/dev/ppb_opengles_dev.h" -#include "ppapi/shared_impl/resource_object_base.h" -#include "ppapi/shared_impl/tracker_base.h" -#include "webkit/plugins/ppapi/ppb_context_3d_impl.h" - -using ppapi::ResourceObjectBase; -using ppapi::TrackerBase; +#include "ppapi/shared_impl/opengles2_impl.h" namespace webkit { namespace ppapi { -namespace { - -gpu::gles2::GLES2Implementation* GetGLES(PP_Resource context) { - ResourceObjectBase* base = TrackerBase::Get()->GetResourceAPI(context); - DCHECK(base->AsPPB_Context3D_API()); - return static_cast<PPB_Context3D_Impl*>(base)->gles2_impl(); -} - -void ActiveTexture(PP_Resource context_id, GLenum texture) { - GetGLES(context_id)->ActiveTexture(texture); -} - -void AttachShader(PP_Resource context_id, GLuint program, GLuint shader) { - GetGLES(context_id)->AttachShader(program, shader); -} - -void BindAttribLocation( - PP_Resource context_id, GLuint program, GLuint index, const char* name) { - GetGLES(context_id)->BindAttribLocation(program, index, name); -} - -void BindBuffer(PP_Resource context_id, GLenum target, GLuint buffer) { - GetGLES(context_id)->BindBuffer(target, buffer); -} - -void BindFramebuffer( - PP_Resource context_id, GLenum target, GLuint framebuffer) { - GetGLES(context_id)->BindFramebuffer(target, framebuffer); -} - -void BindRenderbuffer( - PP_Resource context_id, GLenum target, GLuint renderbuffer) { - GetGLES(context_id)->BindRenderbuffer(target, renderbuffer); -} - -void BindTexture(PP_Resource context_id, GLenum target, GLuint texture) { - GetGLES(context_id)->BindTexture(target, texture); -} - -void BlendColor( - PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { - GetGLES(context_id)->BlendColor(red, green, blue, alpha); -} - -void BlendEquation(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->BlendEquation(mode); -} - -void BlendEquationSeparate( - PP_Resource context_id, GLenum modeRGB, GLenum modeAlpha) { - GetGLES(context_id)->BlendEquationSeparate(modeRGB, modeAlpha); -} - -void BlendFunc(PP_Resource context_id, GLenum sfactor, GLenum dfactor) { - GetGLES(context_id)->BlendFunc(sfactor, dfactor); -} - -void BlendFuncSeparate( - PP_Resource context_id, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, - GLenum dstAlpha) { - GetGLES(context_id)->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); -} - -void BufferData( - PP_Resource context_id, GLenum target, GLsizeiptr size, const void* data, - GLenum usage) { - GetGLES(context_id)->BufferData(target, size, data, usage); -} - -void BufferSubData( - PP_Resource context_id, GLenum target, GLintptr offset, GLsizeiptr size, - const void* data) { - GetGLES(context_id)->BufferSubData(target, offset, size, data); -} - -GLenum CheckFramebufferStatus(PP_Resource context_id, GLenum target) { - return GetGLES(context_id)->CheckFramebufferStatus(target); -} - -void Clear(PP_Resource context_id, GLbitfield mask) { - GetGLES(context_id)->Clear(mask); -} - -void ClearColor( - PP_Resource context_id, GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { - GetGLES(context_id)->ClearColor(red, green, blue, alpha); -} - -void ClearDepthf(PP_Resource context_id, GLclampf depth) { - GetGLES(context_id)->ClearDepthf(depth); -} - -void ClearStencil(PP_Resource context_id, GLint s) { - GetGLES(context_id)->ClearStencil(s); -} - -void ColorMask( - PP_Resource context_id, GLboolean red, GLboolean green, GLboolean blue, - GLboolean alpha) { - GetGLES(context_id)->ColorMask(red, green, blue, alpha); -} - -void CompileShader(PP_Resource context_id, GLuint shader) { - GetGLES(context_id)->CompileShader(shader); -} - -void CompressedTexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, - GLsizei width, GLsizei height, GLint border, GLsizei imageSize, - const void* data) { - GetGLES( - context_id)->CompressedTexImage2D( - target, level, internalformat, width, height, border, imageSize, - data); -} - -void CompressedTexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLsizei width, GLsizei height, GLenum format, - GLsizei imageSize, const void* data) { - GetGLES( - context_id)->CompressedTexSubImage2D( - target, level, xoffset, yoffset, width, height, format, imageSize, - data); -} - -void CopyTexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLenum internalformat, - GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { - GetGLES( - context_id)->CopyTexImage2D( - target, level, internalformat, x, y, width, height, border); -} - -void CopyTexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES( - context_id)->CopyTexSubImage2D( - target, level, xoffset, yoffset, x, y, width, height); -} - -GLuint CreateProgram(PP_Resource context_id) { - return GetGLES(context_id)->CreateProgram(); -} - -GLuint CreateShader(PP_Resource context_id, GLenum type) { - return GetGLES(context_id)->CreateShader(type); -} - -void CullFace(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->CullFace(mode); -} - -void DeleteBuffers(PP_Resource context_id, GLsizei n, const GLuint* buffers) { - GetGLES(context_id)->DeleteBuffers(n, buffers); -} - -void DeleteFramebuffers( - PP_Resource context_id, GLsizei n, const GLuint* framebuffers) { - GetGLES(context_id)->DeleteFramebuffers(n, framebuffers); -} - -void DeleteProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->DeleteProgram(program); -} - -void DeleteRenderbuffers( - PP_Resource context_id, GLsizei n, const GLuint* renderbuffers) { - GetGLES(context_id)->DeleteRenderbuffers(n, renderbuffers); -} - -void DeleteShader(PP_Resource context_id, GLuint shader) { - GetGLES(context_id)->DeleteShader(shader); -} - -void DeleteTextures( - PP_Resource context_id, GLsizei n, const GLuint* textures) { - GetGLES(context_id)->DeleteTextures(n, textures); -} - -void DepthFunc(PP_Resource context_id, GLenum func) { - GetGLES(context_id)->DepthFunc(func); -} - -void DepthMask(PP_Resource context_id, GLboolean flag) { - GetGLES(context_id)->DepthMask(flag); -} - -void DepthRangef(PP_Resource context_id, GLclampf zNear, GLclampf zFar) { - GetGLES(context_id)->DepthRangef(zNear, zFar); -} - -void DetachShader(PP_Resource context_id, GLuint program, GLuint shader) { - GetGLES(context_id)->DetachShader(program, shader); -} - -void Disable(PP_Resource context_id, GLenum cap) { - GetGLES(context_id)->Disable(cap); -} - -void DisableVertexAttribArray(PP_Resource context_id, GLuint index) { - GetGLES(context_id)->DisableVertexAttribArray(index); -} - -void DrawArrays( - PP_Resource context_id, GLenum mode, GLint first, GLsizei count) { - GetGLES(context_id)->DrawArrays(mode, first, count); -} - -void DrawElements( - PP_Resource context_id, GLenum mode, GLsizei count, GLenum type, - const void* indices) { - GetGLES(context_id)->DrawElements(mode, count, type, indices); -} - -void Enable(PP_Resource context_id, GLenum cap) { - GetGLES(context_id)->Enable(cap); -} - -void EnableVertexAttribArray(PP_Resource context_id, GLuint index) { - GetGLES(context_id)->EnableVertexAttribArray(index); -} - -void Finish(PP_Resource context_id) { - GetGLES(context_id)->Finish(); -} - -void Flush(PP_Resource context_id) { - GetGLES(context_id)->Flush(); -} - -void FramebufferRenderbuffer( - PP_Resource context_id, GLenum target, GLenum attachment, - GLenum renderbuffertarget, GLuint renderbuffer) { - GetGLES( - context_id)->FramebufferRenderbuffer( - target, attachment, renderbuffertarget, renderbuffer); -} - -void FramebufferTexture2D( - PP_Resource context_id, GLenum target, GLenum attachment, GLenum textarget, - GLuint texture, GLint level) { - GetGLES( - context_id)->FramebufferTexture2D( - target, attachment, textarget, texture, level); -} - -void FrontFace(PP_Resource context_id, GLenum mode) { - GetGLES(context_id)->FrontFace(mode); -} - -void GenBuffers(PP_Resource context_id, GLsizei n, GLuint* buffers) { - GetGLES(context_id)->GenBuffers(n, buffers); -} - -void GenerateMipmap(PP_Resource context_id, GLenum target) { - GetGLES(context_id)->GenerateMipmap(target); -} - -void GenFramebuffers(PP_Resource context_id, GLsizei n, GLuint* framebuffers) { - GetGLES(context_id)->GenFramebuffers(n, framebuffers); -} - -void GenRenderbuffers( - PP_Resource context_id, GLsizei n, GLuint* renderbuffers) { - GetGLES(context_id)->GenRenderbuffers(n, renderbuffers); -} - -void GenTextures(PP_Resource context_id, GLsizei n, GLuint* textures) { - GetGLES(context_id)->GenTextures(n, textures); -} - -void GetActiveAttrib( - PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, - GLsizei* length, GLint* size, GLenum* type, char* name) { - GetGLES( - context_id)->GetActiveAttrib( - program, index, bufsize, length, size, type, name); -} - -void GetActiveUniform( - PP_Resource context_id, GLuint program, GLuint index, GLsizei bufsize, - GLsizei* length, GLint* size, GLenum* type, char* name) { - GetGLES( - context_id)->GetActiveUniform( - program, index, bufsize, length, size, type, name); -} - -void GetAttachedShaders( - PP_Resource context_id, GLuint program, GLsizei maxcount, GLsizei* count, - GLuint* shaders) { - GetGLES(context_id)->GetAttachedShaders(program, maxcount, count, shaders); -} - -GLint GetAttribLocation( - PP_Resource context_id, GLuint program, const char* name) { - return GetGLES(context_id)->GetAttribLocation(program, name); -} - -void GetBooleanv(PP_Resource context_id, GLenum pname, GLboolean* params) { - GetGLES(context_id)->GetBooleanv(pname, params); -} - -void GetBufferParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetBufferParameteriv(target, pname, params); -} - -GLenum GetError(PP_Resource context_id) { - return GetGLES(context_id)->GetError(); -} - -void GetFloatv(PP_Resource context_id, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetFloatv(pname, params); -} - -void GetFramebufferAttachmentParameteriv( - PP_Resource context_id, GLenum target, GLenum attachment, GLenum pname, - GLint* params) { - GetGLES( - context_id)->GetFramebufferAttachmentParameteriv( - target, attachment, pname, params); -} - -void GetIntegerv(PP_Resource context_id, GLenum pname, GLint* params) { - GetGLES(context_id)->GetIntegerv(pname, params); -} - -void GetProgramiv( - PP_Resource context_id, GLuint program, GLenum pname, GLint* params) { - GetGLES(context_id)->GetProgramiv(program, pname, params); -} - -void GetProgramInfoLog( - PP_Resource context_id, GLuint program, GLsizei bufsize, GLsizei* length, - char* infolog) { - GetGLES(context_id)->GetProgramInfoLog(program, bufsize, length, infolog); -} - -void GetRenderbufferParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetRenderbufferParameteriv(target, pname, params); -} - -void GetShaderiv( - PP_Resource context_id, GLuint shader, GLenum pname, GLint* params) { - GetGLES(context_id)->GetShaderiv(shader, pname, params); -} - -void GetShaderInfoLog( - PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, - char* infolog) { - GetGLES(context_id)->GetShaderInfoLog(shader, bufsize, length, infolog); -} - -void GetShaderPrecisionFormat( - PP_Resource context_id, GLenum shadertype, GLenum precisiontype, - GLint* range, GLint* precision) { - GetGLES( - context_id)->GetShaderPrecisionFormat( - shadertype, precisiontype, range, precision); -} - -void GetShaderSource( - PP_Resource context_id, GLuint shader, GLsizei bufsize, GLsizei* length, - char* source) { - GetGLES(context_id)->GetShaderSource(shader, bufsize, length, source); -} - -const GLubyte* GetString(PP_Resource context_id, GLenum name) { - return GetGLES(context_id)->GetString(name); -} - -void GetTexParameterfv( - PP_Resource context_id, GLenum target, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetTexParameterfv(target, pname, params); -} - -void GetTexParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, GLint* params) { - GetGLES(context_id)->GetTexParameteriv(target, pname, params); -} - -void GetUniformfv( - PP_Resource context_id, GLuint program, GLint location, GLfloat* params) { - GetGLES(context_id)->GetUniformfv(program, location, params); -} - -void GetUniformiv( - PP_Resource context_id, GLuint program, GLint location, GLint* params) { - GetGLES(context_id)->GetUniformiv(program, location, params); -} - -GLint GetUniformLocation( - PP_Resource context_id, GLuint program, const char* name) { - return GetGLES(context_id)->GetUniformLocation(program, name); -} - -void GetVertexAttribfv( - PP_Resource context_id, GLuint index, GLenum pname, GLfloat* params) { - GetGLES(context_id)->GetVertexAttribfv(index, pname, params); -} - -void GetVertexAttribiv( - PP_Resource context_id, GLuint index, GLenum pname, GLint* params) { - GetGLES(context_id)->GetVertexAttribiv(index, pname, params); -} - -void GetVertexAttribPointerv( - PP_Resource context_id, GLuint index, GLenum pname, void** pointer) { - GetGLES(context_id)->GetVertexAttribPointerv(index, pname, pointer); -} - -void Hint(PP_Resource context_id, GLenum target, GLenum mode) { - GetGLES(context_id)->Hint(target, mode); -} - -GLboolean IsBuffer(PP_Resource context_id, GLuint buffer) { - return GetGLES(context_id)->IsBuffer(buffer); -} - -GLboolean IsEnabled(PP_Resource context_id, GLenum cap) { - return GetGLES(context_id)->IsEnabled(cap); -} - -GLboolean IsFramebuffer(PP_Resource context_id, GLuint framebuffer) { - return GetGLES(context_id)->IsFramebuffer(framebuffer); -} - -GLboolean IsProgram(PP_Resource context_id, GLuint program) { - return GetGLES(context_id)->IsProgram(program); -} - -GLboolean IsRenderbuffer(PP_Resource context_id, GLuint renderbuffer) { - return GetGLES(context_id)->IsRenderbuffer(renderbuffer); -} - -GLboolean IsShader(PP_Resource context_id, GLuint shader) { - return GetGLES(context_id)->IsShader(shader); -} - -GLboolean IsTexture(PP_Resource context_id, GLuint texture) { - return GetGLES(context_id)->IsTexture(texture); -} - -void LineWidth(PP_Resource context_id, GLfloat width) { - GetGLES(context_id)->LineWidth(width); -} - -void LinkProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->LinkProgram(program); -} - -void PixelStorei(PP_Resource context_id, GLenum pname, GLint param) { - GetGLES(context_id)->PixelStorei(pname, param); -} - -void PolygonOffset(PP_Resource context_id, GLfloat factor, GLfloat units) { - GetGLES(context_id)->PolygonOffset(factor, units); -} - -void ReadPixels( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, void* pixels) { - GetGLES(context_id)->ReadPixels(x, y, width, height, format, type, pixels); -} - -void ReleaseShaderCompiler(PP_Resource context_id) { - GetGLES(context_id)->ReleaseShaderCompiler(); -} - -void RenderbufferStorage( - PP_Resource context_id, GLenum target, GLenum internalformat, GLsizei width, - GLsizei height) { - GetGLES( - context_id)->RenderbufferStorage(target, internalformat, width, height); -} - -void SampleCoverage(PP_Resource context_id, GLclampf value, GLboolean invert) { - GetGLES(context_id)->SampleCoverage(value, invert); -} - -void Scissor( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES(context_id)->Scissor(x, y, width, height); -} - -void ShaderBinary( - PP_Resource context_id, GLsizei n, const GLuint* shaders, - GLenum binaryformat, const void* binary, GLsizei length) { - GetGLES(context_id)->ShaderBinary(n, shaders, binaryformat, binary, length); -} - -void ShaderSource( - PP_Resource context_id, GLuint shader, GLsizei count, const char** str, - const GLint* length) { - GetGLES(context_id)->ShaderSource(shader, count, str, length); -} - -void StencilFunc(PP_Resource context_id, GLenum func, GLint ref, GLuint mask) { - GetGLES(context_id)->StencilFunc(func, ref, mask); -} - -void StencilFuncSeparate( - PP_Resource context_id, GLenum face, GLenum func, GLint ref, GLuint mask) { - GetGLES(context_id)->StencilFuncSeparate(face, func, ref, mask); -} - -void StencilMask(PP_Resource context_id, GLuint mask) { - GetGLES(context_id)->StencilMask(mask); -} - -void StencilMaskSeparate(PP_Resource context_id, GLenum face, GLuint mask) { - GetGLES(context_id)->StencilMaskSeparate(face, mask); -} - -void StencilOp( - PP_Resource context_id, GLenum fail, GLenum zfail, GLenum zpass) { - GetGLES(context_id)->StencilOp(fail, zfail, zpass); -} - -void StencilOpSeparate( - PP_Resource context_id, GLenum face, GLenum fail, GLenum zfail, - GLenum zpass) { - GetGLES(context_id)->StencilOpSeparate(face, fail, zfail, zpass); -} - -void TexImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint internalformat, - GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, - const void* pixels) { - GetGLES( - context_id)->TexImage2D( - target, level, internalformat, width, height, border, format, type, - pixels); -} - -void TexParameterf( - PP_Resource context_id, GLenum target, GLenum pname, GLfloat param) { - GetGLES(context_id)->TexParameterf(target, pname, param); -} - -void TexParameterfv( - PP_Resource context_id, GLenum target, GLenum pname, - const GLfloat* params) { - GetGLES(context_id)->TexParameterfv(target, pname, params); -} - -void TexParameteri( - PP_Resource context_id, GLenum target, GLenum pname, GLint param) { - GetGLES(context_id)->TexParameteri(target, pname, param); -} - -void TexParameteriv( - PP_Resource context_id, GLenum target, GLenum pname, const GLint* params) { - GetGLES(context_id)->TexParameteriv(target, pname, params); -} - -void TexSubImage2D( - PP_Resource context_id, GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, - const void* pixels) { - GetGLES( - context_id)->TexSubImage2D( - target, level, xoffset, yoffset, width, height, format, type, - pixels); -} - -void Uniform1f(PP_Resource context_id, GLint location, GLfloat x) { - GetGLES(context_id)->Uniform1f(location, x); -} - -void Uniform1fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform1fv(location, count, v); -} - -void Uniform1i(PP_Resource context_id, GLint location, GLint x) { - GetGLES(context_id)->Uniform1i(location, x); -} - -void Uniform1iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform1iv(location, count, v); -} - -void Uniform2f(PP_Resource context_id, GLint location, GLfloat x, GLfloat y) { - GetGLES(context_id)->Uniform2f(location, x, y); -} - -void Uniform2fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform2fv(location, count, v); -} - -void Uniform2i(PP_Resource context_id, GLint location, GLint x, GLint y) { - GetGLES(context_id)->Uniform2i(location, x, y); -} - -void Uniform2iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform2iv(location, count, v); -} - -void Uniform3f( - PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z) { - GetGLES(context_id)->Uniform3f(location, x, y, z); -} - -void Uniform3fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform3fv(location, count, v); -} - -void Uniform3i( - PP_Resource context_id, GLint location, GLint x, GLint y, GLint z) { - GetGLES(context_id)->Uniform3i(location, x, y, z); -} - -void Uniform3iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform3iv(location, count, v); -} - -void Uniform4f( - PP_Resource context_id, GLint location, GLfloat x, GLfloat y, GLfloat z, - GLfloat w) { - GetGLES(context_id)->Uniform4f(location, x, y, z, w); -} - -void Uniform4fv( - PP_Resource context_id, GLint location, GLsizei count, const GLfloat* v) { - GetGLES(context_id)->Uniform4fv(location, count, v); -} - -void Uniform4i( - PP_Resource context_id, GLint location, GLint x, GLint y, GLint z, - GLint w) { - GetGLES(context_id)->Uniform4i(location, x, y, z, w); -} - -void Uniform4iv( - PP_Resource context_id, GLint location, GLsizei count, const GLint* v) { - GetGLES(context_id)->Uniform4iv(location, count, v); -} - -void UniformMatrix2fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix2fv(location, count, transpose, value); -} - -void UniformMatrix3fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix3fv(location, count, transpose, value); -} - -void UniformMatrix4fv( - PP_Resource context_id, GLint location, GLsizei count, GLboolean transpose, - const GLfloat* value) { - GetGLES(context_id)->UniformMatrix4fv(location, count, transpose, value); -} - -void UseProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->UseProgram(program); -} - -void ValidateProgram(PP_Resource context_id, GLuint program) { - GetGLES(context_id)->ValidateProgram(program); -} - -void VertexAttrib1f(PP_Resource context_id, GLuint indx, GLfloat x) { - GetGLES(context_id)->VertexAttrib1f(indx, x); -} - -void VertexAttrib1fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib1fv(indx, values); -} - -void VertexAttrib2f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y) { - GetGLES(context_id)->VertexAttrib2f(indx, x, y); -} - -void VertexAttrib2fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib2fv(indx, values); -} - -void VertexAttrib3f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z) { - GetGLES(context_id)->VertexAttrib3f(indx, x, y, z); -} - -void VertexAttrib3fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib3fv(indx, values); -} - -void VertexAttrib4f( - PP_Resource context_id, GLuint indx, GLfloat x, GLfloat y, GLfloat z, - GLfloat w) { - GetGLES(context_id)->VertexAttrib4f(indx, x, y, z, w); -} - -void VertexAttrib4fv( - PP_Resource context_id, GLuint indx, const GLfloat* values) { - GetGLES(context_id)->VertexAttrib4fv(indx, values); -} - -void VertexAttribPointer( - PP_Resource context_id, GLuint indx, GLint size, GLenum type, - GLboolean normalized, GLsizei stride, const void* ptr) { - GetGLES( - context_id)->VertexAttribPointer( - indx, size, type, normalized, stride, ptr); -} - -void Viewport( - PP_Resource context_id, GLint x, GLint y, GLsizei width, GLsizei height) { - GetGLES(context_id)->Viewport(x, y, width, height); -} - - -const struct PPB_OpenGLES2_Dev ppb_opengles2 = { - &ActiveTexture, - &AttachShader, - &BindAttribLocation, - &BindBuffer, - &BindFramebuffer, - &BindRenderbuffer, - &BindTexture, - &BlendColor, - &BlendEquation, - &BlendEquationSeparate, - &BlendFunc, - &BlendFuncSeparate, - &BufferData, - &BufferSubData, - &CheckFramebufferStatus, - &Clear, - &ClearColor, - &ClearDepthf, - &ClearStencil, - &ColorMask, - &CompileShader, - &CompressedTexImage2D, - &CompressedTexSubImage2D, - &CopyTexImage2D, - &CopyTexSubImage2D, - &CreateProgram, - &CreateShader, - &CullFace, - &DeleteBuffers, - &DeleteFramebuffers, - &DeleteProgram, - &DeleteRenderbuffers, - &DeleteShader, - &DeleteTextures, - &DepthFunc, - &DepthMask, - &DepthRangef, - &DetachShader, - &Disable, - &DisableVertexAttribArray, - &DrawArrays, - &DrawElements, - &Enable, - &EnableVertexAttribArray, - &Finish, - &Flush, - &FramebufferRenderbuffer, - &FramebufferTexture2D, - &FrontFace, - &GenBuffers, - &GenerateMipmap, - &GenFramebuffers, - &GenRenderbuffers, - &GenTextures, - &GetActiveAttrib, - &GetActiveUniform, - &GetAttachedShaders, - &GetAttribLocation, - &GetBooleanv, - &GetBufferParameteriv, - &GetError, - &GetFloatv, - &GetFramebufferAttachmentParameteriv, - &GetIntegerv, - &GetProgramiv, - &GetProgramInfoLog, - &GetRenderbufferParameteriv, - &GetShaderiv, - &GetShaderInfoLog, - &GetShaderPrecisionFormat, - &GetShaderSource, - &GetString, - &GetTexParameterfv, - &GetTexParameteriv, - &GetUniformfv, - &GetUniformiv, - &GetUniformLocation, - &GetVertexAttribfv, - &GetVertexAttribiv, - &GetVertexAttribPointerv, - &Hint, - &IsBuffer, - &IsEnabled, - &IsFramebuffer, - &IsProgram, - &IsRenderbuffer, - &IsShader, - &IsTexture, - &LineWidth, - &LinkProgram, - &PixelStorei, - &PolygonOffset, - &ReadPixels, - &ReleaseShaderCompiler, - &RenderbufferStorage, - &SampleCoverage, - &Scissor, - &ShaderBinary, - &ShaderSource, - &StencilFunc, - &StencilFuncSeparate, - &StencilMask, - &StencilMaskSeparate, - &StencilOp, - &StencilOpSeparate, - &TexImage2D, - &TexParameterf, - &TexParameterfv, - &TexParameteri, - &TexParameteriv, - &TexSubImage2D, - &Uniform1f, - &Uniform1fv, - &Uniform1i, - &Uniform1iv, - &Uniform2f, - &Uniform2fv, - &Uniform2i, - &Uniform2iv, - &Uniform3f, - &Uniform3fv, - &Uniform3i, - &Uniform3iv, - &Uniform4f, - &Uniform4fv, - &Uniform4i, - &Uniform4iv, - &UniformMatrix2fv, - &UniformMatrix3fv, - &UniformMatrix4fv, - &UseProgram, - &ValidateProgram, - &VertexAttrib1f, - &VertexAttrib1fv, - &VertexAttrib2f, - &VertexAttrib2fv, - &VertexAttrib3f, - &VertexAttrib3fv, - &VertexAttrib4f, - &VertexAttrib4fv, - &VertexAttribPointer, - &Viewport -}; - -} // namespace - const PPB_OpenGLES2_Dev* PPB_OpenGLES_Impl::GetInterface() { - return &ppb_opengles2; + return ::ppapi::OpenGLES2Impl::GetInterface(); } } // namespace ppapi |