| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| index 1c618c2dac9b30ead8996a2ec85fbdcaa75f1e15..34ae829ddb1f2b2389e480c85d6bf920f8682970 100644
|
| --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
|
| @@ -13181,19 +13181,10 @@
|
| return;
|
| }
|
| } else {
|
| - // TODO(dshwang): make GetLevelSize, ValidForTexture and ValidForTarget
|
| - // correct for GLImage also. crbug.com/549531
|
| if (!source_texture->GetLevelSize(source_texture->target(), 0,
|
| &source_width, &source_height, nullptr)) {
|
| LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM",
|
| "source texture has no level 0");
|
| - return;
|
| - }
|
| -
|
| - if (!source_texture->ValidForTexture(source_texture->target(), 0, x, y, 0,
|
| - width, height, 1)) {
|
| - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM",
|
| - "source texture bad dimensions.");
|
| return;
|
| }
|
|
|
| @@ -13210,6 +13201,12 @@
|
| GLenum source_internal_format = 0;
|
| source_texture->GetLevelType(source_texture->target(), 0, &source_type,
|
| &source_internal_format);
|
| + if (!source_texture->ValidForTexture(source_texture->target(), 0, x, y, 0,
|
| + width, height, 1)) {
|
| + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCopySubTextureCHROMIUM",
|
| + "source texture bad dimensions.");
|
| + return;
|
| + }
|
|
|
| GLenum dest_type = 0;
|
| GLenum dest_internal_format = 0;
|
| @@ -13513,13 +13510,6 @@
|
| return;
|
| }
|
|
|
| - if (!source_texture->ValidForTexture(source_texture->target(), 0, x, y, 0,
|
| - width, height, 1)) {
|
| - LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedCopySubTextureCHROMIUM",
|
| - "source texture bad dimensions.");
|
| - return;
|
| - }
|
| -
|
| // Check that this type of texture is allowed.
|
| if (!texture_manager()->ValidForTarget(source_texture->target(), 0,
|
| source_width, source_height, 1)) {
|
| @@ -13533,6 +13523,12 @@
|
| GLenum source_internal_format = 0;
|
| source_texture->GetLevelType(source_texture->target(), 0, &source_type,
|
| &source_internal_format);
|
| + if (!source_texture->ValidForTexture(source_texture->target(), 0, x, y, 0,
|
| + width, height, 1)) {
|
| + LOCAL_SET_GL_ERROR(GL_INVALID_VALUE, "glCompressedCopySubTextureCHROMIUM",
|
| + "source texture bad dimensions.");
|
| + return;
|
| + }
|
|
|
| GLenum dest_type = 0;
|
| GLenum dest_internal_format = 0;
|
|
|