| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <list> | 10 #include <list> |
| (...skipping 2507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2518 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 2518 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); |
| 2519 glClearStencil(0); | 2519 glClearStencil(0); |
| 2520 glStencilMaskSeparate(GL_FRONT, -1); | 2520 glStencilMaskSeparate(GL_FRONT, -1); |
| 2521 glStencilMaskSeparate(GL_BACK, -1); | 2521 glStencilMaskSeparate(GL_BACK, -1); |
| 2522 glClearDepth(0); | 2522 glClearDepth(0); |
| 2523 glDepthMask(GL_TRUE); | 2523 glDepthMask(GL_TRUE); |
| 2524 glDisable(GL_SCISSOR_TEST); | 2524 glDisable(GL_SCISSOR_TEST); |
| 2525 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); | 2525 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); |
| 2526 RestoreClearState(); | 2526 RestoreClearState(); |
| 2527 } | 2527 } |
| 2528 |
| 2529 // Destroy the offscreen resolved framebuffers. |
| 2530 if (offscreen_resolved_frame_buffer_.get()) |
| 2531 offscreen_resolved_frame_buffer_->Destroy(); |
| 2532 if (offscreen_resolved_color_texture_.get()) |
| 2533 offscreen_resolved_color_texture_->Destroy(); |
| 2534 offscreen_resolved_color_texture_.reset(); |
| 2535 offscreen_resolved_frame_buffer_.reset(); |
| 2536 |
| 2528 return true; | 2537 return true; |
| 2529 } | 2538 } |
| 2530 | 2539 |
| 2531 error::Error GLES2DecoderImpl::HandleResizeCHROMIUM( | 2540 error::Error GLES2DecoderImpl::HandleResizeCHROMIUM( |
| 2532 uint32 immediate_data_size, const gles2::ResizeCHROMIUM& c) { | 2541 uint32 immediate_data_size, const gles2::ResizeCHROMIUM& c) { |
| 2533 GLuint width = static_cast<GLuint>(c.width); | 2542 GLuint width = static_cast<GLuint>(c.width); |
| 2534 GLuint height = static_cast<GLuint>(c.height); | 2543 GLuint height = static_cast<GLuint>(c.height); |
| 2535 TRACE_EVENT2("gpu", "glResizeChromium", "width", width, "height", height); | 2544 TRACE_EVENT2("gpu", "glResizeChromium", "width", width, "height", height); |
| 2536 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(TOUCH_UI) | 2545 #if defined(OS_POSIX) && !defined(OS_MACOSX) && !defined(TOUCH_UI) |
| 2537 // Make sure that we are done drawing to the back buffer before resizing. | 2546 // Make sure that we are done drawing to the back buffer before resizing. |
| (...skipping 4000 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6538 | 6547 |
| 6539 offscreen_saved_frame_buffer_->AttachRenderTexture( | 6548 offscreen_saved_frame_buffer_->AttachRenderTexture( |
| 6540 offscreen_saved_color_texture_.get()); | 6549 offscreen_saved_color_texture_.get()); |
| 6541 if (offscreen_saved_frame_buffer_->CheckStatus() != | 6550 if (offscreen_saved_frame_buffer_->CheckStatus() != |
| 6542 GL_FRAMEBUFFER_COMPLETE) { | 6551 GL_FRAMEBUFFER_COMPLETE) { |
| 6543 LOG(ERROR) << "GLES2DecoderImpl::ResizeOffscreenFrameBuffer failed " | 6552 LOG(ERROR) << "GLES2DecoderImpl::ResizeOffscreenFrameBuffer failed " |
| 6544 << "because offscreen saved FBO was incomplete."; | 6553 << "because offscreen saved FBO was incomplete."; |
| 6545 return error::kLostContext; | 6554 return error::kLostContext; |
| 6546 } | 6555 } |
| 6547 | 6556 |
| 6548 // Destroy the offscreen resolved framebuffers. | |
| 6549 if (offscreen_resolved_frame_buffer_.get()) | |
| 6550 offscreen_resolved_frame_buffer_->Destroy(); | |
| 6551 if (offscreen_resolved_color_texture_.get()) | |
| 6552 offscreen_resolved_color_texture_->Destroy(); | |
| 6553 offscreen_resolved_color_texture_.reset(); | |
| 6554 offscreen_resolved_frame_buffer_.reset(); | |
| 6555 | |
| 6556 // Clear the offscreen color texture. | 6557 // Clear the offscreen color texture. |
| 6557 // TODO(piman): Is this still necessary? | 6558 // TODO(piman): Is this still necessary? |
| 6558 { | 6559 { |
| 6559 ScopedFrameBufferBinder binder(this, | 6560 ScopedFrameBufferBinder binder(this, |
| 6560 offscreen_saved_frame_buffer_->id()); | 6561 offscreen_saved_frame_buffer_->id()); |
| 6561 glClearColor(0, 0, 0, 0); | 6562 glClearColor(0, 0, 0, 0); |
| 6562 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); | 6563 glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); |
| 6563 glDisable(GL_SCISSOR_TEST); | 6564 glDisable(GL_SCISSOR_TEST); |
| 6564 glClear(GL_COLOR_BUFFER_BIT); | 6565 glClear(GL_COLOR_BUFFER_BIT); |
| 6565 RestoreClearState(); | 6566 RestoreClearState(); |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6828 return false; | 6829 return false; |
| 6829 } | 6830 } |
| 6830 | 6831 |
| 6831 // Include the auto-generated part of this file. We split this because it means | 6832 // Include the auto-generated part of this file. We split this because it means |
| 6832 // we can easily edit the non-auto generated parts right here in this file | 6833 // we can easily edit the non-auto generated parts right here in this file |
| 6833 // instead of having to edit some template or the code generator. | 6834 // instead of having to edit some template or the code generator. |
| 6834 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 6835 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 6835 | 6836 |
| 6836 } // namespace gles2 | 6837 } // namespace gles2 |
| 6837 } // namespace gpu | 6838 } // namespace gpu |
| OLD | NEW |