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

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

Issue 2866733002: Remove owning_id from EffectNode and replace it by an opaque stable_id (Closed)
Patch Set: none Created 3 years, 7 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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 void ScrollbarAnimationController::RunAnimationFrame(float progress) { 157 void ScrollbarAnimationController::RunAnimationFrame(float progress) {
158 float opacity; 158 float opacity;
159 159
160 DCHECK(animation_change_ != NONE); 160 DCHECK(animation_change_ != NONE);
161 if (animation_change_ == FADE_IN) { 161 if (animation_change_ == FADE_IN) {
162 opacity = std::max(progress, opacity_); 162 opacity = std::max(progress, opacity_);
163 } else { 163 } else {
164 opacity = std::min(1.f - progress, opacity_); 164 opacity = std::min(1.f - progress, opacity_);
165 } 165 }
166 166
167 NotifyScrollbarLayersOfOpacityAnimation(opacity);
167 ApplyOpacityToScrollbars(opacity); 168 ApplyOpacityToScrollbars(opacity);
168 if (progress == 1.f) 169 if (progress == 1.f)
169 StopAnimation(); 170 StopAnimation();
170 } 171 }
171 172
172 void ScrollbarAnimationController::DidScrollBegin() { 173 void ScrollbarAnimationController::DidScrollBegin() {
173 currently_scrolling_ = true; 174 currently_scrolling_ = true;
174 } 175 }
175 176
176 void ScrollbarAnimationController::DidScrollEnd() { 177 void ScrollbarAnimationController::DidScrollEnd() {
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 } 324 }
324 325
325 bool ScrollbarAnimationController::Captured() const { 326 bool ScrollbarAnimationController::Captured() const {
326 DCHECK(need_thinning_animation_); 327 DCHECK(need_thinning_animation_);
327 return GetScrollbarAnimationController(VERTICAL).captured() || 328 return GetScrollbarAnimationController(VERTICAL).captured() ||
328 GetScrollbarAnimationController(HORIZONTAL).captured(); 329 GetScrollbarAnimationController(HORIZONTAL).captured();
329 } 330 }
330 331
331 void ScrollbarAnimationController::Show() { 332 void ScrollbarAnimationController::Show() {
332 delayed_scrollbar_animation_.Cancel(); 333 delayed_scrollbar_animation_.Cancel();
334 NotifyScrollbarLayersOfOpacityAnimation(1.0f);
333 ApplyOpacityToScrollbars(1.0f); 335 ApplyOpacityToScrollbars(1.0f);
334 } 336 }
335 337
336 void ScrollbarAnimationController::ApplyOpacityToScrollbars(float opacity) { 338 void ScrollbarAnimationController::NotifyScrollbarLayersOfOpacityAnimation(
339 float opacity) {
337 for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) { 340 for (ScrollbarLayerImplBase* scrollbar : Scrollbars()) {
338 DCHECK(scrollbar->is_overlay_scrollbar()); 341 DCHECK(scrollbar->is_overlay_scrollbar());
339 float effective_opacity = scrollbar->CanScrollOrientation() ? opacity : 0; 342 float effective_opacity = scrollbar->CanScrollOrientation() ? opacity : 0;
340 scrollbar->SetOverlayScrollbarLayerOpacityAnimated(effective_opacity); 343 scrollbar->SetOverlayScrollbarLayerOpacityAnimated(effective_opacity);
341 } 344 }
345 }
342 346
347 void ScrollbarAnimationController::ApplyOpacityToScrollbars(float opacity) {
343 bool previouslyVisible = opacity_ > 0.0f; 348 bool previouslyVisible = opacity_ > 0.0f;
344 bool currentlyVisible = opacity > 0.0f; 349 bool currentlyVisible = opacity > 0.0f;
345 350
346 if (opacity_ != opacity) 351 if (opacity_ != opacity)
347 client_->SetNeedsRedrawForScrollbarAnimation(); 352 client_->SetNeedsRedrawForScrollbarAnimation();
348 353
349 opacity_ = opacity; 354 opacity_ = opacity;
350 355
351 if (previouslyVisible != currentlyVisible) 356 if (previouslyVisible != currentlyVisible)
352 client_->DidChangeScrollbarVisibility(); 357 client_->DidChangeScrollbarVisibility();
353 } 358 }
354 359
355 } // namespace cc 360 } // namespace cc
OLDNEW
« no previous file with comments | « cc/input/scrollbar_animation_controller.h ('k') | cc/input/scrollbar_animation_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698