• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
3 // found in the LICENSE file.
4 
5 #ifndef WebCompositorAnimation_h
6 #define WebCompositorAnimation_h
7 
8 #define WEB_ANIMATION_SUPPORTS_FILL_MODE 1
9 
10 namespace blink {
11 
12 // A compositor driven animation.
13 class WebCompositorAnimation {
14 public:
15     enum TargetProperty {
16         TargetPropertyTransform = 0,
17         TargetPropertyOpacity,
18         TargetPropertyFilter,
19         TargetPropertyScrollOffset
20     };
21 
22     enum Direction {
23         DirectionNormal = 0,
24         DirectionReverse,
25         DirectionAlternate,
26         DirectionAlternateReverse
27     };
28 
29     enum FillMode {
30         FillModeNone = 0,
31         FillModeForwards,
32         FillModeBackwards,
33         FillModeBoth
34     };
35 
~WebCompositorAnimation()36     virtual ~WebCompositorAnimation() { }
37 
38     // An id is effectively the animation's name, and it is not unique.
39     virtual int id() = 0;
40 
41     virtual TargetProperty targetProperty() const = 0;
42 
43     // This is the number of times that the animation will play. If this
44     // value is zero the animation will not play. If it is negative, then
45     // the animation will loop indefinitely.
46     virtual double iterations() const = 0;
47     virtual void setIterations(double) = 0;
48 
49     virtual double startTime() const = 0;
50     virtual void setStartTime(double monotonicTime) = 0;
51 
52     virtual double timeOffset() const = 0;
53     virtual void setTimeOffset(double monotonicTime) = 0;
54 
55     virtual Direction direction() const = 0;
56     virtual void setDirection(Direction) = 0;
57 
58     virtual double playbackRate() const = 0;
59     virtual void setPlaybackRate(double) = 0;
60 
61     virtual FillMode fillMode() const = 0;
62     virtual void setFillMode(FillMode)  = 0;
63 
64     virtual double iterationStart() const = 0;
65     virtual void setIterationStart(double) = 0;
66 };
67 
68 } // namespace blink
69 
70 #endif // WebCompositorAnimation_h
71