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

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

Issue 23922006: Plumb PinchVirtualViewport layers into CC. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rename function, remove clip layer. 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 | Annotate | Revision Log
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_impl.h" 5 #include "cc/trees/layer_tree_impl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "cc/animation/keyframed_animation_curve.h" 8 #include "cc/animation/keyframed_animation_curve.h"
9 #include "cc/animation/scrollbar_animation_controller.h" 9 #include "cc/animation/scrollbar_animation_controller.h"
10 #include "cc/debug/traced_value.h" 10 #include "cc/debug/traced_value.h"
11 #include "cc/layers/heads_up_display_layer_impl.h" 11 #include "cc/layers/heads_up_display_layer_impl.h"
12 #include "cc/layers/render_surface_impl.h" 12 #include "cc/layers/render_surface_impl.h"
13 #include "cc/layers/scrollbar_layer_impl_base.h" 13 #include "cc/layers/scrollbar_layer_impl_base.h"
14 #include "cc/trees/layer_tree_host_common.h" 14 #include "cc/trees/layer_tree_host_common.h"
15 #include "cc/trees/layer_tree_host_impl.h" 15 #include "cc/trees/layer_tree_host_impl.h"
16 #include "ui/gfx/size_conversions.h" 16 #include "ui/gfx/size_conversions.h"
17 #include "ui/gfx/vector2d_conversions.h" 17 #include "ui/gfx/vector2d_conversions.h"
18 18
19 namespace cc { 19 namespace cc {
20 20
21 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 21 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl)
22 : layer_tree_host_impl_(layer_tree_host_impl), 22 : layer_tree_host_impl_(layer_tree_host_impl),
23 source_frame_number_(-1), 23 source_frame_number_(-1),
24 hud_layer_(0), 24 hud_layer_(0),
25 root_scroll_layer_(NULL), 25 root_scroll_layer_(NULL),
26 currently_scrolling_layer_(NULL), 26 currently_scrolling_layer_(NULL),
27 root_layer_scroll_offset_delegate_(NULL), 27 root_layer_scroll_offset_delegate_(NULL),
28 background_color_(0), 28 background_color_(0),
29 has_transparent_background_(false), 29 has_transparent_background_(false),
30 page_scale_layer_(NULL),
31 inner_viewport_scroll_layer_(NULL),
32 outer_viewport_scroll_layer_(NULL),
30 page_scale_factor_(1), 33 page_scale_factor_(1),
31 page_scale_delta_(1), 34 page_scale_delta_(1),
32 sent_page_scale_delta_(1), 35 sent_page_scale_delta_(1),
33 min_page_scale_factor_(0), 36 min_page_scale_factor_(0),
34 max_page_scale_factor_(0), 37 max_page_scale_factor_(0),
35 scrolling_layer_id_from_previous_tree_(0), 38 scrolling_layer_id_from_previous_tree_(0),
36 contents_textures_purged_(false), 39 contents_textures_purged_(false),
37 viewport_size_invalid_(false), 40 viewport_size_invalid_(false),
38 needs_update_draw_properties_(true), 41 needs_update_draw_properties_(true),
39 needs_full_tree_sync_(true) { 42 needs_full_tree_sync_(true) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); 111 DCHECK_EQ(ui_resource_request_queue_.size(), 0u);
109 112
110 target_tree->SetLatencyInfo(latency_info_); 113 target_tree->SetLatencyInfo(latency_info_);
111 latency_info_.Clear(); 114 latency_info_.Clear();
112 target_tree->SetPageScaleFactorAndLimits( 115 target_tree->SetPageScaleFactorAndLimits(
113 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); 116 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor());
114 target_tree->SetPageScaleDelta( 117 target_tree->SetPageScaleDelta(
115 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); 118 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta());
116 target_tree->set_sent_page_scale_delta(1); 119 target_tree->set_sent_page_scale_delta(1);
117 120
121 if (settings().use_pinch_virtual_viewport)
enne (OOO) 2013/09/11 20:13:03 style nit: {}
wjmaclean 2013/09/12 18:16:47 Done.
122 target_tree->SetPinchViewportLayerIds(page_scale_layer_->id(),
123 inner_viewport_scroll_layer_->id(),
124 outer_viewport_scroll_layer_->id());
118 // This should match the property synchronization in 125 // This should match the property synchronization in
119 // LayerTreeHost::finishCommitOnImplThread(). 126 // LayerTreeHost::finishCommitOnImplThread().
120 target_tree->set_source_frame_number(source_frame_number()); 127 target_tree->set_source_frame_number(source_frame_number());
121 target_tree->set_background_color(background_color()); 128 target_tree->set_background_color(background_color());
122 target_tree->set_has_transparent_background(has_transparent_background()); 129 target_tree->set_has_transparent_background(has_transparent_background());
123 130
124 if (ContentsTexturesPurged()) 131 if (ContentsTexturesPurged())
125 target_tree->SetContentsTexturesPurged(); 132 target_tree->SetContentsTexturesPurged();
126 else 133 else
127 target_tree->ResetContentsTexturesPurged(); 134 target_tree->ResetContentsTexturesPurged();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 257
251 void LayerTreeImpl::ApplyScrollDeltasSinceBeginFrame() { 258 void LayerTreeImpl::ApplyScrollDeltasSinceBeginFrame() {
252 DCHECK(IsPendingTree()); 259 DCHECK(IsPendingTree());
253 if (!root_layer()) 260 if (!root_layer())
254 return; 261 return;
255 262
256 LayerTreeHostCommon::CallFunctionForSubtree( 263 LayerTreeHostCommon::CallFunctionForSubtree(
257 root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginFrameTo)); 264 root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginFrameTo));
258 } 265 }
259 266
267 void LayerTreeImpl::SetPinchViewportLayerIds(
enne (OOO) 2013/09/11 20:13:03 Should this DCHECK that these exist? It seems like
wjmaclean 2013/09/12 18:16:47 Done. We need to check the validity of the layer
268 int page_scale_layer_id,
269 int inner_viewport_scroll_layer_id,
270 int outer_viewport_scroll_layer_id) {
271 page_scale_layer_ = FindPendingTreeLayerById(page_scale_layer_id);
272 inner_viewport_scroll_layer_ =
273 FindPendingTreeLayerById(inner_viewport_scroll_layer_id);
274 outer_viewport_scroll_layer_ =
275 FindPendingTreeLayerById(outer_viewport_scroll_layer_id);
276 }
277
260 // TODO(wjmaclean) This needs to go away, and be replaced with a single core 278 // TODO(wjmaclean) This needs to go away, and be replaced with a single core
261 // of login that works for both scrollbar layer types. This is already planned 279 // of login that works for both scrollbar layer types. This is already planned
262 // as part of the larger pinch-zoom re-factoring viewport. 280 // as part of the larger pinch-zoom re-factoring viewport.
263 void LayerTreeImpl::UpdateSolidColorScrollbars() { 281 void LayerTreeImpl::UpdateSolidColorScrollbars() {
264 DCHECK(settings().solid_color_scrollbars); 282 DCHECK(settings().solid_color_scrollbars);
265 283
266 LayerImpl* root_scroll = RootScrollLayer(); 284 LayerImpl* root_scroll = RootScrollLayer();
267 DCHECK(root_scroll); 285 DCHECK(root_scroll);
268 DCHECK(IsActiveTree()); 286 DCHECK(IsActiveTree());
269 287
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 if (!root_layer()) 327 if (!root_layer())
310 return; 328 return;
311 329
312 { 330 {
313 TRACE_EVENT2("cc", 331 TRACE_EVENT2("cc",
314 "LayerTreeImpl::UpdateDrawProperties", 332 "LayerTreeImpl::UpdateDrawProperties",
315 "IsActive", 333 "IsActive",
316 IsActiveTree(), 334 IsActiveTree(),
317 "SourceFrameNumber", 335 "SourceFrameNumber",
318 source_frame_number_); 336 source_frame_number_);
337 LayerImpl* page_scale_layer =
338 page_scale_layer_ ? page_scale_layer_ : RootContainerLayer();
319 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 339 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
320 root_layer(), 340 root_layer(),
321 DrawViewportSize(), 341 DrawViewportSize(),
322 layer_tree_host_impl_->DrawTransform(), 342 layer_tree_host_impl_->DrawTransform(),
323 device_scale_factor(), 343 device_scale_factor(),
324 total_page_scale_factor(), 344 total_page_scale_factor(),
325 root_scroll_layer_ ? root_scroll_layer_->parent() : NULL, 345 page_scale_layer,
326 MaxTextureSize(), 346 MaxTextureSize(),
327 settings().can_use_lcd_text, 347 settings().can_use_lcd_text,
328 settings().layer_transforms_should_scale_layer_contents, 348 settings().layer_transforms_should_scale_layer_contents,
329 &render_surface_layer_list_); 349 &render_surface_layer_list_);
330 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 350 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
331 } 351 }
332 352
333 DCHECK(!needs_update_draw_properties_) << 353 DCHECK(!needs_update_draw_properties_) <<
334 "CalcDrawProperties should not set_needs_update_draw_properties()"; 354 "CalcDrawProperties should not set_needs_update_draw_properties()";
335 } 355 }
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest() 687 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest()
668 const { 688 const {
669 // Only the active tree needs to know about layers with copy requests, as 689 // Only the active tree needs to know about layers with copy requests, as
670 // they are aborted if not serviced during draw. 690 // they are aborted if not serviced during draw.
671 DCHECK(IsActiveTree()); 691 DCHECK(IsActiveTree());
672 692
673 return layers_with_copy_output_request_; 693 return layers_with_copy_output_request_;
674 } 694 }
675 695
676 } // namespace cc 696 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698