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_); |