| 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),
|
| @@ -3834,6 +3836,24 @@
|
| }
|
| }
|
| 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;
|
| @@ -6365,6 +6385,9 @@
|
| 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;
|
| }
|
| @@ -8825,7 +8848,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.
|
|
|