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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 619843002: cc: Make separate interface for BeginFrame ipc from OutputSurface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 settings, client, proxy, rendering_stats_instrumentation, manager, id)); 218 settings, client, proxy, rendering_stats_instrumentation, manager, id));
219 } 219 }
220 220
221 LayerTreeHostImpl::LayerTreeHostImpl( 221 LayerTreeHostImpl::LayerTreeHostImpl(
222 const LayerTreeSettings& settings, 222 const LayerTreeSettings& settings,
223 LayerTreeHostImplClient* client, 223 LayerTreeHostImplClient* client,
224 Proxy* proxy, 224 Proxy* proxy,
225 RenderingStatsInstrumentation* rendering_stats_instrumentation, 225 RenderingStatsInstrumentation* rendering_stats_instrumentation,
226 SharedBitmapManager* manager, 226 SharedBitmapManager* manager,
227 int id) 227 int id)
228 : BeginFrameSourceMixIn(), 228 : client_(client),
229 client_(client),
230 proxy_(proxy), 229 proxy_(proxy),
231 use_gpu_rasterization_(false), 230 use_gpu_rasterization_(false),
232 input_handler_client_(NULL), 231 input_handler_client_(NULL),
233 did_lock_scrolling_layer_(false), 232 did_lock_scrolling_layer_(false),
234 should_bubble_scrolls_(false), 233 should_bubble_scrolls_(false),
235 wheel_scrolling_(false), 234 wheel_scrolling_(false),
236 scroll_affects_scroll_handler_(false), 235 scroll_affects_scroll_handler_(false),
237 scroll_layer_id_when_mouse_over_scrollbar_(0), 236 scroll_layer_id_when_mouse_over_scrollbar_(0),
238 tile_priorities_dirty_(false), 237 tile_priorities_dirty_(false),
239 root_layer_scroll_offset_delegate_(NULL), 238 root_layer_scroll_offset_delegate_(NULL),
(...skipping 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 resourceless_software_draw_ = resourceless_software_draw; 1390 resourceless_software_draw_ = resourceless_software_draw;
1392 } 1391 }
1393 1392
1394 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { 1393 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) {
1395 if (damage_rect.IsEmpty()) 1394 if (damage_rect.IsEmpty())
1396 return; 1395 return;
1397 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 1396 NotifySwapPromiseMonitorsOfSetNeedsRedraw();
1398 client_->SetNeedsRedrawRectOnImplThread(damage_rect); 1397 client_->SetNeedsRedrawRectOnImplThread(damage_rect);
1399 } 1398 }
1400 1399
1401 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) {
1402 CallOnBeginFrame(args);
1403 }
1404
1405 void LayerTreeHostImpl::DidSwapBuffers() { 1400 void LayerTreeHostImpl::DidSwapBuffers() {
1406 client_->DidSwapBuffersOnImplThread(); 1401 client_->DidSwapBuffersOnImplThread();
1407 } 1402 }
1408 1403
1409 void LayerTreeHostImpl::DidSwapBuffersComplete() { 1404 void LayerTreeHostImpl::DidSwapBuffersComplete() {
1410 client_->DidSwapBuffersCompleteOnImplThread(); 1405 client_->DidSwapBuffersCompleteOnImplThread();
1411 } 1406 }
1412 1407
1413 void LayerTreeHostImpl::ReclaimResources(const CompositorFrameAck* ack) { 1408 void LayerTreeHostImpl::ReclaimResources(const CompositorFrameAck* ack) {
1414 // TODO(piman): We may need to do some validation on this ack before 1409 // TODO(piman): We may need to do some validation on this ack before
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
1632 TRACE_EVENT_FLOW_STEP0( 1627 TRACE_EVENT_FLOW_STEP0(
1633 "input", 1628 "input",
1634 "LatencyInfo.Flow", 1629 "LatencyInfo.Flow",
1635 TRACE_ID_DONT_MANGLE(metadata.latency_info[i].trace_id), 1630 TRACE_ID_DONT_MANGLE(metadata.latency_info[i].trace_id),
1636 "SwapBuffers"); 1631 "SwapBuffers");
1637 } 1632 }
1638 renderer_->SwapBuffers(metadata); 1633 renderer_->SwapBuffers(metadata);
1639 return true; 1634 return true;
1640 } 1635 }
1641 1636
1642 void LayerTreeHostImpl::OnNeedsBeginFramesChange(bool enable) {
1643 if (output_surface_)
1644 output_surface_->SetNeedsBeginFrame(enable);
1645 else
1646 DCHECK(!enable);
1647 }
1648
1649 void LayerTreeHostImpl::WillBeginImplFrame(const BeginFrameArgs& args) { 1637 void LayerTreeHostImpl::WillBeginImplFrame(const BeginFrameArgs& args) {
1650 // Sample the frame time now. This time will be used for updating animations 1638 // Sample the frame time now. This time will be used for updating animations
1651 // when we draw. 1639 // when we draw.
1652 UpdateCurrentBeginFrameArgs(args); 1640 UpdateCurrentBeginFrameArgs(args);
1653 // Cache the begin impl frame interval 1641 // Cache the begin impl frame interval
1654 begin_impl_frame_interval_ = args.interval; 1642 begin_impl_frame_interval_ = args.interval;
1655 } 1643 }
1656 1644
1657 void LayerTreeHostImpl::UpdateInnerViewportContainerSize() { 1645 void LayerTreeHostImpl::UpdateInnerViewportContainerSize() {
1658 LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer(); 1646 LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer();
(...skipping 1482 matching lines...) Expand 10 before | Expand all | Expand 10 after
3141 // Try to use the current frame time to keep animations non-jittery. But if 3129 // Try to use the current frame time to keep animations non-jittery. But if
3142 // we're not in a frame (because this is during an input event or a delayed 3130 // we're not in a frame (because this is during an input event or a delayed
3143 // task), fall back to physical time. This should still be monotonic. 3131 // task), fall back to physical time. This should still be monotonic.
3144 if (current_begin_frame_args_.IsValid()) 3132 if (current_begin_frame_args_.IsValid())
3145 return current_begin_frame_args_; 3133 return current_begin_frame_args_;
3146 return BeginFrameArgs::Create(gfx::FrameTime::Now(), 3134 return BeginFrameArgs::Create(gfx::FrameTime::Now(),
3147 base::TimeTicks(), 3135 base::TimeTicks(),
3148 BeginFrameArgs::DefaultInterval()); 3136 BeginFrameArgs::DefaultInterval());
3149 } 3137 }
3150 3138
3151 void LayerTreeHostImpl::AsValueInto(base::debug::TracedValue* value) const {
3152 return AsValueWithFrameInto(NULL, value);
3153 }
3154
3155 scoped_refptr<base::debug::ConvertableToTraceFormat> 3139 scoped_refptr<base::debug::ConvertableToTraceFormat>
3156 LayerTreeHostImpl::AsValue() const { 3140 LayerTreeHostImpl::AsValue() const {
3157 return AsValueWithFrame(NULL); 3141 return AsValueWithFrame(NULL);
3158 } 3142 }
3159 3143
3160 scoped_refptr<base::debug::ConvertableToTraceFormat> 3144 scoped_refptr<base::debug::ConvertableToTraceFormat>
3161 LayerTreeHostImpl::AsValueWithFrame(FrameData* frame) const { 3145 LayerTreeHostImpl::AsValueWithFrame(FrameData* frame) const {
3162 scoped_refptr<base::debug::TracedValue> state = 3146 scoped_refptr<base::debug::TracedValue> state =
3163 new base::debug::TracedValue(); 3147 new base::debug::TracedValue();
3164 AsValueWithFrameInto(frame, state.get()); 3148 AsValueWithFrameInto(frame, state.get());
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
3383 } 3367 }
3384 3368
3385 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3369 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3386 std::vector<PictureLayerImpl*>::iterator it = 3370 std::vector<PictureLayerImpl*>::iterator it =
3387 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3371 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3388 DCHECK(it != picture_layers_.end()); 3372 DCHECK(it != picture_layers_.end());
3389 picture_layers_.erase(it); 3373 picture_layers_.erase(it);
3390 } 3374 }
3391 3375
3392 } // namespace cc 3376 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698