diff options
14 files changed, 164 insertions, 19 deletions
diff --git a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt index 0b22f6b..57085b9 100644 --- a/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt +++ b/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt @@ -23,7 +23,12 @@ Overview glCopyTexImage2D command. A new function is exported, glCopyTextureCHROMIUM, that performs the same copy operation as glCopyTexImage2D, while respecting the pixel-storage modifiers - UNPACK_FLIP_Y_CHROMIUM and GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM. + UNPACK_FLIP_Y_CHROMIUM, GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM and + GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM. + + If GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM and + GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM are enabled. Then no alpha + processing occurs. This is the equivalent of having neither flag set. The extension also supports copying BGRA textures, which is not explicitly granted by EXT_texture_format_BGRA8888. diff --git a/gpu/command_buffer/build_gles2_cmd_buffer.py b/gpu/command_buffer/build_gles2_cmd_buffer.py index 9d14137..aec1984 100755 --- a/gpu/command_buffer/build_gles2_cmd_buffer.py +++ b/gpu/command_buffer/build_gles2_cmd_buffer.py @@ -200,6 +200,9 @@ _ENUM_LISTS = { 'GL_TEXTURE_BINDING_2D', 'GL_TEXTURE_BINDING_CUBE_MAP', 'GL_UNPACK_ALIGNMENT', + 'GL_UNPACK_FLIP_Y_CHROMIUM', + 'GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM', + 'GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM', 'GL_VIEWPORT', ], 'invalid': [ @@ -589,6 +592,7 @@ _ENUM_LISTS = { 'GL_UNPACK_ALIGNMENT', 'GL_UNPACK_FLIP_Y_CHROMIUM', 'GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM', + 'GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM', ], 'invalid': [ 'GL_PACK_SWAP_BYTES', diff --git a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h index 98f7f7e..35982fe 100644 --- a/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h +++ b/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h @@ -291,6 +291,7 @@ static GLES2Util::EnumToString enum_to_string_table[] = { { 0x8827, "GL_DRAW_BUFFER2_NV", }, { 0x9243, "GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM", }, { 0x8DF3, "GL_LOW_INT", }, + { 0x9242, "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM", }, { 0x8B53, "GL_INT_VEC2", }, { 0x0C02, "GL_READ_BUFFER_NV", }, { 0x9241, "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM", }, @@ -829,6 +830,11 @@ std::string GLES2Util::GetStringGLState(uint32 value) { { GL_TEXTURE_BINDING_2D, "GL_TEXTURE_BINDING_2D" }, { GL_TEXTURE_BINDING_CUBE_MAP, "GL_TEXTURE_BINDING_CUBE_MAP" }, { GL_UNPACK_ALIGNMENT, "GL_UNPACK_ALIGNMENT" }, + { GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM" }, + { GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, + "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM" }, + { GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, + "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM" }, { GL_VIEWPORT, "GL_VIEWPORT" }, }; return GLES2Util::GetQualifiedEnumString( @@ -893,6 +899,8 @@ std::string GLES2Util::GetStringPixelStore(uint32 value) { { GL_UNPACK_FLIP_Y_CHROMIUM, "GL_UNPACK_FLIP_Y_CHROMIUM" }, { GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM" }, + { GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, + "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM" }, }; return GLES2Util::GetQualifiedEnumString( string_table, arraysize(string_table), value); diff --git a/gpu/command_buffer/service/gl_utils.h b/gpu/command_buffer/service/gl_utils.h index f8f52ee..316c3bb 100644 --- a/gpu/command_buffer/service/gl_utils.h +++ b/gpu/command_buffer/service/gl_utils.h @@ -46,6 +46,7 @@ #define GL_UNPACK_FLIP_Y_CHROMIUM 0x9240 #define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241 +#define GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM 0x9242 #define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243 // GL_ANGLE_pack_reverse_row_order diff --git a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc index 80fe484..cdf2f30 100644 --- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc +++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc @@ -27,34 +27,52 @@ const GLfloat kTextureCoords[] = { 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f }; -const int kNumShaders = 5; +const int kNumShaders = 7; enum ShaderId { VERTEX_SHADER_POS_TEX, FRAGMENT_SHADER_TEX, FRAGMENT_SHADER_TEX_FLIP_Y, FRAGMENT_SHADER_TEX_PREMULTIPLY_ALPHA, - FRAGMENT_SHADER_TEX_PREMULTIPLY_ALPHA_FLIP_Y + FRAGMENT_SHADER_TEX_UNPREMULTIPLY_ALPHA, + FRAGMENT_SHADER_TEX_PREMULTIPLY_ALPHA_FLIP_Y, + FRAGMENT_SHADER_TEX_UNPREMULTIPLY_ALPHA_FLIP_Y }; enum ProgramId { PROGRAM_COPY_TEXTURE, PROGRAM_COPY_TEXTURE_FLIP_Y, PROGRAM_COPY_TEXTURE_PREMULTIPLY_ALPHA, - PROGRAM_COPY_TEXTURE_PREMULTIPLY_ALPHA_FLIPY + PROGRAM_COPY_TEXTURE_UNPREMULTIPLY_ALPHA, + PROGRAM_COPY_TEXTURE_PREMULTIPLY_ALPHA_FLIPY, + PROGRAM_COPY_TEXTURE_UNPREMULTIPLY_ALPHA_FLIPY }; // Returns the correct program to evaluate the copy operation for // the CHROMIUM_flipy and premultiply alpha pixel store settings. -ProgramId GetProgram(bool flip_y, bool premultiply_alpha) { +ProgramId GetProgram(bool flip_y, bool premultiply_alpha, + bool unpremultiply_alpha) { + // If both pre-multiply and unpremultiply are requested, then perform no + // alpha manipulation. + if (premultiply_alpha && unpremultiply_alpha) { + premultiply_alpha = false; + unpremultiply_alpha = false; + } + if (flip_y && premultiply_alpha) return PROGRAM_COPY_TEXTURE_PREMULTIPLY_ALPHA_FLIPY; + if (flip_y && unpremultiply_alpha) + return PROGRAM_COPY_TEXTURE_UNPREMULTIPLY_ALPHA_FLIPY; + if (flip_y) return PROGRAM_COPY_TEXTURE_FLIP_Y; if (premultiply_alpha) return PROGRAM_COPY_TEXTURE_PREMULTIPLY_ALPHA; + if (unpremultiply_alpha) + return PROGRAM_COPY_TEXTURE_UNPREMULTIPLY_ALPHA; + return PROGRAM_COPY_TEXTURE; } @@ -91,6 +109,15 @@ const char* GetShaderSource(ShaderId shader) { gl_FragColor = texture2D(u_texSampler, v_uv.st); gl_FragColor.rgb *= gl_FragColor.a; }); + case FRAGMENT_SHADER_TEX_UNPREMULTIPLY_ALPHA: + return SHADER( + uniform sampler2D u_texSampler; + varying vec2 v_uv; + void main(void) { + gl_FragColor = texture2D(u_texSampler, v_uv.st); + if (gl_FragColor.a > 0.0) + gl_FragColor.rgb /= gl_FragColor.a; + }); case FRAGMENT_SHADER_TEX_PREMULTIPLY_ALPHA_FLIP_Y: return SHADER( uniform sampler2D u_texSampler; @@ -99,6 +126,15 @@ const char* GetShaderSource(ShaderId shader) { gl_FragColor = texture2D(u_texSampler, vec2(v_uv.s, 1.0 - v_uv.t)); gl_FragColor.rgb *= gl_FragColor.a; }); + case FRAGMENT_SHADER_TEX_UNPREMULTIPLY_ALPHA_FLIP_Y: + return SHADER( + uniform sampler2D u_texSampler; + varying vec2 v_uv; + void main(void) { + gl_FragColor = texture2D(u_texSampler, vec2(v_uv.s, 1.0 - v_uv.t)); + if (gl_FragColor.a > 0.0) + gl_FragColor.rgb /= gl_FragColor.a; + }); default: return 0; } @@ -184,13 +220,14 @@ void CopyTextureCHROMIUMResourceManager::DoCopyTexture( GLuint dest_id, GLint level, bool flip_y, - bool premultiply_alpha) { + bool premultiply_alpha, + bool unpremultiply_alpha) { if (!initialized_) { DLOG(ERROR) << "CopyTextureCHROMIUM: Uninitialized manager."; return; } - GLuint program = GetProgram(flip_y, premultiply_alpha); + GLuint program = GetProgram(flip_y, premultiply_alpha, unpremultiply_alpha); glUseProgram(programs_[program]); #ifndef NDEBUG diff --git a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h index d207fca..933bf65 100644 --- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h +++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h @@ -18,7 +18,8 @@ class CopyTextureCHROMIUMResourceManager { void Destroy(); void DoCopyTexture(GLenum target, GLuint source_id, GLuint dest_id, - GLint level, bool flip_y, bool premultiply_alpha); + GLint level, bool flip_y, bool premultiply_alpha, + bool unpremultiply_alpha); // The attributes used during invocation of the extension. static const GLuint kVertexPositionAttrib = 0; @@ -27,7 +28,7 @@ class CopyTextureCHROMIUMResourceManager { private: bool initialized_; - static const int kNumPrograms = 4; + static const int kNumPrograms = 6; GLuint programs_[kNumPrograms]; GLuint buffer_ids_[2]; GLuint framebuffer_; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 091b96b..b40198e 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -1389,8 +1389,9 @@ class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>, // unpack flip y as last set by glPixelStorei bool unpack_flip_y_; - // unpack premultiply alpha as last set by glPixelStorei + // unpack (un)premultiply alpha as last set by glPixelStorei bool unpack_premultiply_alpha_; + bool unpack_unpremultiply_alpha_; // The currently bound array buffer. If this is 0 it is illegal to call // glVertexAttribPointer. @@ -1905,6 +1906,7 @@ GLES2DecoderImpl::GLES2DecoderImpl(ContextGroup* group) unpack_alignment_(4), unpack_flip_y_(false), unpack_premultiply_alpha_(false), + unpack_unpremultiply_alpha_(false), attrib_0_buffer_id_(0), attrib_0_buffer_matches_value_(true), attrib_0_size_(0), @@ -3838,6 +3840,24 @@ bool GLES2DecoderImpl::GetHelper( } } return true; + case GL_UNPACK_FLIP_Y_CHROMIUM: + *num_written = 1; + if (params) { + params[0] = unpack_flip_y_; + } + return true; + case GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM: + *num_written = 1; + if (params) { + params[0] = unpack_premultiply_alpha_; + } + return true; + case GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM: + *num_written = 1; + if (params) { + params[0] = unpack_unpremultiply_alpha_; + } + return true; default: *num_written = util_.GLGetNumValuesReturned(pname); return false; @@ -6369,6 +6389,9 @@ error::Error GLES2DecoderImpl::HandlePixelStorei( case GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM: unpack_premultiply_alpha_ = (param != 0); return error::kNoError; + case GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM: + unpack_unpremultiply_alpha_ = (param != 0); + return error::kNoError; default: break; } @@ -8829,7 +8852,8 @@ void GLES2DecoderImpl::DoCopyTextureCHROMIUM( copy_texture_CHROMIUM_->DoCopyTexture(target, source_info->service_id(), dest_info->service_id(), level, unpack_flip_y_, - unpack_premultiply_alpha_); + unpack_premultiply_alpha_, + unpack_unpremultiply_alpha_); glViewport(viewport_x_, viewport_y_, viewport_width_, viewport_height_); // Restore all of the state touched by the extension. diff --git a/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h b/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h index bc19e4f..79f4e57 100644 --- a/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h +++ b/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h @@ -202,6 +202,9 @@ static GLenum valid_g_l_state_table[] = { GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_CUBE_MAP, GL_UNPACK_ALIGNMENT, + GL_UNPACK_FLIP_Y_CHROMIUM, + GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, + GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, GL_VIEWPORT, }; @@ -241,6 +244,7 @@ static GLenum valid_pixel_store_table[] = { GL_UNPACK_ALIGNMENT, GL_UNPACK_FLIP_Y_CHROMIUM, GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM, + GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, }; static GLint valid_pixel_store_alignment_table[] = { diff --git a/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc b/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc index 39cfe47..bd53e51 100644 --- a/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc +++ b/gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc @@ -116,6 +116,29 @@ TEST_F(GLCopyTextureCHROMIUMTest, PremultiplyAlpha) { EXPECT_TRUE(GL_NO_ERROR == glGetError()); } +// Test that the extension respects the GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM +// storage setting. +TEST_F(GLCopyTextureCHROMIUMTest, UnpremultiplyAlpha) { + uint8 pixels[1 * 4] = { 16, 16, 16, 128 }; + + glBindTexture(GL_TEXTURE_2D, textures_[0]); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, + pixels); + + glPixelStorei(GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, GL_TRUE); + glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, GL_RGBA); + EXPECT_TRUE(GL_NO_ERROR == glGetError()); + + uint8 copied_pixels[1 * 4]; + glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, copied_pixels); + EXPECT_EQ(32u, copied_pixels[0]); + EXPECT_EQ(32u, copied_pixels[1]); + EXPECT_EQ(32u, copied_pixels[2]); + EXPECT_EQ(128u, copied_pixels[3]); + + EXPECT_TRUE(GL_NO_ERROR == glGetError()); +} + TEST_F(GLCopyTextureCHROMIUMTest, FlipYAndPremultiplyAlpha) { uint8 pixels[2][2][4]; for (int x = 0; x < 2; ++x) { @@ -151,6 +174,41 @@ TEST_F(GLCopyTextureCHROMIUMTest, FlipYAndPremultiplyAlpha) { EXPECT_TRUE(GL_NO_ERROR == glGetError()); } +TEST_F(GLCopyTextureCHROMIUMTest, FlipYAndUnpremultiplyAlpha) { + uint8 pixels[2][2][4]; + for (int x = 0; x < 2; ++x) { + for (int y = 0; y < 2; ++y) { + uint8 color = 16 * x + 16 * y; + pixels[y][x][0] = color; + pixels[y][x][1] = color; + pixels[y][x][2] = color; + pixels[y][x][3] = 128u; + } + } + + glBindTexture(GL_TEXTURE_2D, textures_[0]); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, + pixels); + + glPixelStorei(GL_UNPACK_FLIP_Y_CHROMIUM, GL_TRUE); + glPixelStorei(GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM, GL_TRUE); + glCopyTextureCHROMIUM(GL_TEXTURE_2D, textures_[0], textures_[1], 0, GL_RGBA); + EXPECT_TRUE(GL_NO_ERROR == glGetError()); + + uint8 copied_pixels[2][2][4]; + glReadPixels(0, 0, 2, 2, GL_RGBA, GL_UNSIGNED_BYTE, copied_pixels); + for (int x = 0; x < 2; ++x) { + for (int y = 0; y < 2; ++y) { + EXPECT_EQ(pixels[1-y][x][0] * 2, copied_pixels[y][x][0]); + EXPECT_EQ(pixels[1-y][x][1] * 2, copied_pixels[y][x][1]); + EXPECT_EQ(pixels[1-y][x][2] * 2, copied_pixels[y][x][2]); + EXPECT_EQ(pixels[1-y][x][3], copied_pixels[y][x][3]); + } + } + + EXPECT_TRUE(GL_NO_ERROR == glGetError()); +} + namespace { void glEnableDisable(GLint param, GLboolean value) { diff --git a/third_party/khronos/GLES2/gl2ext.h b/third_party/khronos/GLES2/gl2ext.h index b0a6d8f..e6a728c 100644 --- a/third_party/khronos/GLES2/gl2ext.h +++ b/third_party/khronos/GLES2/gl2ext.h @@ -1960,6 +1960,9 @@ typedef void (GL_APIENTRYP PFNGLTEXIMAGEIOSURFACE2DCHROMIUM) (GLenum target, GLs #ifndef GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM #define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241 #endif +#ifndef GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM +#define GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM 0x9242 +#endif #ifndef GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM #define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243 #endif diff --git a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc index a2a9d39..91a37a5 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc +++ b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc @@ -1621,8 +1621,8 @@ DELEGATE_TO_GL_3(getQueryivEXT, GetQueryivEXT, WGC3Denum, WGC3Denum, WGC3Dint*) DELEGATE_TO_GL_3(getQueryObjectuivEXT, GetQueryObjectuivEXT, WebGLId, WGC3Denum, WGC3Duint*) -DELEGATE_TO_GL_5(copyTextureCHROMIUM, CopyTextureCHROMIUM, WGC3Denum, - WebGLId, WebGLId, WGC3Dint, WGC3Denum) +DELEGATE_TO_GL_5(copyTextureCHROMIUM, CopyTextureCHROMIUM, WGC3Denum, WGC3Duint, + WGC3Duint, WGC3Dint, WGC3Denum) GrGLInterface* WebGraphicsContext3DInProcessCommandBufferImpl:: onCreateGrGLInterface() { diff --git a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h index 9bef4a9..0fc140a 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h +++ b/webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h @@ -475,8 +475,8 @@ class WebGraphicsContext3DInProcessCommandBufferImpl virtual void getQueryObjectuivEXT( WebGLId query, WGC3Denum pname, WGC3Duint* params); - virtual void copyTextureCHROMIUM(WGC3Denum target, WebGLId source_id, - WebGLId dest_id, WGC3Dint level, + virtual void copyTextureCHROMIUM(WGC3Denum target, WGC3Duint source_id, + WGC3Duint dest_id, WGC3Dint level, WGC3Denum internal_format); protected: diff --git a/webkit/gpu/webgraphicscontext3d_in_process_impl.cc b/webkit/gpu/webgraphicscontext3d_in_process_impl.cc index a6ccfb4..f37cd363 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_impl.cc +++ b/webkit/gpu/webgraphicscontext3d_in_process_impl.cc @@ -1672,8 +1672,8 @@ DELEGATE_TO_GL_3(getQueryObjectuivEXT, GetQueryObjectuivARB, WebGLId, WGC3Denum, WGC3Duint*) void WebGraphicsContext3DInProcessImpl::copyTextureCHROMIUM( - WGC3Denum, WebGLId, WebGLId, WGC3Dint, WGC3Denum) -{ + WGC3Denum, WGC3Duint, WGC3Duint, WGC3Dint, WGC3Denum) { + NOTIMPLEMENTED(); } GrGLInterface* WebGraphicsContext3DInProcessImpl::onCreateGrGLInterface() { diff --git a/webkit/gpu/webgraphicscontext3d_in_process_impl.h b/webkit/gpu/webgraphicscontext3d_in_process_impl.h index cc3dc25..3579d90 100644 --- a/webkit/gpu/webgraphicscontext3d_in_process_impl.h +++ b/webkit/gpu/webgraphicscontext3d_in_process_impl.h @@ -472,8 +472,8 @@ class WebGraphicsContext3DInProcessImpl : public WebGraphicsContext3D { virtual void getQueryObjectuivEXT( WebGLId query, WGC3Denum pname, WGC3Duint* params); - virtual void copyTextureCHROMIUM(WGC3Denum target, WebGLId source_id, - WebGLId dest_id, WGC3Dint level, + virtual void copyTextureCHROMIUM(WGC3Denum target, WGC3Duint source_id, + WGC3Duint dest_id, WGC3Dint level, WGC3Denum internal_format); protected: |