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

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

Issue 16679011: Add viewport scrollbar class to support overlay scrollbars for pinch zoom virtual viewport. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add scrollbars layers in compositor, plumb layer ids to LayerTreeImpl. Created 7 years, 6 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"
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 104
105 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) { 105 void LayerTreeImpl::PushPropertiesTo(LayerTreeImpl* target_tree) {
106 target_tree->SetLatencyInfo(latency_info_); 106 target_tree->SetLatencyInfo(latency_info_);
107 latency_info_.Clear(); 107 latency_info_.Clear();
108 target_tree->SetPageScaleFactorAndLimits( 108 target_tree->SetPageScaleFactorAndLimits(
109 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor()); 109 page_scale_factor(), min_page_scale_factor(), max_page_scale_factor());
110 target_tree->SetPageScaleDelta( 110 target_tree->SetPageScaleDelta(
111 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta()); 111 target_tree->page_scale_delta() / target_tree->sent_page_scale_delta());
112 target_tree->set_sent_page_scale_delta(1); 112 target_tree->set_sent_page_scale_delta(1);
113 113
114 if (settings().use_pinch_virtual_viewport)
115 target_tree->SetPinchViewportLayerIds(page_scale_layer_->id(),
116 inner_viewport_scroll_layer_->id(),
117 outer_viewport_scroll_layer_->id());
118
114 // This should match the property synchronization in 119 // This should match the property synchronization in
115 // LayerTreeHost::finishCommitOnImplThread(). 120 // LayerTreeHost::finishCommitOnImplThread().
116 target_tree->set_source_frame_number(source_frame_number()); 121 target_tree->set_source_frame_number(source_frame_number());
117 target_tree->set_background_color(background_color()); 122 target_tree->set_background_color(background_color());
118 target_tree->set_has_transparent_background(has_transparent_background()); 123 target_tree->set_has_transparent_background(has_transparent_background());
119 124
120 if (ContentsTexturesPurged()) 125 if (ContentsTexturesPurged())
121 target_tree->SetContentsTexturesPurged(); 126 target_tree->SetContentsTexturesPurged();
122 else 127 else
123 target_tree->ResetContentsTexturesPurged(); 128 target_tree->ResetContentsTexturesPurged();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 gfx::Vector2dF max_scroll = gfx::Rect(ScrollableSize()).bottom_right() - 220 gfx::Vector2dF max_scroll = gfx::Rect(ScrollableSize()).bottom_right() -
216 gfx::RectF(ScrollableViewportSize()).bottom_right(); 221 gfx::RectF(ScrollableViewportSize()).bottom_right();
217 222
218 // The viewport may be larger than the contents in some cases, such as 223 // The viewport may be larger than the contents in some cases, such as
219 // having a vertical scrollbar but no horizontal overflow. 224 // having a vertical scrollbar but no horizontal overflow.
220 max_scroll.SetToMax(gfx::Vector2dF()); 225 max_scroll.SetToMax(gfx::Vector2dF());
221 226
222 root_scroll_layer_->SetMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll)); 227 root_scroll_layer_->SetMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll));
223 } 228 }
224 229
230 void LayerTreeImpl::SetPinchViewportLayerIds(
231 int page_scale_layer_id,
232 int inner_viewport_scroll_layer_id,
233 int outer_viewport_scroll_layer_id) {
234 page_scale_layer_ = FindPendingTreeLayerById(page_scale_layer_id);
235 inner_viewport_scroll_layer_ =
236 FindPendingTreeLayerById(inner_viewport_scroll_layer_id);
237 outer_viewport_scroll_layer_ =
238 FindPendingTreeLayerById(outer_viewport_scroll_layer_id);
239 }
240
225 void LayerTreeImpl::UpdateSolidColorScrollbars() { 241 void LayerTreeImpl::UpdateSolidColorScrollbars() {
226 DCHECK(settings().solid_color_scrollbars); 242 DCHECK(settings().solid_color_scrollbars);
227 243
228 LayerImpl* root_scroll = RootScrollLayer(); 244 LayerImpl* root_scroll = RootScrollLayer();
229 DCHECK(root_scroll); 245 DCHECK(root_scroll);
230 DCHECK(IsActiveTree()); 246 DCHECK(IsActiveTree());
231 247
232 gfx::RectF scrollable_viewport( 248 gfx::RectF scrollable_viewport(
233 gfx::PointAtOffsetFromOrigin(root_scroll->TotalScrollOffset()), 249 gfx::PointAtOffsetFromOrigin(root_scroll->TotalScrollOffset()),
234 ScrollableViewportSize()); 250 ScrollableViewportSize());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 return; 289 return;
274 290
275 if (!root_layer()) 291 if (!root_layer())
276 return; 292 return;
277 293
278 { 294 {
279 TRACE_EVENT1("cc", 295 TRACE_EVENT1("cc",
280 "LayerTreeImpl::UpdateDrawProperties", 296 "LayerTreeImpl::UpdateDrawProperties",
281 "IsActive", 297 "IsActive",
282 IsActiveTree()); 298 IsActiveTree());
299
283 LayerTreeHostCommon::CalculateDrawProperties( 300 LayerTreeHostCommon::CalculateDrawProperties(
284 root_layer(), 301 root_layer(),
285 layer_tree_host_impl_->DeviceViewport().size(), 302 layer_tree_host_impl_->DeviceViewport().size(),
286 layer_tree_host_impl_->DeviceTransform(), 303 layer_tree_host_impl_->DeviceTransform(),
287 device_scale_factor(), 304 device_scale_factor(),
288 total_page_scale_factor(), 305 total_page_scale_factor(),
289 root_scroll_layer_, 306 page_scale_layer_ ? page_scale_layer_ : root_scroll_layer_,
290 MaxTextureSize(), 307 MaxTextureSize(),
291 settings().can_use_lcd_text, 308 settings().can_use_lcd_text,
292 settings().layer_transforms_should_scale_layer_contents, 309 settings().layer_transforms_should_scale_layer_contents,
293 &render_surface_layer_list_); 310 &render_surface_layer_list_);
294 } 311 }
295 312
296 DCHECK(!needs_update_draw_properties_) << 313 DCHECK(!needs_update_draw_properties_) <<
297 "CalcDrawProperties should not set_needs_update_draw_properties()"; 314 "CalcDrawProperties should not set_needs_update_draw_properties()";
298 } 315 }
299 316
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 588
572 void LayerTreeImpl::ClearLatencyInfo() { 589 void LayerTreeImpl::ClearLatencyInfo() {
573 latency_info_.Clear(); 590 latency_info_.Clear();
574 } 591 }
575 592
576 void LayerTreeImpl::WillModifyTilePriorities() { 593 void LayerTreeImpl::WillModifyTilePriorities() {
577 layer_tree_host_impl_->SetNeedsManageTiles(); 594 layer_tree_host_impl_->SetNeedsManageTiles();
578 } 595 }
579 596
580 } // namespace cc 597 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698