| 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 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 void RestoreState(const ContextState* prev_state) override; | 540 void RestoreState(const ContextState* prev_state) override; |
| 541 | 541 |
| 542 void RestoreActiveTexture() const override { state_.RestoreActiveTexture(); } | 542 void RestoreActiveTexture() const override { state_.RestoreActiveTexture(); } |
| 543 void RestoreAllTextureUnitBindings( | 543 void RestoreAllTextureUnitBindings( |
| 544 const ContextState* prev_state) const override { | 544 const ContextState* prev_state) const override { |
| 545 state_.RestoreAllTextureUnitBindings(prev_state); | 545 state_.RestoreAllTextureUnitBindings(prev_state); |
| 546 } | 546 } |
| 547 void RestoreActiveTextureUnitBinding(unsigned int target) const override { | 547 void RestoreActiveTextureUnitBinding(unsigned int target) const override { |
| 548 state_.RestoreActiveTextureUnitBinding(target); | 548 state_.RestoreActiveTextureUnitBinding(target); |
| 549 } | 549 } |
| 550 void RestoreBufferBinding(unsigned int target) const override { | |
| 551 state_.RestoreBufferBinding(target); | |
| 552 } | |
| 553 void RestoreBufferBindings() const override { | 550 void RestoreBufferBindings() const override { |
| 554 state_.RestoreBufferBindings(); | 551 state_.RestoreBufferBindings(); |
| 555 } | 552 } |
| 556 void RestoreGlobalState() const override { state_.RestoreGlobalState(NULL); } | 553 void RestoreGlobalState() const override { state_.RestoreGlobalState(NULL); } |
| 557 void RestoreProgramBindings() const override { | 554 void RestoreProgramBindings() const override { |
| 558 state_.RestoreProgramSettings(nullptr, false); | 555 state_.RestoreProgramSettings(nullptr, false); |
| 559 } | 556 } |
| 560 void RestoreTextureUnitBindings(unsigned unit) const override { | 557 void RestoreTextureUnitBindings(unsigned unit) const override { |
| 561 state_.RestoreTextureUnitBindings(unit, NULL); | 558 state_.RestoreTextureUnitBindings(unit, NULL); |
| 562 } | 559 } |
| 563 void RestoreVertexAttribArray(unsigned index) override { | 560 void RestoreVertexAttribArray(unsigned index) override { |
| 564 RestoreStateForAttrib(index, true); | 561 RestoreStateForAttrib(index, true); |
| 565 } | 562 } |
| 563 void RestoreBufferBinding(unsigned int target) override; |
| 566 void RestoreFramebufferBindings() const override; | 564 void RestoreFramebufferBindings() const override; |
| 567 void RestoreRenderbufferBindings() override; | 565 void RestoreRenderbufferBindings() override; |
| 568 void RestoreTextureState(unsigned service_id) const override; | 566 void RestoreTextureState(unsigned service_id) const override; |
| 569 | 567 |
| 570 void ClearAllAttributes() const override; | 568 void ClearAllAttributes() const override; |
| 571 void RestoreAllAttributes() const override; | 569 void RestoreAllAttributes() const override; |
| 572 | 570 |
| 573 QueryManager* GetQueryManager() override { return query_manager_.get(); } | 571 QueryManager* GetQueryManager() override { return query_manager_.get(); } |
| 574 TransformFeedbackManager* GetTransformFeedbackManager() override { | 572 TransformFeedbackManager* GetTransformFeedbackManager() override { |
| 575 return transform_feedback_manager_.get(); | 573 return transform_feedback_manager_.get(); |
| (...skipping 5017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5593 void GLES2DecoderImpl::RestoreState(const ContextState* prev_state) { | 5591 void GLES2DecoderImpl::RestoreState(const ContextState* prev_state) { |
| 5594 TRACE_EVENT1("gpu", "GLES2DecoderImpl::RestoreState", | 5592 TRACE_EVENT1("gpu", "GLES2DecoderImpl::RestoreState", |
| 5595 "context", logger_.GetLogPrefix()); | 5593 "context", logger_.GetLogPrefix()); |
| 5596 // Restore the Framebuffer first because of bugs in Intel drivers. | 5594 // Restore the Framebuffer first because of bugs in Intel drivers. |
| 5597 // Intel drivers incorrectly clip the viewport settings to | 5595 // Intel drivers incorrectly clip the viewport settings to |
| 5598 // the size of the current framebuffer object. | 5596 // the size of the current framebuffer object. |
| 5599 RestoreFramebufferBindings(); | 5597 RestoreFramebufferBindings(); |
| 5600 state_.RestoreState(prev_state); | 5598 state_.RestoreState(prev_state); |
| 5601 } | 5599 } |
| 5602 | 5600 |
| 5601 void GLES2DecoderImpl::RestoreBufferBinding(unsigned int target) { |
| 5602 if (target == GL_PIXEL_PACK_BUFFER) { |
| 5603 state_.UpdatePackParameters(); |
| 5604 } else if (target == GL_PIXEL_UNPACK_BUFFER) { |
| 5605 state_.UpdateUnpackParameters(); |
| 5606 } |
| 5607 Buffer* bound_buffer = |
| 5608 buffer_manager()->GetBufferInfoForTarget(&state_, target); |
| 5609 glBindBuffer(target, bound_buffer ? bound_buffer->service_id() : 0); |
| 5610 } |
| 5611 |
| 5603 void GLES2DecoderImpl::RestoreFramebufferBindings() const { | 5612 void GLES2DecoderImpl::RestoreFramebufferBindings() const { |
| 5604 GLuint service_id = | 5613 GLuint service_id = |
| 5605 framebuffer_state_.bound_draw_framebuffer.get() | 5614 framebuffer_state_.bound_draw_framebuffer.get() |
| 5606 ? framebuffer_state_.bound_draw_framebuffer->service_id() | 5615 ? framebuffer_state_.bound_draw_framebuffer->service_id() |
| 5607 : GetBackbufferServiceId(); | 5616 : GetBackbufferServiceId(); |
| 5608 if (!SupportsSeparateFramebufferBinds()) { | 5617 if (!SupportsSeparateFramebufferBinds()) { |
| 5609 glBindFramebufferEXT(GL_FRAMEBUFFER, service_id); | 5618 glBindFramebufferEXT(GL_FRAMEBUFFER, service_id); |
| 5610 } else { | 5619 } else { |
| 5611 glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER, service_id); | 5620 glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER, service_id); |
| 5612 service_id = framebuffer_state_.bound_read_framebuffer.get() | 5621 service_id = framebuffer_state_.bound_read_framebuffer.get() |
| (...skipping 13953 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 19566 } | 19575 } |
| 19567 | 19576 |
| 19568 // Include the auto-generated part of this file. We split this because it means | 19577 // Include the auto-generated part of this file. We split this because it means |
| 19569 // we can easily edit the non-auto generated parts right here in this file | 19578 // we can easily edit the non-auto generated parts right here in this file |
| 19570 // instead of having to edit some template or the code generator. | 19579 // instead of having to edit some template or the code generator. |
| 19571 #include "base/macros.h" | 19580 #include "base/macros.h" |
| 19572 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 19581 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 19573 | 19582 |
| 19574 } // namespace gles2 | 19583 } // namespace gles2 |
| 19575 } // namespace gpu | 19584 } // namespace gpu |
| OLD | NEW |