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

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

Issue 23483044: Revert "Plumb PinchVirtualViewport layers into CC." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | content/renderer/gpu/render_widget_compositor.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/layer.h"
13 #include "cc/layers/render_surface_impl.h" 12 #include "cc/layers/render_surface_impl.h"
14 #include "cc/layers/scrollbar_layer_impl_base.h" 13 #include "cc/layers/scrollbar_layer_impl_base.h"
15 #include "cc/trees/layer_tree_host_common.h" 14 #include "cc/trees/layer_tree_host_common.h"
16 #include "cc/trees/layer_tree_host_impl.h" 15 #include "cc/trees/layer_tree_host_impl.h"
17 #include "ui/gfx/size_conversions.h" 16 #include "ui/gfx/size_conversions.h"
18 #include "ui/gfx/vector2d_conversions.h" 17 #include "ui/gfx/vector2d_conversions.h"
19 18
20 namespace cc { 19 namespace cc {
21 20
22 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl) 21 LayerTreeImpl::LayerTreeImpl(LayerTreeHostImpl* layer_tree_host_impl)
23 : layer_tree_host_impl_(layer_tree_host_impl), 22 : layer_tree_host_impl_(layer_tree_host_impl),
24 source_frame_number_(-1), 23 source_frame_number_(-1),
25 hud_layer_(0), 24 hud_layer_(0),
26 root_scroll_layer_(NULL), 25 root_scroll_layer_(NULL),
27 currently_scrolling_layer_(NULL), 26 currently_scrolling_layer_(NULL),
28 root_layer_scroll_offset_delegate_(NULL), 27 root_layer_scroll_offset_delegate_(NULL),
29 background_color_(0), 28 background_color_(0),
30 has_transparent_background_(false), 29 has_transparent_background_(false),
31 page_scale_layer_(NULL),
32 inner_viewport_scroll_layer_(NULL),
33 outer_viewport_scroll_layer_(NULL),
34 page_scale_factor_(1), 30 page_scale_factor_(1),
35 page_scale_delta_(1), 31 page_scale_delta_(1),
36 sent_page_scale_delta_(1), 32 sent_page_scale_delta_(1),
37 min_page_scale_factor_(0), 33 min_page_scale_factor_(0),
38 max_page_scale_factor_(0), 34 max_page_scale_factor_(0),
39 scrolling_layer_id_from_previous_tree_(0), 35 scrolling_layer_id_from_previous_tree_(0),
40 contents_textures_purged_(false), 36 contents_textures_purged_(false),
41 viewport_size_invalid_(false), 37 viewport_size_invalid_(false),
42 needs_update_draw_properties_(true), 38 needs_update_draw_properties_(true),
43 needs_full_tree_sync_(true) { 39 needs_full_tree_sync_(true) {
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 DCHECK_EQ(ui_resource_request_queue_.size(), 0u); 108 DCHECK_EQ(ui_resource_request_queue_.size(), 0u);
113 109
114 target_tree->SetLatencyInfo(latency_info_); 110 target_tree->SetLatencyInfo(latency_info_);
115 latency_info_.Clear(); 111 latency_info_.Clear();
116 target_tree->SetPageScaleFactorAndLimits( 112 target_tree->SetPageScaleFactorAndLimits(
117 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); 113 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor());
118 target_tree->SetPageScaleDelta( 114 target_tree->SetPageScaleDelta(
119 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); 115 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta());
120 target_tree->set_sent_page_scale_delta(1); 116 target_tree->set_sent_page_scale_delta(1);
121 117
122 if (settings().use_pinch_virtual_viewport) {
123 target_tree->SetViewportLayersFromIds(
124 page_scale_layer_->id(),
125 inner_viewport_scroll_layer_->id(),
126 outer_viewport_scroll_layer_ ? outer_viewport_scroll_layer_->id()
127 : Layer::INVALID_ID);
128 }
129 // This should match the property synchronization in 118 // This should match the property synchronization in
130 // LayerTreeHost::finishCommitOnImplThread(). 119 // LayerTreeHost::finishCommitOnImplThread().
131 target_tree->set_source_frame_number(source_frame_number()); 120 target_tree->set_source_frame_number(source_frame_number());
132 target_tree->set_background_color(background_color()); 121 target_tree->set_background_color(background_color());
133 target_tree->set_has_transparent_background(has_transparent_background()); 122 target_tree->set_has_transparent_background(has_transparent_background());
134 123
135 if (ContentsTexturesPurged()) 124 if (ContentsTexturesPurged())
136 target_tree->SetContentsTexturesPurged(); 125 target_tree->SetContentsTexturesPurged();
137 else 126 else
138 target_tree->ResetContentsTexturesPurged(); 127 target_tree->ResetContentsTexturesPurged();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 250
262 void LayerTreeImpl::ApplyScrollDeltasSinceBeginFrame() { 251 void LayerTreeImpl::ApplyScrollDeltasSinceBeginFrame() {
263 DCHECK(IsPendingTree()); 252 DCHECK(IsPendingTree());
264 if (!root_layer()) 253 if (!root_layer())
265 return; 254 return;
266 255
267 LayerTreeHostCommon::CallFunctionForSubtree( 256 LayerTreeHostCommon::CallFunctionForSubtree(
268 root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginFrameTo)); 257 root_layer(), base::Bind(&ApplyScrollDeltasSinceBeginFrameTo));
269 } 258 }
270 259
271 void LayerTreeImpl::SetViewportLayersFromIds(
272 int page_scale_layer_id,
273 int inner_viewport_scroll_layer_id,
274 int outer_viewport_scroll_layer_id) {
275 page_scale_layer_ = LayerById(page_scale_layer_id);
276 DCHECK(page_scale_layer_);
277
278 inner_viewport_scroll_layer_ =
279 LayerById(inner_viewport_scroll_layer_id);
280 DCHECK(inner_viewport_scroll_layer_);
281
282 outer_viewport_scroll_layer_ =
283 LayerById(outer_viewport_scroll_layer_id);
284 DCHECK(outer_viewport_scroll_layer_ ||
285 outer_viewport_scroll_layer_id == Layer::INVALID_ID);
286 }
287
288 void LayerTreeImpl::ClearViewportLayers() {
289 page_scale_layer_ = NULL;
290 inner_viewport_scroll_layer_ = NULL;
291 outer_viewport_scroll_layer_ = NULL;
292 }
293
294 // TODO(wjmaclean) This needs to go away, and be replaced with a single core 260 // TODO(wjmaclean) This needs to go away, and be replaced with a single core
295 // of login that works for both scrollbar layer types. This is already planned 261 // of login that works for both scrollbar layer types. This is already planned
296 // as part of the larger pinch-zoom re-factoring viewport. 262 // as part of the larger pinch-zoom re-factoring viewport.
297 void LayerTreeImpl::UpdateSolidColorScrollbars() { 263 void LayerTreeImpl::UpdateSolidColorScrollbars() {
298 DCHECK(settings().solid_color_scrollbars); 264 DCHECK(settings().solid_color_scrollbars);
299 265
300 LayerImpl* root_scroll = RootScrollLayer(); 266 LayerImpl* root_scroll = RootScrollLayer();
301 DCHECK(root_scroll); 267 DCHECK(root_scroll);
302 DCHECK(IsActiveTree()); 268 DCHECK(IsActiveTree());
303 269
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
343 if (!root_layer()) 309 if (!root_layer())
344 return; 310 return;
345 311
346 { 312 {
347 TRACE_EVENT2("cc", 313 TRACE_EVENT2("cc",
348 "LayerTreeImpl::UpdateDrawProperties", 314 "LayerTreeImpl::UpdateDrawProperties",
349 "IsActive", 315 "IsActive",
350 IsActiveTree(), 316 IsActiveTree(),
351 "SourceFrameNumber", 317 "SourceFrameNumber",
352 source_frame_number_); 318 source_frame_number_);
353 LayerImpl* page_scale_layer =
354 page_scale_layer_ ? page_scale_layer_ : RootContainerLayer();
355 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs( 319 LayerTreeHostCommon::CalcDrawPropsImplInputs inputs(
356 root_layer(), 320 root_layer(),
357 DrawViewportSize(), 321 DrawViewportSize(),
358 layer_tree_host_impl_->DrawTransform(), 322 layer_tree_host_impl_->DrawTransform(),
359 device_scale_factor(), 323 device_scale_factor(),
360 total_page_scale_factor(), 324 total_page_scale_factor(),
361 page_scale_layer, 325 root_scroll_layer_ ? root_scroll_layer_->parent() : NULL,
362 MaxTextureSize(), 326 MaxTextureSize(),
363 settings().can_use_lcd_text, 327 settings().can_use_lcd_text,
364 settings().layer_transforms_should_scale_layer_contents, 328 settings().layer_transforms_should_scale_layer_contents,
365 &render_surface_layer_list_); 329 &render_surface_layer_list_);
366 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 330 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
367 } 331 }
368 332
369 DCHECK(!needs_update_draw_properties_) << 333 DCHECK(!needs_update_draw_properties_) <<
370 "CalcDrawProperties should not set_needs_update_draw_properties()"; 334 "CalcDrawProperties should not set_needs_update_draw_properties()";
371 } 335 }
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
703 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest() 667 const std::vector<LayerImpl*> LayerTreeImpl::LayersWithCopyOutputRequest()
704 const { 668 const {
705 // Only the active tree needs to know about layers with copy requests, as 669 // Only the active tree needs to know about layers with copy requests, as
706 // they are aborted if not serviced during draw. 670 // they are aborted if not serviced during draw.
707 DCHECK(IsActiveTree()); 671 DCHECK(IsActiveTree());
708 672
709 return layers_with_copy_output_request_; 673 return layers_with_copy_output_request_;
710 } 674 }
711 675
712 } // namespace cc 676 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_impl.h ('k') | content/renderer/gpu/render_widget_compositor.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698