| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "gpu/command_buffer/service/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 #include <stdio.h> | 10 #include <stdio.h> |
| (...skipping 4823 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4834 // Added specifically for testing backbuffer_needs_clear_bits unittests. | 4834 // Added specifically for testing backbuffer_needs_clear_bits unittests. |
| 4835 uint32_t GLES2DecoderImpl::GetAndClearBackbufferClearBitsForTest() { | 4835 uint32_t GLES2DecoderImpl::GetAndClearBackbufferClearBitsForTest() { |
| 4836 uint32_t clear_bits = backbuffer_needs_clear_bits_; | 4836 uint32_t clear_bits = backbuffer_needs_clear_bits_; |
| 4837 backbuffer_needs_clear_bits_ = 0; | 4837 backbuffer_needs_clear_bits_ = 0; |
| 4838 return clear_bits; | 4838 return clear_bits; |
| 4839 } | 4839 } |
| 4840 | 4840 |
| 4841 void GLES2DecoderImpl::OnFboChanged() const { | 4841 void GLES2DecoderImpl::OnFboChanged() const { |
| 4842 if (workarounds().restore_scissor_on_fbo_change) | 4842 if (workarounds().restore_scissor_on_fbo_change) |
| 4843 state_.fbo_binding_for_scissor_workaround_dirty = true; | 4843 state_.fbo_binding_for_scissor_workaround_dirty = true; |
| 4844 | |
| 4845 if (workarounds().gl_begin_gl_end_on_fbo_change_to_backbuffer) { | |
| 4846 GLint bound_fbo_unsigned = -1; | |
| 4847 glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &bound_fbo_unsigned); | |
| 4848 GLuint bound_fbo = static_cast<GLuint>(bound_fbo_unsigned); | |
| 4849 if (surface_ && surface_->GetBackingFrameBufferObject() == bound_fbo) | |
| 4850 surface_->NotifyWasBound(); | |
| 4851 } | |
| 4852 } | 4844 } |
| 4853 | 4845 |
| 4854 // Called after the FBO is checked for completeness. | 4846 // Called after the FBO is checked for completeness. |
| 4855 void GLES2DecoderImpl::OnUseFramebuffer() const { | 4847 void GLES2DecoderImpl::OnUseFramebuffer() const { |
| 4856 if (state_.fbo_binding_for_scissor_workaround_dirty) { | 4848 if (state_.fbo_binding_for_scissor_workaround_dirty) { |
| 4857 state_.fbo_binding_for_scissor_workaround_dirty = false; | 4849 state_.fbo_binding_for_scissor_workaround_dirty = false; |
| 4858 // The driver forgets the correct scissor when modifying the FBO binding. | 4850 // The driver forgets the correct scissor when modifying the FBO binding. |
| 4859 glScissor(state_.scissor_x, | 4851 glScissor(state_.scissor_x, |
| 4860 state_.scissor_y, | 4852 state_.scissor_y, |
| 4861 state_.scissor_width, | 4853 state_.scissor_width, |
| (...skipping 11495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 16357 } | 16349 } |
| 16358 | 16350 |
| 16359 // Include the auto-generated part of this file. We split this because it means | 16351 // Include the auto-generated part of this file. We split this because it means |
| 16360 // we can easily edit the non-auto generated parts right here in this file | 16352 // we can easily edit the non-auto generated parts right here in this file |
| 16361 // instead of having to edit some template or the code generator. | 16353 // instead of having to edit some template or the code generator. |
| 16362 #include "base/macros.h" | 16354 #include "base/macros.h" |
| 16363 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 16355 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 16364 | 16356 |
| 16365 } // namespace gles2 | 16357 } // namespace gles2 |
| 16366 } // namespace gpu | 16358 } // namespace gpu |
| OLD | NEW |