| 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 <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <cmath> | 10 #include <cmath> |
| (...skipping 859 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 870 } | 870 } |
| 871 | 871 |
| 872 bool HasPendingQueries() const override; | 872 bool HasPendingQueries() const override; |
| 873 void ProcessPendingQueries(bool did_finish) override; | 873 void ProcessPendingQueries(bool did_finish) override; |
| 874 | 874 |
| 875 bool HasMoreIdleWork() const override; | 875 bool HasMoreIdleWork() const override; |
| 876 void PerformIdleWork() override; | 876 void PerformIdleWork() override; |
| 877 | 877 |
| 878 void WaitForReadPixels(base::Closure callback) override; | 878 void WaitForReadPixels(base::Closure callback) override; |
| 879 | 879 |
| 880 void SetResizeCallback( | |
| 881 const base::Callback<void(gfx::Size, float)>& callback) override; | |
| 882 | |
| 883 Logger* GetLogger() override; | 880 Logger* GetLogger() override; |
| 884 | 881 |
| 885 void BeginDecoding() override; | 882 void BeginDecoding() override; |
| 886 void EndDecoding() override; | 883 void EndDecoding() override; |
| 887 | 884 |
| 888 ErrorState* GetErrorState() override; | 885 ErrorState* GetErrorState() override; |
| 889 const ContextState* GetContextState() override { return &state_; } | 886 const ContextState* GetContextState() override { return &state_; } |
| 890 | 887 |
| 891 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override; | 888 void SetShaderCacheCallback(const ShaderCacheCallback& callback) override; |
| 892 void SetWaitSyncPointCallback(const WaitSyncPointCallback& callback) override; | 889 void SetWaitSyncPointCallback(const WaitSyncPointCallback& callback) override; |
| (...skipping 1294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2187 scoped_ptr<BackFramebuffer> offscreen_resolved_frame_buffer_; | 2184 scoped_ptr<BackFramebuffer> offscreen_resolved_frame_buffer_; |
| 2188 scoped_ptr<BackTexture> offscreen_resolved_color_texture_; | 2185 scoped_ptr<BackTexture> offscreen_resolved_color_texture_; |
| 2189 GLenum offscreen_saved_color_format_; | 2186 GLenum offscreen_saved_color_format_; |
| 2190 | 2187 |
| 2191 scoped_ptr<QueryManager> query_manager_; | 2188 scoped_ptr<QueryManager> query_manager_; |
| 2192 | 2189 |
| 2193 scoped_ptr<VertexArrayManager> vertex_array_manager_; | 2190 scoped_ptr<VertexArrayManager> vertex_array_manager_; |
| 2194 | 2191 |
| 2195 scoped_ptr<ImageManager> image_manager_; | 2192 scoped_ptr<ImageManager> image_manager_; |
| 2196 | 2193 |
| 2197 base::Callback<void(gfx::Size, float)> resize_callback_; | |
| 2198 | |
| 2199 WaitSyncPointCallback wait_sync_point_callback_; | 2194 WaitSyncPointCallback wait_sync_point_callback_; |
| 2200 FenceSyncReleaseCallback fence_sync_release_callback_; | 2195 FenceSyncReleaseCallback fence_sync_release_callback_; |
| 2201 WaitFenceSyncCallback wait_fence_sync_callback_; | 2196 WaitFenceSyncCallback wait_fence_sync_callback_; |
| 2202 | 2197 |
| 2203 ShaderCacheCallback shader_cache_callback_; | 2198 ShaderCacheCallback shader_cache_callback_; |
| 2204 | 2199 |
| 2205 // The format of the back buffer_ | 2200 // The format of the back buffer_ |
| 2206 GLenum back_buffer_color_format_; | 2201 GLenum back_buffer_color_format_; |
| 2207 bool back_buffer_has_depth_; | 2202 bool back_buffer_has_depth_; |
| 2208 bool back_buffer_has_stencil_; | 2203 bool back_buffer_has_stencil_; |
| (...skipping 1919 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4128 "UpdateParentTextureInfo", | 4123 "UpdateParentTextureInfo", |
| 4129 GetErrorState(), | 4124 GetErrorState(), |
| 4130 offscreen_saved_color_texture_info_.get(), | 4125 offscreen_saved_color_texture_info_.get(), |
| 4131 GL_TEXTURE_WRAP_T, | 4126 GL_TEXTURE_WRAP_T, |
| 4132 GL_CLAMP_TO_EDGE); | 4127 GL_CLAMP_TO_EDGE); |
| 4133 TextureRef* texture_ref = texture_manager()->GetTextureInfoForTarget( | 4128 TextureRef* texture_ref = texture_manager()->GetTextureInfoForTarget( |
| 4134 &state_, target); | 4129 &state_, target); |
| 4135 glBindTexture(target, texture_ref ? texture_ref->service_id() : 0); | 4130 glBindTexture(target, texture_ref ? texture_ref->service_id() : 0); |
| 4136 } | 4131 } |
| 4137 | 4132 |
| 4138 void GLES2DecoderImpl::SetResizeCallback( | |
| 4139 const base::Callback<void(gfx::Size, float)>& callback) { | |
| 4140 resize_callback_ = callback; | |
| 4141 } | |
| 4142 | |
| 4143 Logger* GLES2DecoderImpl::GetLogger() { | 4133 Logger* GLES2DecoderImpl::GetLogger() { |
| 4144 return &logger_; | 4134 return &logger_; |
| 4145 } | 4135 } |
| 4146 | 4136 |
| 4147 void GLES2DecoderImpl::BeginDecoding() { | 4137 void GLES2DecoderImpl::BeginDecoding() { |
| 4148 gpu_tracer_->BeginDecoding(); | 4138 gpu_tracer_->BeginDecoding(); |
| 4149 gpu_trace_commands_ = gpu_tracer_->IsTracing() && *gpu_decoder_category_; | 4139 gpu_trace_commands_ = gpu_tracer_->IsTracing() && *gpu_decoder_category_; |
| 4150 gpu_debug_commands_ = log_commands() || debug() || gpu_trace_commands_; | 4140 gpu_debug_commands_ = log_commands() || debug() || gpu_trace_commands_; |
| 4151 query_manager_->ProcessFrameBeginUpdates(); | 4141 query_manager_->ProcessFrameBeginUpdates(); |
| 4152 } | 4142 } |
| (...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4529 // Make sure that we are done drawing to the back buffer before resizing. | 4519 // Make sure that we are done drawing to the back buffer before resizing. |
| 4530 glFinish(); | 4520 glFinish(); |
| 4531 #endif | 4521 #endif |
| 4532 bool is_offscreen = !!offscreen_target_frame_buffer_.get(); | 4522 bool is_offscreen = !!offscreen_target_frame_buffer_.get(); |
| 4533 if (is_offscreen) { | 4523 if (is_offscreen) { |
| 4534 if (!ResizeOffscreenFrameBuffer(gfx::Size(width, height))) { | 4524 if (!ResizeOffscreenFrameBuffer(gfx::Size(width, height))) { |
| 4535 LOG(ERROR) << "GLES2DecoderImpl: Context lost because " | 4525 LOG(ERROR) << "GLES2DecoderImpl: Context lost because " |
| 4536 << "ResizeOffscreenFrameBuffer failed."; | 4526 << "ResizeOffscreenFrameBuffer failed."; |
| 4537 return error::kLostContext; | 4527 return error::kLostContext; |
| 4538 } | 4528 } |
| 4539 } | 4529 } else { |
| 4540 | 4530 if (!surface_->Resize(gfx::Size(width, height), scale_factor)) { |
| 4541 if (!resize_callback_.is_null()) { | 4531 LOG(ERROR) << "GLES2DecoderImpl: Context lost because resize failed."; |
| 4542 resize_callback_.Run(gfx::Size(width, height), scale_factor); | 4532 return error::kLostContext; |
| 4533 } |
| 4543 DCHECK(context_->IsCurrent(surface_.get())); | 4534 DCHECK(context_->IsCurrent(surface_.get())); |
| 4544 if (!context_->IsCurrent(surface_.get())) { | 4535 if (!context_->IsCurrent(surface_.get())) { |
| 4545 LOG(ERROR) << "GLES2DecoderImpl: Context lost because context no longer " | 4536 LOG(ERROR) << "GLES2DecoderImpl: Context lost because context no longer " |
| 4546 << "current after resize callback."; | 4537 << "current after resize callback."; |
| 4547 return error::kLostContext; | 4538 return error::kLostContext; |
| 4548 } | 4539 } |
| 4549 } | 4540 } |
| 4550 | 4541 |
| 4551 return error::kNoError; | 4542 return error::kNoError; |
| 4552 } | 4543 } |
| (...skipping 10427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14980 return error::kNoError; | 14971 return error::kNoError; |
| 14981 } | 14972 } |
| 14982 | 14973 |
| 14983 // Include the auto-generated part of this file. We split this because it means | 14974 // Include the auto-generated part of this file. We split this because it means |
| 14984 // we can easily edit the non-auto generated parts right here in this file | 14975 // we can easily edit the non-auto generated parts right here in this file |
| 14985 // instead of having to edit some template or the code generator. | 14976 // instead of having to edit some template or the code generator. |
| 14986 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 14977 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 14987 | 14978 |
| 14988 } // namespace gles2 | 14979 } // namespace gles2 |
| 14989 } // namespace gpu | 14980 } // namespace gpu |
| OLD | NEW |