| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "android_webview/browser/scoped_app_gl_state_restore.h" | 5 #include "android_webview/browser/scoped_app_gl_state_restore.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
| 9 #include "ui/gl/gl_context.h" | 9 #include "ui/gl/gl_context.h" |
| 10 #include "ui/gl/gl_surface_stub.h" | 10 #include "ui/gl/gl_surface_stub.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 MakeAppContextCurrent(); | 57 MakeAppContextCurrent(); |
| 58 | 58 |
| 59 glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &vertex_array_buffer_binding_); | 59 glGetIntegerv(GL_ARRAY_BUFFER_BINDING, &vertex_array_buffer_binding_); |
| 60 glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &index_array_buffer_binding_); | 60 glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &index_array_buffer_binding_); |
| 61 | 61 |
| 62 switch(mode_) { | 62 switch(mode_) { |
| 63 case MODE_DRAW: | 63 case MODE_DRAW: |
| 64 DCHECK_EQ(0, vertex_array_buffer_binding_); | 64 DCHECK_EQ(0, vertex_array_buffer_binding_); |
| 65 DCHECK_EQ(0, index_array_buffer_binding_); | 65 DCHECK_EQ(0, index_array_buffer_binding_); |
| 66 break; | 66 break; |
| 67 case MODE_DETACH_FROM_WINDOW: | 67 case MODE_RESOURCE_MANAGEMENT: |
| 68 glGetBooleanv(GL_BLEND, &blend_enabled_); | 68 glGetBooleanv(GL_BLEND, &blend_enabled_); |
| 69 glGetIntegerv(GL_BLEND_SRC_RGB, &blend_src_rgb_); | 69 glGetIntegerv(GL_BLEND_SRC_RGB, &blend_src_rgb_); |
| 70 glGetIntegerv(GL_BLEND_SRC_ALPHA, &blend_src_alpha_); | 70 glGetIntegerv(GL_BLEND_SRC_ALPHA, &blend_src_alpha_); |
| 71 glGetIntegerv(GL_BLEND_DST_RGB, &blend_dest_rgb_); | 71 glGetIntegerv(GL_BLEND_DST_RGB, &blend_dest_rgb_); |
| 72 glGetIntegerv(GL_BLEND_DST_ALPHA, &blend_dest_alpha_); | 72 glGetIntegerv(GL_BLEND_DST_ALPHA, &blend_dest_alpha_); |
| 73 glGetIntegerv(GL_VIEWPORT, viewport_); | 73 glGetIntegerv(GL_VIEWPORT, viewport_); |
| 74 glGetBooleanv(GL_SCISSOR_TEST, &scissor_test_); | 74 glGetBooleanv(GL_SCISSOR_TEST, &scissor_test_); |
| 75 glGetIntegerv(GL_SCISSOR_BOX, scissor_box_); | 75 glGetIntegerv(GL_SCISSOR_BOX, scissor_box_); |
| 76 break; | 76 break; |
| 77 } | 77 } |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 glLineWidth(line_width_); | 198 glLineWidth(line_width_); |
| 199 glPolygonOffset(polygon_offset_factor_, polygon_offset_units_); | 199 glPolygonOffset(polygon_offset_factor_, polygon_offset_units_); |
| 200 glSampleCoverage(sample_coverage_value_, sample_coverage_invert_); | 200 glSampleCoverage(sample_coverage_value_, sample_coverage_invert_); |
| 201 | 201 |
| 202 GLEnableDisable(GL_DITHER, enable_dither_); | 202 GLEnableDisable(GL_DITHER, enable_dither_); |
| 203 GLEnableDisable(GL_POLYGON_OFFSET_FILL, enable_polygon_offset_fill_); | 203 GLEnableDisable(GL_POLYGON_OFFSET_FILL, enable_polygon_offset_fill_); |
| 204 GLEnableDisable(GL_SAMPLE_ALPHA_TO_COVERAGE, | 204 GLEnableDisable(GL_SAMPLE_ALPHA_TO_COVERAGE, |
| 205 enable_sample_alpha_to_coverage_); | 205 enable_sample_alpha_to_coverage_); |
| 206 GLEnableDisable(GL_SAMPLE_COVERAGE, enable_sample_coverage_); | 206 GLEnableDisable(GL_SAMPLE_COVERAGE, enable_sample_coverage_); |
| 207 | 207 |
| 208 if (mode_ == MODE_DETACH_FROM_WINDOW) { | 208 switch(mode_) { |
| 209 GLEnableDisable(GL_BLEND, blend_enabled_); | 209 case MODE_DRAW: |
| 210 glBlendFuncSeparate( | 210 // No-op. |
| 211 blend_src_rgb_, blend_dest_rgb_, blend_src_alpha_, blend_dest_alpha_); | 211 break; |
| 212 case MODE_RESOURCE_MANAGEMENT: |
| 213 GLEnableDisable(GL_BLEND, blend_enabled_); |
| 214 glBlendFuncSeparate( |
| 215 blend_src_rgb_, blend_dest_rgb_, blend_src_alpha_, blend_dest_alpha_); |
| 212 | 216 |
| 213 glViewport(viewport_[0], viewport_[1], viewport_[2], viewport_[3]); | 217 glViewport(viewport_[0], viewport_[1], viewport_[2], viewport_[3]); |
| 214 | 218 |
| 215 GLEnableDisable(GL_SCISSOR_TEST, scissor_test_); | 219 GLEnableDisable(GL_SCISSOR_TEST, scissor_test_); |
| 216 | 220 |
| 217 glScissor( | 221 glScissor( |
| 218 scissor_box_[0], scissor_box_[1], scissor_box_[2], scissor_box_[3]); | 222 scissor_box_[0], scissor_box_[1], scissor_box_[2], scissor_box_[3]); |
| 223 break; |
| 219 } | 224 } |
| 220 | 225 |
| 221 GLEnableDisable(GL_STENCIL_TEST, stencil_test_); | 226 GLEnableDisable(GL_STENCIL_TEST, stencil_test_); |
| 222 glStencilFunc(stencil_func_, stencil_mask_, stencil_ref_); | 227 glStencilFunc(stencil_func_, stencil_mask_, stencil_ref_); |
| 223 } | 228 } |
| 224 | 229 |
| 225 } // namespace android_webview | 230 } // namespace android_webview |
| OLD | NEW |