OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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_animation_controller.h" | 5 #include "cc/layer_animation_controller.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "cc/animation.h" | 9 #include "cc/animation.h" |
10 #include "cc/animation_registrar.h" | 10 #include "cc/animation_registrar.h" |
11 #include "cc/keyframed_animation_curve.h" | 11 #include "cc/keyframed_animation_curve.h" |
12 #include "cc/layer_animation_value_observer.h" | 12 #include "cc/layer_animation_value_observer.h" |
13 #include "cc/scoped_ptr_algorithm.h" | 13 #include "cc/scoped_ptr_algorithm.h" |
14 #include "ui/gfx/transform.h" | 14 #include "ui/gfx/transform.h" |
15 | 15 |
16 namespace { | |
17 gfx::Transform convertWebTransformationMatrixToTransform(const WebKit::WebTransf
ormationMatrix& matrix) | |
18 { | |
19 gfx::Transform transform; | |
20 transform.matrix().setDouble(0, 0, matrix.m11()); | |
21 transform.matrix().setDouble(0, 1, matrix.m21()); | |
22 transform.matrix().setDouble(0, 2, matrix.m31()); | |
23 transform.matrix().setDouble(0, 3, matrix.m41()); | |
24 transform.matrix().setDouble(1, 0, matrix.m12()); | |
25 transform.matrix().setDouble(1, 1, matrix.m22()); | |
26 transform.matrix().setDouble(1, 2, matrix.m32()); | |
27 transform.matrix().setDouble(1, 3, matrix.m42()); | |
28 transform.matrix().setDouble(2, 0, matrix.m13()); | |
29 transform.matrix().setDouble(2, 1, matrix.m23()); | |
30 transform.matrix().setDouble(2, 2, matrix.m33()); | |
31 transform.matrix().setDouble(2, 3, matrix.m43()); | |
32 transform.matrix().setDouble(3, 0, matrix.m14()); | |
33 transform.matrix().setDouble(3, 1, matrix.m24()); | |
34 transform.matrix().setDouble(3, 2, matrix.m34()); | |
35 transform.matrix().setDouble(3, 3, matrix.m44()); | |
36 return transform; | |
37 } | |
38 } // namespace | |
39 | |
40 namespace cc { | 16 namespace cc { |
41 | 17 |
42 LayerAnimationController::LayerAnimationController(int id) | 18 LayerAnimationController::LayerAnimationController(int id) |
43 : m_forceSync(false) | 19 : m_forceSync(false) |
44 , m_id(id) | 20 , m_id(id) |
45 , m_registrar(0) | 21 , m_registrar(0) |
46 , m_isActive(false) | 22 , m_isActive(false) |
47 { | 23 { |
48 } | 24 } |
49 | 25 |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 | 412 |
437 // Animation assumes its initial value until it gets the synchronize
d start time | 413 // Animation assumes its initial value until it gets the synchronize
d start time |
438 // from the impl thread and can start ticking. | 414 // from the impl thread and can start ticking. |
439 if (m_activeAnimations[i]->needsSynchronizedStartTime()) | 415 if (m_activeAnimations[i]->needsSynchronizedStartTime()) |
440 trimmed = 0; | 416 trimmed = 0; |
441 | 417 |
442 switch (m_activeAnimations[i]->targetProperty()) { | 418 switch (m_activeAnimations[i]->targetProperty()) { |
443 | 419 |
444 case Animation::Transform: { | 420 case Animation::Transform: { |
445 const TransformAnimationCurve* transformAnimationCurve = m_activ
eAnimations[i]->curve()->toTransformAnimationCurve(); | 421 const TransformAnimationCurve* transformAnimationCurve = m_activ
eAnimations[i]->curve()->toTransformAnimationCurve(); |
446 const gfx::Transform transform = convertWebTransformationMatrixT
oTransform(transformAnimationCurve->getValue(trimmed)); | 422 const gfx::Transform transform = transformAnimationCurve->getVal
ue(trimmed); |
447 if (m_activeAnimations[i]->isFinishedAt(monotonicTime)) | 423 if (m_activeAnimations[i]->isFinishedAt(monotonicTime)) |
448 m_activeAnimations[i]->setRunState(Animation::Finished, mono
tonicTime); | 424 m_activeAnimations[i]->setRunState(Animation::Finished, mono
tonicTime); |
449 | 425 |
450 notifyObserversTransformAnimated(transform); | 426 notifyObserversTransformAnimated(transform); |
451 break; | 427 break; |
452 } | 428 } |
453 | 429 |
454 case Animation::Opacity: { | 430 case Animation::Opacity: { |
455 const FloatAnimationCurve* floatAnimationCurve = m_activeAnimati
ons[i]->curve()->toFloatAnimationCurve(); | 431 const FloatAnimationCurve* floatAnimationCurve = m_activeAnimati
ons[i]->curve()->toFloatAnimationCurve(); |
456 const float opacity = floatAnimationCurve->getValue(trimmed); | 432 const float opacity = floatAnimationCurve->getValue(trimmed); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
500 ObserverListBase<LayerAnimationValueObserver>::Iterator it(m_observers); | 476 ObserverListBase<LayerAnimationValueObserver>::Iterator it(m_observers); |
501 LayerAnimationValueObserver* obs; | 477 LayerAnimationValueObserver* obs; |
502 while ((obs = it.GetNext()) != NULL) | 478 while ((obs = it.GetNext()) != NULL) |
503 if (obs->IsActive()) | 479 if (obs->IsActive()) |
504 return true; | 480 return true; |
505 } | 481 } |
506 return false; | 482 return false; |
507 } | 483 } |
508 | 484 |
509 } // namespace cc | 485 } // namespace cc |
OLD | NEW |