Chromium Code Reviews| Index: gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc |
| 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 ffb9370bca76f071a1a3619a96e9a858007bafda..49bba9b49de15d8c691c0c5a99253c2555b7b22e 100644 |
| --- a/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc |
| +++ b/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc |
| @@ -218,7 +218,6 @@ void DoCopyTexImage2D(const gpu::gles2::GLES2Decoder* decoder, |
| GLuint source_id, |
| GLuint dest_id, |
| GLint dest_level, |
| - GLenum dest_internal_format, |
| GLsizei width, |
| GLsizei height, |
| GLuint framebuffer) { |
| @@ -231,14 +230,8 @@ void DoCopyTexImage2D(const gpu::gles2::GLES2Decoder* decoder, |
| glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); |
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); |
| glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); |
| - glCopyTexImage2D(GL_TEXTURE_2D, |
| - dest_level, |
| - dest_internal_format, |
| - 0 /* x */, |
| - 0 /* y */, |
| - width, |
| - height, |
| - 0 /* border */); |
| + glCopyTexSubImage2D(GL_TEXTURE_2D, dest_level, 0 /* xoffset */, |
| + 0 /* yoffset */, 0 /* x */, 0 /* y */, width, height); |
| } |
| decoder->RestoreTextureState(source_id); |
| @@ -332,16 +325,15 @@ void CopyTextureCHROMIUMResourceManager::DoCopyTexture( |
| bool source_format_contain_superset_of_dest_format = |
| source_internal_format == dest_internal_format || |
| (source_internal_format == GL_RGBA && dest_internal_format == GL_RGB); |
| - // GL_TEXTURE_RECTANGLE_ARB on FBO is supported by OpenGL, not GLES2, |
| - // so restrict this to GL_TEXTURE_2D. |
|
dshwang
2014/11/20 15:23:07
ARB_texture_rectangle spec[1] don't mention about
|
| - if (source_target == GL_TEXTURE_2D && !flip_y && !premultiply_alpha_change && |
| + bool source_target_allowed = source_target == GL_TEXTURE_2D || |
| + source_target == GL_TEXTURE_RECTANGLE_ARB; |
| + if (source_target_allowed && !flip_y && !premultiply_alpha_change && |
| source_format_contain_superset_of_dest_format) { |
| DoCopyTexImage2D(decoder, |
| source_target, |
| source_id, |
| dest_id, |
| dest_level, |
| - dest_internal_format, |
| width, |
| height, |
| framebuffer_); |