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

Side by Side Diff: cc/output/output_surface.cc

Issue 23503003: cc: Add readback and forced draw states to the Scheduler (Closed) Base URL: http://git.chromium.org/chromium/src.git@schedReorg3
Patch Set: Fix mac_rel failure by returning false from CanReadback when context lost Created 7 years, 3 months 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "cc/output/output_surface.h" 5 #include "cc/output/output_surface.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 begin_frame_pending_(false), 58 begin_frame_pending_(false),
59 client_(NULL), 59 client_(NULL),
60 check_for_retroactive_begin_frame_pending_(false) { 60 check_for_retroactive_begin_frame_pending_(false) {
61 } 61 }
62 62
63 OutputSurface::OutputSurface( 63 OutputSurface::OutputSurface(
64 scoped_refptr<ContextProvider> context_provider, 64 scoped_refptr<ContextProvider> context_provider,
65 scoped_ptr<cc::SoftwareOutputDevice> software_device) 65 scoped_ptr<cc::SoftwareOutputDevice> software_device)
66 : context_provider_(context_provider), 66 : context_provider_(context_provider),
67 software_device_(software_device.Pass()), 67 software_device_(software_device.Pass()),
68 context_is_lost_(false),
68 has_gl_discard_backbuffer_(false), 69 has_gl_discard_backbuffer_(false),
69 has_swap_buffers_complete_callback_(false), 70 has_swap_buffers_complete_callback_(false),
70 device_scale_factor_(-1), 71 device_scale_factor_(-1),
71 weak_ptr_factory_(this), 72 weak_ptr_factory_(this),
72 max_frames_pending_(0), 73 max_frames_pending_(0),
73 pending_swap_buffers_(0), 74 pending_swap_buffers_(0),
74 needs_begin_frame_(false), 75 needs_begin_frame_(false),
75 begin_frame_pending_(false), 76 begin_frame_pending_(false),
76 client_(NULL), 77 client_(NULL),
77 check_for_retroactive_begin_frame_pending_(false) { 78 check_for_retroactive_begin_frame_pending_(false) {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 client_->OnSwapBuffersComplete(ack); 210 client_->OnSwapBuffersComplete(ack);
210 if (frame_rate_controller_) 211 if (frame_rate_controller_)
211 frame_rate_controller_->DidSwapBuffersComplete(); 212 frame_rate_controller_->DidSwapBuffersComplete();
212 PostCheckForRetroactiveBeginFrame(); 213 PostCheckForRetroactiveBeginFrame();
213 } 214 }
214 215
215 void OutputSurface::DidLoseOutputSurface() { 216 void OutputSurface::DidLoseOutputSurface() {
216 TRACE_EVENT0("cc", "OutputSurface::DidLoseOutputSurface"); 217 TRACE_EVENT0("cc", "OutputSurface::DidLoseOutputSurface");
217 begin_frame_pending_ = false; 218 begin_frame_pending_ = false;
218 pending_swap_buffers_ = 0; 219 pending_swap_buffers_ = 0;
220 context_is_lost_ = true;
219 client_->DidLoseOutputSurface(); 221 client_->DidLoseOutputSurface();
220 } 222 }
221 223
222 void OutputSurface::SetExternalStencilTest(bool enabled) { 224 void OutputSurface::SetExternalStencilTest(bool enabled) {
223 client_->SetExternalStencilTest(enabled); 225 client_->SetExternalStencilTest(enabled);
224 } 226 }
225 227
226 void OutputSurface::SetExternalDrawConstraints(const gfx::Transform& transform, 228 void OutputSurface::SetExternalDrawConstraints(const gfx::Transform& transform,
227 gfx::Rect viewport, 229 gfx::Rect viewport,
228 gfx::Rect clip, 230 gfx::Rect clip,
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 "discard_backbuffer", discard_backbuffer); 400 "discard_backbuffer", discard_backbuffer);
399 // Just ignore the memory manager when it says to set the limit to zero 401 // Just ignore the memory manager when it says to set the limit to zero
400 // bytes. This will happen when the memory manager thinks that the renderer 402 // bytes. This will happen when the memory manager thinks that the renderer
401 // is not visible (which the renderer knows better). 403 // is not visible (which the renderer knows better).
402 if (policy.bytes_limit_when_visible) 404 if (policy.bytes_limit_when_visible)
403 client_->SetMemoryPolicy(policy); 405 client_->SetMemoryPolicy(policy);
404 client_->SetDiscardBackBufferWhenNotVisible(discard_backbuffer); 406 client_->SetDiscardBackBufferWhenNotVisible(discard_backbuffer);
405 } 407 }
406 408
407 } // namespace cc 409 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698