Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 1420503011: GLES2CmdDecoder should resize GLSurface using GLSurface::Resize (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.h ('k') | gpu/command_buffer/service/in_process_command_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698