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

Side by Side Diff: cc/input/scrollbar_animation_controller.cc

Issue 2762123004: cc: LayerTreeHostImpl uses element id to tick animations (Closed)
Patch Set: remove accidental debug print Created 3 years, 9 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/input/scrollbar_animation_controller.h" 5 #include "cc/input/scrollbar_animation_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/time/time.h" 9 #include "base/time/time.h"
10 #include "cc/trees/layer_tree_impl.h" 10 #include "cc/trees/layer_tree_impl.h"
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
335 void ScrollbarAnimationController::Show() { 335 void ScrollbarAnimationController::Show() {
336 delayed_scrollbar_show_.Cancel(); 336 delayed_scrollbar_show_.Cancel();
337 ApplyOpacityToScrollbars(1.0f); 337 ApplyOpacityToScrollbars(1.0f);
338 } 338 }
339 339
340 void ScrollbarAnimationController::ApplyOpacityToScrollbars(float opacity) { 340 void ScrollbarAnimationController::ApplyOpacityToScrollbars(float opacity) {
341 for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) { 341 for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) {
342 if (!scrollbar->is_overlay_scrollbar()) 342 if (!scrollbar->is_overlay_scrollbar())
343 continue; 343 continue;
344 float effective_opacity = scrollbar->CanScrollOrientation() ? opacity : 0; 344 float effective_opacity = scrollbar->CanScrollOrientation() ? opacity : 0;
345 PropertyTrees* property_trees = 345 scrollbar->SetOverlayScrollbarLayerOpacityAnimated(effective_opacity);
346 scrollbar->layer_tree_impl()->property_trees();
347 // If this method is called during LayerImpl::PushPropertiesTo, we may not
348 // yet have valid owning_layer_id_to_node_index entries in effect tree as
349 // property trees are pushed after layers during activation. We can skip
350 // updating opacity in that case as we are only registering a scrollbar and
351 // because opacity will be overwritten anyway when property trees are
352 // pushed.
353 if (property_trees->effect_tree.FindNodeIndexFromOwningLayerId(
354 scrollbar->id()) != EffectTree::kInvalidNodeId) {
355 property_trees->effect_tree.OnOpacityAnimated(
356 effective_opacity,
357 property_trees->effect_tree.FindNodeIndexFromOwningLayerId(
358 scrollbar->id()),
359 scrollbar->layer_tree_impl());
360 }
361 } 346 }
362 347
363 bool previouslyVisible = opacity_ > 0.0f; 348 bool previouslyVisible = opacity_ > 0.0f;
364 bool currentlyVisible = opacity > 0.0f; 349 bool currentlyVisible = opacity > 0.0f;
365 350
366 if (opacity_ != opacity) 351 if (opacity_ != opacity)
367 client_->SetNeedsRedrawForScrollbarAnimation(); 352 client_->SetNeedsRedrawForScrollbarAnimation();
368 353
369 opacity_ = opacity; 354 opacity_ = opacity;
370 355
371 if (previouslyVisible != currentlyVisible) 356 if (previouslyVisible != currentlyVisible)
372 client_->DidChangeScrollbarVisibility(); 357 client_->DidChangeScrollbarVisibility();
373 } 358 }
374 359
375 } // namespace cc 360 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | cc/input/scrollbar_animation_controller_unittest.cc » ('j') | cc/layers/scrollbar_layer_impl_base.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698