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

Side by Side Diff: cc/animation/keyframed_animation_curve.h

Issue 1866203004: Convert //cc from scoped_ptr to std::unique_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: scopedptrcc: rebase Created 4 years, 8 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
« no previous file with comments | « cc/animation/element_animations.cc ('k') | cc/animation/keyframed_animation_curve.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_ 5 #ifndef CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_
6 #define CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_ 6 #define CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
11 #include "base/time/time.h" 11 #include "base/time/time.h"
12 #include "cc/animation/animation_curve.h" 12 #include "cc/animation/animation_curve.h"
13 #include "cc/animation/timing_function.h" 13 #include "cc/animation/timing_function.h"
14 #include "cc/animation/transform_operations.h" 14 #include "cc/animation/transform_operations.h"
15 #include "cc/base/cc_export.h" 15 #include "cc/base/cc_export.h"
16 16
17 namespace cc { 17 namespace cc {
18 18
19 class CC_EXPORT Keyframe { 19 class CC_EXPORT Keyframe {
20 public: 20 public:
21 base::TimeDelta Time() const; 21 base::TimeDelta Time() const;
22 const TimingFunction* timing_function() const { 22 const TimingFunction* timing_function() const {
23 return timing_function_.get(); 23 return timing_function_.get();
24 } 24 }
25 25
26 protected: 26 protected:
27 Keyframe(base::TimeDelta time, scoped_ptr<TimingFunction> timing_function); 27 Keyframe(base::TimeDelta time,
28 std::unique_ptr<TimingFunction> timing_function);
28 virtual ~Keyframe(); 29 virtual ~Keyframe();
29 30
30 private: 31 private:
31 base::TimeDelta time_; 32 base::TimeDelta time_;
32 scoped_ptr<TimingFunction> timing_function_; 33 std::unique_ptr<TimingFunction> timing_function_;
33 34
34 DISALLOW_COPY_AND_ASSIGN(Keyframe); 35 DISALLOW_COPY_AND_ASSIGN(Keyframe);
35 }; 36 };
36 37
37 class CC_EXPORT ColorKeyframe : public Keyframe { 38 class CC_EXPORT ColorKeyframe : public Keyframe {
38 public: 39 public:
39 static scoped_ptr<ColorKeyframe> Create( 40 static std::unique_ptr<ColorKeyframe> Create(
40 base::TimeDelta time, 41 base::TimeDelta time,
41 SkColor value, 42 SkColor value,
42 scoped_ptr<TimingFunction> timing_function); 43 std::unique_ptr<TimingFunction> timing_function);
43 ~ColorKeyframe() override; 44 ~ColorKeyframe() override;
44 45
45 SkColor Value() const; 46 SkColor Value() const;
46 47
47 scoped_ptr<ColorKeyframe> Clone() const; 48 std::unique_ptr<ColorKeyframe> Clone() const;
48 49
49 private: 50 private:
50 ColorKeyframe(base::TimeDelta time, 51 ColorKeyframe(base::TimeDelta time,
51 SkColor value, 52 SkColor value,
52 scoped_ptr<TimingFunction> timing_function); 53 std::unique_ptr<TimingFunction> timing_function);
53 54
54 SkColor value_; 55 SkColor value_;
55 }; 56 };
56 57
57 class CC_EXPORT FloatKeyframe : public Keyframe { 58 class CC_EXPORT FloatKeyframe : public Keyframe {
58 public: 59 public:
59 static scoped_ptr<FloatKeyframe> Create( 60 static std::unique_ptr<FloatKeyframe> Create(
60 base::TimeDelta time, 61 base::TimeDelta time,
61 float value, 62 float value,
62 scoped_ptr<TimingFunction> timing_function); 63 std::unique_ptr<TimingFunction> timing_function);
63 ~FloatKeyframe() override; 64 ~FloatKeyframe() override;
64 65
65 float Value() const; 66 float Value() const;
66 67
67 scoped_ptr<FloatKeyframe> Clone() const; 68 std::unique_ptr<FloatKeyframe> Clone() const;
68 69
69 private: 70 private:
70 FloatKeyframe(base::TimeDelta time, 71 FloatKeyframe(base::TimeDelta time,
71 float value, 72 float value,
72 scoped_ptr<TimingFunction> timing_function); 73 std::unique_ptr<TimingFunction> timing_function);
73 74
74 float value_; 75 float value_;
75 }; 76 };
76 77
77 class CC_EXPORT TransformKeyframe : public Keyframe { 78 class CC_EXPORT TransformKeyframe : public Keyframe {
78 public: 79 public:
79 static scoped_ptr<TransformKeyframe> Create( 80 static std::unique_ptr<TransformKeyframe> Create(
80 base::TimeDelta time, 81 base::TimeDelta time,
81 const TransformOperations& value, 82 const TransformOperations& value,
82 scoped_ptr<TimingFunction> timing_function); 83 std::unique_ptr<TimingFunction> timing_function);
83 ~TransformKeyframe() override; 84 ~TransformKeyframe() override;
84 85
85 const TransformOperations& Value() const; 86 const TransformOperations& Value() const;
86 87
87 scoped_ptr<TransformKeyframe> Clone() const; 88 std::unique_ptr<TransformKeyframe> Clone() const;
88 89
89 private: 90 private:
90 TransformKeyframe(base::TimeDelta time, 91 TransformKeyframe(base::TimeDelta time,
91 const TransformOperations& value, 92 const TransformOperations& value,
92 scoped_ptr<TimingFunction> timing_function); 93 std::unique_ptr<TimingFunction> timing_function);
93 94
94 TransformOperations value_; 95 TransformOperations value_;
95 }; 96 };
96 97
97 class CC_EXPORT FilterKeyframe : public Keyframe { 98 class CC_EXPORT FilterKeyframe : public Keyframe {
98 public: 99 public:
99 static scoped_ptr<FilterKeyframe> Create( 100 static std::unique_ptr<FilterKeyframe> Create(
100 base::TimeDelta time, 101 base::TimeDelta time,
101 const FilterOperations& value, 102 const FilterOperations& value,
102 scoped_ptr<TimingFunction> timing_function); 103 std::unique_ptr<TimingFunction> timing_function);
103 ~FilterKeyframe() override; 104 ~FilterKeyframe() override;
104 105
105 const FilterOperations& Value() const; 106 const FilterOperations& Value() const;
106 107
107 scoped_ptr<FilterKeyframe> Clone() const; 108 std::unique_ptr<FilterKeyframe> Clone() const;
108 109
109 private: 110 private:
110 FilterKeyframe(base::TimeDelta time, 111 FilterKeyframe(base::TimeDelta time,
111 const FilterOperations& value, 112 const FilterOperations& value,
112 scoped_ptr<TimingFunction> timing_function); 113 std::unique_ptr<TimingFunction> timing_function);
113 114
114 FilterOperations value_; 115 FilterOperations value_;
115 }; 116 };
116 117
117 class CC_EXPORT KeyframedColorAnimationCurve : public ColorAnimationCurve { 118 class CC_EXPORT KeyframedColorAnimationCurve : public ColorAnimationCurve {
118 public: 119 public:
119 // It is required that the keyframes be sorted by time. 120 // It is required that the keyframes be sorted by time.
120 static scoped_ptr<KeyframedColorAnimationCurve> Create(); 121 static std::unique_ptr<KeyframedColorAnimationCurve> Create();
121 122
122 ~KeyframedColorAnimationCurve() override; 123 ~KeyframedColorAnimationCurve() override;
123 124
124 void AddKeyframe(scoped_ptr<ColorKeyframe> keyframe); 125 void AddKeyframe(std::unique_ptr<ColorKeyframe> keyframe);
125 void SetTimingFunction(scoped_ptr<TimingFunction> timing_function) { 126 void SetTimingFunction(std::unique_ptr<TimingFunction> timing_function) {
126 timing_function_ = std::move(timing_function); 127 timing_function_ = std::move(timing_function);
127 } 128 }
128 129
129 // AnimationCurve implementation 130 // AnimationCurve implementation
130 base::TimeDelta Duration() const override; 131 base::TimeDelta Duration() const override;
131 scoped_ptr<AnimationCurve> Clone() const override; 132 std::unique_ptr<AnimationCurve> Clone() const override;
132 133
133 // BackgrounColorAnimationCurve implementation 134 // BackgrounColorAnimationCurve implementation
134 SkColor GetValue(base::TimeDelta t) const override; 135 SkColor GetValue(base::TimeDelta t) const override;
135 136
136 private: 137 private:
137 KeyframedColorAnimationCurve(); 138 KeyframedColorAnimationCurve();
138 139
139 // Always sorted in order of increasing time. No two keyframes have the 140 // Always sorted in order of increasing time. No two keyframes have the
140 // same time. 141 // same time.
141 std::vector<scoped_ptr<ColorKeyframe>> keyframes_; 142 std::vector<std::unique_ptr<ColorKeyframe>> keyframes_;
142 scoped_ptr<TimingFunction> timing_function_; 143 std::unique_ptr<TimingFunction> timing_function_;
143 144
144 DISALLOW_COPY_AND_ASSIGN(KeyframedColorAnimationCurve); 145 DISALLOW_COPY_AND_ASSIGN(KeyframedColorAnimationCurve);
145 }; 146 };
146 147
147 class CC_EXPORT KeyframedFloatAnimationCurve : public FloatAnimationCurve { 148 class CC_EXPORT KeyframedFloatAnimationCurve : public FloatAnimationCurve {
148 public: 149 public:
149 // It is required that the keyframes be sorted by time. 150 // It is required that the keyframes be sorted by time.
150 static scoped_ptr<KeyframedFloatAnimationCurve> Create(); 151 static std::unique_ptr<KeyframedFloatAnimationCurve> Create();
151 152
152 ~KeyframedFloatAnimationCurve() override; 153 ~KeyframedFloatAnimationCurve() override;
153 154
154 void AddKeyframe(scoped_ptr<FloatKeyframe> keyframe); 155 void AddKeyframe(std::unique_ptr<FloatKeyframe> keyframe);
155 void SetTimingFunction(scoped_ptr<TimingFunction> timing_function) { 156 void SetTimingFunction(std::unique_ptr<TimingFunction> timing_function) {
156 timing_function_ = std::move(timing_function); 157 timing_function_ = std::move(timing_function);
157 } 158 }
158 159
159 // AnimationCurve implementation 160 // AnimationCurve implementation
160 base::TimeDelta Duration() const override; 161 base::TimeDelta Duration() const override;
161 scoped_ptr<AnimationCurve> Clone() const override; 162 std::unique_ptr<AnimationCurve> Clone() const override;
162 163
163 // FloatAnimationCurve implementation 164 // FloatAnimationCurve implementation
164 float GetValue(base::TimeDelta t) const override; 165 float GetValue(base::TimeDelta t) const override;
165 166
166 private: 167 private:
167 KeyframedFloatAnimationCurve(); 168 KeyframedFloatAnimationCurve();
168 169
169 // Always sorted in order of increasing time. No two keyframes have the 170 // Always sorted in order of increasing time. No two keyframes have the
170 // same time. 171 // same time.
171 std::vector<scoped_ptr<FloatKeyframe>> keyframes_; 172 std::vector<std::unique_ptr<FloatKeyframe>> keyframes_;
172 scoped_ptr<TimingFunction> timing_function_; 173 std::unique_ptr<TimingFunction> timing_function_;
173 174
174 DISALLOW_COPY_AND_ASSIGN(KeyframedFloatAnimationCurve); 175 DISALLOW_COPY_AND_ASSIGN(KeyframedFloatAnimationCurve);
175 }; 176 };
176 177
177 class CC_EXPORT KeyframedTransformAnimationCurve 178 class CC_EXPORT KeyframedTransformAnimationCurve
178 : public TransformAnimationCurve { 179 : public TransformAnimationCurve {
179 public: 180 public:
180 // It is required that the keyframes be sorted by time. 181 // It is required that the keyframes be sorted by time.
181 static scoped_ptr<KeyframedTransformAnimationCurve> Create(); 182 static std::unique_ptr<KeyframedTransformAnimationCurve> Create();
182 183
183 ~KeyframedTransformAnimationCurve() override; 184 ~KeyframedTransformAnimationCurve() override;
184 185
185 void AddKeyframe(scoped_ptr<TransformKeyframe> keyframe); 186 void AddKeyframe(std::unique_ptr<TransformKeyframe> keyframe);
186 void SetTimingFunction(scoped_ptr<TimingFunction> timing_function) { 187 void SetTimingFunction(std::unique_ptr<TimingFunction> timing_function) {
187 timing_function_ = std::move(timing_function); 188 timing_function_ = std::move(timing_function);
188 } 189 }
189 190
190 // AnimationCurve implementation 191 // AnimationCurve implementation
191 base::TimeDelta Duration() const override; 192 base::TimeDelta Duration() const override;
192 scoped_ptr<AnimationCurve> Clone() const override; 193 std::unique_ptr<AnimationCurve> Clone() const override;
193 194
194 // TransformAnimationCurve implementation 195 // TransformAnimationCurve implementation
195 gfx::Transform GetValue(base::TimeDelta t) const override; 196 gfx::Transform GetValue(base::TimeDelta t) const override;
196 bool AnimatedBoundsForBox(const gfx::BoxF& box, 197 bool AnimatedBoundsForBox(const gfx::BoxF& box,
197 gfx::BoxF* bounds) const override; 198 gfx::BoxF* bounds) const override;
198 bool AffectsScale() const override; 199 bool AffectsScale() const override;
199 bool PreservesAxisAlignment() const override; 200 bool PreservesAxisAlignment() const override;
200 bool IsTranslation() const override; 201 bool IsTranslation() const override;
201 bool AnimationStartScale(bool forward_direction, 202 bool AnimationStartScale(bool forward_direction,
202 float* start_scale) const override; 203 float* start_scale) const override;
203 bool MaximumTargetScale(bool forward_direction, 204 bool MaximumTargetScale(bool forward_direction,
204 float* max_scale) const override; 205 float* max_scale) const override;
205 206
206 private: 207 private:
207 KeyframedTransformAnimationCurve(); 208 KeyframedTransformAnimationCurve();
208 209
209 // Always sorted in order of increasing time. No two keyframes have the 210 // Always sorted in order of increasing time. No two keyframes have the
210 // same time. 211 // same time.
211 std::vector<scoped_ptr<TransformKeyframe>> keyframes_; 212 std::vector<std::unique_ptr<TransformKeyframe>> keyframes_;
212 scoped_ptr<TimingFunction> timing_function_; 213 std::unique_ptr<TimingFunction> timing_function_;
213 214
214 DISALLOW_COPY_AND_ASSIGN(KeyframedTransformAnimationCurve); 215 DISALLOW_COPY_AND_ASSIGN(KeyframedTransformAnimationCurve);
215 }; 216 };
216 217
217 class CC_EXPORT KeyframedFilterAnimationCurve 218 class CC_EXPORT KeyframedFilterAnimationCurve
218 : public FilterAnimationCurve { 219 : public FilterAnimationCurve {
219 public: 220 public:
220 // It is required that the keyframes be sorted by time. 221 // It is required that the keyframes be sorted by time.
221 static scoped_ptr<KeyframedFilterAnimationCurve> Create(); 222 static std::unique_ptr<KeyframedFilterAnimationCurve> Create();
222 223
223 ~KeyframedFilterAnimationCurve() override; 224 ~KeyframedFilterAnimationCurve() override;
224 225
225 void AddKeyframe(scoped_ptr<FilterKeyframe> keyframe); 226 void AddKeyframe(std::unique_ptr<FilterKeyframe> keyframe);
226 void SetTimingFunction(scoped_ptr<TimingFunction> timing_function) { 227 void SetTimingFunction(std::unique_ptr<TimingFunction> timing_function) {
227 timing_function_ = std::move(timing_function); 228 timing_function_ = std::move(timing_function);
228 } 229 }
229 230
230 // AnimationCurve implementation 231 // AnimationCurve implementation
231 base::TimeDelta Duration() const override; 232 base::TimeDelta Duration() const override;
232 scoped_ptr<AnimationCurve> Clone() const override; 233 std::unique_ptr<AnimationCurve> Clone() const override;
233 234
234 // FilterAnimationCurve implementation 235 // FilterAnimationCurve implementation
235 FilterOperations GetValue(base::TimeDelta t) const override; 236 FilterOperations GetValue(base::TimeDelta t) const override;
236 bool HasFilterThatMovesPixels() const override; 237 bool HasFilterThatMovesPixels() const override;
237 238
238 private: 239 private:
239 KeyframedFilterAnimationCurve(); 240 KeyframedFilterAnimationCurve();
240 241
241 // Always sorted in order of increasing time. No two keyframes have the 242 // Always sorted in order of increasing time. No two keyframes have the
242 // same time. 243 // same time.
243 std::vector<scoped_ptr<FilterKeyframe>> keyframes_; 244 std::vector<std::unique_ptr<FilterKeyframe>> keyframes_;
244 scoped_ptr<TimingFunction> timing_function_; 245 std::unique_ptr<TimingFunction> timing_function_;
245 246
246 DISALLOW_COPY_AND_ASSIGN(KeyframedFilterAnimationCurve); 247 DISALLOW_COPY_AND_ASSIGN(KeyframedFilterAnimationCurve);
247 }; 248 };
248 249
249 } // namespace cc 250 } // namespace cc
250 251
251 #endif // CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_ 252 #endif // CC_ANIMATION_KEYFRAMED_ANIMATION_CURVE_H_
OLDNEW
« no previous file with comments | « cc/animation/element_animations.cc ('k') | cc/animation/keyframed_animation_curve.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698