diff options
author | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-19 20:31:44 +0000 |
---|---|---|
committer | alokp@chromium.org <alokp@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-19 20:31:44 +0000 |
commit | bd78a645002a085fb762b61e618f66ffc220b9b0 (patch) | |
tree | 541c6ca629f9e2e5e06a280de0f4c2f583edc8c5 /ppapi | |
parent | 2850b3e32c7bf19f5a2a1f3eedef9332dfc73e52 (diff) | |
download | chromium_src-bd78a645002a085fb762b61e618f66ffc220b9b0.zip chromium_src-bd78a645002a085fb762b61e618f66ffc220b9b0.tar.gz chromium_src-bd78a645002a085fb762b61e618f66ffc220b9b0.tar.bz2 |
Binding Graphics3D with Instance and OpenGLES2 interface.
BUG=86370,78087
Review URL: http://codereview.chromium.org/7409003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93086 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi')
-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 |
10 files changed, 956 insertions, 893 deletions
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 |