OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013, Google Inc. All rights reserved. | 2 * Copyright (c) 2013, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "platform/animation/TimingFunction.h" | 34 #include "platform/animation/TimingFunction.h" |
35 #include "public/platform/WebCompositorAnimation.h" | 35 #include "public/platform/WebCompositorAnimation.h" |
36 | 36 |
37 namespace blink { | 37 namespace blink { |
38 | 38 |
39 class WebCompositorAnimationCurve; | 39 class WebCompositorAnimationCurve; |
40 | 40 |
41 class CompositorAnimationsImpl { | 41 class CompositorAnimationsImpl { |
42 private: | 42 private: |
43 struct CompositorTiming { | 43 struct CompositorTiming { |
| 44 void assertValid() const |
| 45 { |
| 46 ASSERT(scaledDuration > 0); |
| 47 ASSERT(std::isfinite(scaledTimeOffset)); |
| 48 ASSERT(adjustedIterationCount > 0 || adjustedIterationCount == -1); |
| 49 ASSERT(std::isfinite(playbackRate) && playbackRate); |
| 50 ASSERT(iterationStart >= 0); |
| 51 } |
| 52 |
44 Timing::PlaybackDirection direction; | 53 Timing::PlaybackDirection direction; |
45 double scaledDuration; | 54 double scaledDuration; |
46 double scaledTimeOffset; | 55 double scaledTimeOffset; |
47 double adjustedIterationCount; | 56 double adjustedIterationCount; |
48 double playbackRate; | 57 double playbackRate; |
49 Timing::FillMode fillMode; | 58 Timing::FillMode fillMode; |
50 double iterationStart; | 59 double iterationStart; |
51 }; | 60 }; |
52 | 61 |
53 static bool convertTimingForCompositor(const Timing&, double timeOffset, Com
positorTiming& out, double playerPlaybackRate); | 62 static bool convertTimingForCompositor(const Timing&, double timeOffset, Com
positorTiming& out, double playerPlaybackRate); |
54 | 63 |
55 static void getAnimationOnCompositor(const Timing&, double startTime, double
timeOffset, const KeyframeEffectModelBase&, Vector<OwnPtr<WebCompositorAnimatio
n> >& animations, double playerPlaybackRate); | 64 static void getAnimationOnCompositor(const Timing&, double startTime, double
timeOffset, const KeyframeEffectModelBase&, Vector<OwnPtr<WebCompositorAnimatio
n> >& animations, double playerPlaybackRate); |
56 | 65 |
57 static void addKeyframesToCurve(WebCompositorAnimationCurve&, const Animatab
leValuePropertySpecificKeyframeVector&, const Timing&); | 66 static void addKeyframesToCurve(WebCompositorAnimationCurve&, const Animatab
leValuePropertySpecificKeyframeVector&, const Timing&); |
58 | 67 |
59 friend class CompositorAnimations; | 68 friend class CompositorAnimations; |
60 friend class AnimationCompositorAnimationsTest; | 69 friend class AnimationCompositorAnimationsTest; |
61 }; | 70 }; |
62 | 71 |
63 } // namespace blink | 72 } // namespace blink |
OLD | NEW |