| Index: android_webview/browser/scoped_app_gl_state_restore.cc
|
| diff --git a/android_webview/browser/scoped_app_gl_state_restore.cc b/android_webview/browser/scoped_app_gl_state_restore.cc
|
| index f72c1b4669c365d42b03f5862db98d580d6620ec..24e80f4a790b38a992d2be1a36974b6c44ed7919 100644
|
| --- a/android_webview/browser/scoped_app_gl_state_restore.cc
|
| +++ b/android_webview/browser/scoped_app_gl_state_restore.cc
|
| @@ -65,6 +65,7 @@ ScopedAppGLStateRestore::ScopedAppGLStateRestore(CallMode mode) : mode_(mode) {
|
| DCHECK_EQ(0, index_array_buffer_binding_);
|
| break;
|
| case MODE_DETACH_FROM_WINDOW:
|
| + case MODE_ON_TRIM:
|
| glGetBooleanv(GL_BLEND, &blend_enabled_);
|
| glGetIntegerv(GL_BLEND_SRC_RGB, &blend_src_rgb_);
|
| glGetIntegerv(GL_BLEND_SRC_ALPHA, &blend_src_alpha_);
|
| @@ -205,17 +206,23 @@ ScopedAppGLStateRestore::~ScopedAppGLStateRestore() {
|
| enable_sample_alpha_to_coverage_);
|
| GLEnableDisable(GL_SAMPLE_COVERAGE, enable_sample_coverage_);
|
|
|
| - if (mode_ == MODE_DETACH_FROM_WINDOW) {
|
| - GLEnableDisable(GL_BLEND, blend_enabled_);
|
| - glBlendFuncSeparate(
|
| - blend_src_rgb_, blend_dest_rgb_, blend_src_alpha_, blend_dest_alpha_);
|
| + switch(mode_) {
|
| + case MODE_DRAW:
|
| + // No-op.
|
| + break;
|
| + case MODE_DETACH_FROM_WINDOW:
|
| + case MODE_ON_TRIM:
|
| + GLEnableDisable(GL_BLEND, blend_enabled_);
|
| + glBlendFuncSeparate(
|
| + blend_src_rgb_, blend_dest_rgb_, blend_src_alpha_, blend_dest_alpha_);
|
|
|
| - glViewport(viewport_[0], viewport_[1], viewport_[2], viewport_[3]);
|
| + glViewport(viewport_[0], viewport_[1], viewport_[2], viewport_[3]);
|
|
|
| - GLEnableDisable(GL_SCISSOR_TEST, scissor_test_);
|
| + GLEnableDisable(GL_SCISSOR_TEST, scissor_test_);
|
|
|
| - glScissor(
|
| - scissor_box_[0], scissor_box_[1], scissor_box_[2], scissor_box_[3]);
|
| + glScissor(
|
| + scissor_box_[0], scissor_box_[1], scissor_box_[2], scissor_box_[3]);
|
| + break;
|
| }
|
|
|
| GLEnableDisable(GL_STENCIL_TEST, stencil_test_);
|
|
|