Chromium Code Reviews| Index: gpu/command_buffer/service/gles2_cmd_decoder.cc |
| =================================================================== |
| --- gpu/command_buffer/service/gles2_cmd_decoder.cc (revision 141671) |
| +++ gpu/command_buffer/service/gles2_cmd_decoder.cc (working copy) |
| @@ -1388,8 +1388,9 @@ |
| // 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. |
| @@ -1904,6 +1905,7 @@ |
| 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), |
| @@ -6364,7 +6366,14 @@ |
| return error::kNoError; |
| case GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM: |
|
greggman
2012/06/15 00:11:45
When you add a new type here you also need to add
Jeff Timanus
2012/06/18 14:50:24
I think a few settings are missing from GetHelper:
|
| unpack_premultiply_alpha_ = (param != 0); |
| + unpack_unpremultiply_alpha_ = |
|
greggman
2012/06/15 00:11:45
This logic seems strange to me.
If I go pre=1, u
Jeff Timanus
2012/06/18 14:50:24
Yeah, I mulled how to best handle this situation.
|
| + unpack_unpremultiply_alpha_ && !unpack_premultiply_alpha_; |
| return error::kNoError; |
| + case GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM: |
| + unpack_unpremultiply_alpha_ = (param != 0); |
| + unpack_premultiply_alpha_ = |
| + unpack_premultiply_alpha_ && !unpack_unpremultiply_alpha_; |
| + return error::kNoError; |
| default: |
| break; |
| } |
| @@ -8825,7 +8834,8 @@ |
| 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. |