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

Side by Side Diff: cc/layer_impl.cc

Issue 11348256: Use an auxiliary list of animation controllers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Unit tests pass! Created 8 years 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/layer_impl.h" 5 #include "cc/layer_impl.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "cc/debug_border_draw_quad.h" 9 #include "cc/debug_border_draw_quad.h"
10 #include "cc/debug_colors.h" 10 #include "cc/debug_colors.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 , m_drawDepth(0) 52 , m_drawDepth(0)
53 , m_drawOpacity(0) 53 , m_drawOpacity(0)
54 , m_drawOpacityIsAnimating(false) 54 , m_drawOpacityIsAnimating(false)
55 , m_filter(0) 55 , m_filter(0)
56 , m_drawTransformIsAnimating(false) 56 , m_drawTransformIsAnimating(false)
57 , m_screenSpaceTransformIsAnimating(false) 57 , m_screenSpaceTransformIsAnimating(false)
58 , m_isClipped(false) 58 , m_isClipped(false)
59 #ifndef NDEBUG 59 #ifndef NDEBUG
60 , m_betweenWillDrawAndDidDraw(false) 60 , m_betweenWillDrawAndDidDraw(false)
61 #endif 61 #endif
62 , m_layerAnimationController(LayerAnimationController::create(this)) 62 , m_layerAnimationController(LayerAnimationController::create())
63 { 63 {
64 DCHECK(m_layerId > 0); 64 DCHECK(m_layerId > 0);
65 m_layerAnimationController->setId(m_layerId);
65 } 66 }
66 67
67 LayerImpl::~LayerImpl() 68 LayerImpl::~LayerImpl()
68 { 69 {
69 #ifndef NDEBUG 70 #ifndef NDEBUG
70 DCHECK(!m_betweenWillDrawAndDidDraw); 71 DCHECK(!m_betweenWillDrawAndDidDraw);
71 #endif 72 #endif
72 SkSafeUnref(m_filter); 73 SkSafeUnref(m_filter);
73 } 74 }
74 75
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 115
115 bool LayerImpl::descendantDrawsContent() 116 bool LayerImpl::descendantDrawsContent()
116 { 117 {
117 for (size_t i = 0; i < m_children.size(); ++i) { 118 for (size_t i = 0; i < m_children.size(); ++i) {
118 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte nt()) 119 if (m_children[i]->drawsContent() || m_children[i]->descendantDrawsConte nt())
119 return true; 120 return true;
120 } 121 }
121 return false; 122 return false;
122 } 123 }
123 124
125 void LayerImpl::setLayerTreeHostImpl(LayerTreeHostImpl* hostImpl)
126 {
127 m_layerTreeHostImpl = hostImpl;
128 m_layerAnimationController->setAnimationRegistrar(hostImpl);
129 }
130
124 scoped_ptr<SharedQuadState> LayerImpl::createSharedQuadState() const 131 scoped_ptr<SharedQuadState> LayerImpl::createSharedQuadState() const
125 { 132 {
126 scoped_ptr<SharedQuadState> state = SharedQuadState::Create(); 133 scoped_ptr<SharedQuadState> state = SharedQuadState::Create();
127 state->SetAll(m_drawTransform, m_visibleContentRect, m_drawableContentRect, m_ clipRect, m_isClipped, m_drawOpacity); 134 state->SetAll(m_drawTransform, m_visibleContentRect, m_drawableContentRect, m_ clipRect, m_isClipped, m_drawOpacity);
128 return state.Pass(); 135 return state.Pass();
129 } 136 }
130 137
131 void LayerImpl::willDraw(ResourceProvider*) 138 void LayerImpl::willDraw(ResourceProvider*)
132 { 139 {
133 #ifndef NDEBUG 140 #ifndef NDEBUG
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 bool LayerImpl::layerIsAlwaysDamaged() const 421 bool LayerImpl::layerIsAlwaysDamaged() const
415 { 422 {
416 return false; 423 return false;
417 } 424 }
418 425
419 int LayerImpl::id() const 426 int LayerImpl::id() const
420 { 427 {
421 return m_layerId; 428 return m_layerId;
422 } 429 }
423 430
424 float LayerImpl::opacity() const
425 {
426 return m_opacity;
427 }
428
429 void LayerImpl::setOpacityFromAnimation(float opacity)
430 {
431 setOpacity(opacity);
432 }
433
434 const gfx::Transform& LayerImpl::transform() const
435 {
436 return m_transform;
437 }
438
439 void LayerImpl::setTransformFromAnimation(const gfx::Transform& transform)
440 {
441 setTransform(transform);
442 }
443
444 void LayerImpl::setBounds(const gfx::Size& bounds) 431 void LayerImpl::setBounds(const gfx::Size& bounds)
445 { 432 {
446 if (m_bounds == bounds) 433 if (m_bounds == bounds)
447 return; 434 return;
448 435
449 m_bounds = bounds; 436 m_bounds = bounds;
450 437
451 if (masksToBounds()) 438 if (masksToBounds())
452 noteLayerPropertyChangedForSubtree(); 439 noteLayerPropertyChangedForSubtree();
453 else 440 else
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 m_contentsOpaque = opaque; 547 m_contentsOpaque = opaque;
561 noteLayerPropertyChangedForSubtree(); 548 noteLayerPropertyChangedForSubtree();
562 } 549 }
563 550
564 void LayerImpl::setOpacity(float opacity) 551 void LayerImpl::setOpacity(float opacity)
565 { 552 {
566 if (m_opacity == opacity) 553 if (m_opacity == opacity)
567 return; 554 return;
568 555
569 m_opacity = opacity; 556 m_opacity = opacity;
557 m_opacityLastUpdateTime = base::TimeTicks::Now();
570 m_layerSurfacePropertyChanged = true; 558 m_layerSurfacePropertyChanged = true;
571 } 559 }
572 560
561 float LayerImpl::opacity() const
562 {
563 if (m_layerAnimationController->opacityLastUpdateTime() > m_opacityLastUpdat eTime)
564 return m_layerAnimationController->opacity();
565 return m_opacity;
566 }
567
573 bool LayerImpl::opacityIsAnimating() const 568 bool LayerImpl::opacityIsAnimating() const
574 { 569 {
575 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Opac ity); 570 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Opac ity);
576 } 571 }
577 572
578 void LayerImpl::setPosition(const gfx::PointF& position) 573 void LayerImpl::setPosition(const gfx::PointF& position)
579 { 574 {
580 if (m_position == position) 575 if (m_position == position)
581 return; 576 return;
582 577
(...skipping 19 matching lines...) Expand all
602 // sublayer transform does not affect the current layer; it affects only its children. 597 // sublayer transform does not affect the current layer; it affects only its children.
603 noteLayerPropertyChangedForDescendants(); 598 noteLayerPropertyChangedForDescendants();
604 } 599 }
605 600
606 void LayerImpl::setTransform(const gfx::Transform& transform) 601 void LayerImpl::setTransform(const gfx::Transform& transform)
607 { 602 {
608 if (m_transform == transform) 603 if (m_transform == transform)
609 return; 604 return;
610 605
611 m_transform = transform; 606 m_transform = transform;
607 m_transformLastUpdateTime = base::TimeTicks::Now();
612 m_layerSurfacePropertyChanged = true; 608 m_layerSurfacePropertyChanged = true;
613 } 609 }
614 610
611 const gfx::Transform& LayerImpl::transform() const
612 {
613 if (m_layerAnimationController->transformLastUpdateTime() > m_transformLastU pdateTime)
614 return m_layerAnimationController->transform();
615 return m_transform;
616 }
617
615 bool LayerImpl::transformIsAnimating() const 618 bool LayerImpl::transformIsAnimating() const
616 { 619 {
617 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Tran sform); 620 return m_layerAnimationController->isAnimatingProperty(ActiveAnimation::Tran sform);
618 } 621 }
619 622
620 void LayerImpl::setContentBounds(const gfx::Size& contentBounds) 623 void LayerImpl::setContentBounds(const gfx::Size& contentBounds)
621 { 624 {
622 if (m_contentBounds == contentBounds) 625 if (m_contentBounds == contentBounds)
623 return; 626 return;
624 627
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
722 725
723 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer) 726 void LayerImpl::setVerticalScrollbarLayer(ScrollbarLayerImpl* scrollbarLayer)
724 { 727 {
725 if (!m_scrollbarAnimationController) 728 if (!m_scrollbarAnimationController)
726 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is); 729 m_scrollbarAnimationController = ScrollbarAnimationController::create(th is);
727 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer); 730 m_scrollbarAnimationController->setVerticalScrollbarLayer(scrollbarLayer);
728 m_scrollbarAnimationController->updateScrollOffset(this); 731 m_scrollbarAnimationController->updateScrollOffset(this);
729 } 732 }
730 733
731 } // namespace cc 734 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698