summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gpu/GLES2/extensions/CHROMIUM/CHROMIUM_copy_texture.txt7
-rwxr-xr-xgpu/command_buffer/build_gles2_cmd_buffer.py4
-rw-r--r--gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h8
-rw-r--r--gpu/command_buffer/service/gl_utils.h1
-rw-r--r--gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc49
-rw-r--r--gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h5
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc28
-rw-r--r--gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h4
-rw-r--r--gpu/command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc58
-rw-r--r--third_party/khronos/GLES2/gl2ext.h3
-rw-r--r--webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.cc4
-rw-r--r--webkit/gpu/webgraphicscontext3d_in_process_command_buffer_impl.h4
-rw-r--r--webkit/gpu/webgraphicscontext3d_in_process_impl.cc4
-rw-r--r--webkit/gpu/webgraphicscontext3d_in_process_impl.h4
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: