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

Side by Side Diff: ui/compositor/layer_animation_element.cc

Issue 667923002: Standardize usage of virtual/override/final in ui/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 | « ui/compositor/layer.cc ('k') | ui/compositor/layer_animation_observer.h » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "ui/compositor/layer_animation_element.h" 5 #include "ui/compositor/layer_animation_element.h"
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "cc/animation/animation.h" 8 #include "cc/animation/animation.h"
9 #include "cc/animation/animation_id_provider.h" 9 #include "cc/animation/animation_id_provider.h"
10 #include "ui/compositor/float_animation_curve_adapter.h" 10 #include "ui/compositor/float_animation_curve_adapter.h"
(...skipping 14 matching lines...) Expand all
25 const int kSlowDurationScaleMultiplier = 4; 25 const int kSlowDurationScaleMultiplier = 4;
26 const int kFastDurationScaleDivisor = 4; 26 const int kFastDurationScaleDivisor = 4;
27 const int kNonZeroDurationScaleDivisor = 20; 27 const int kNonZeroDurationScaleDivisor = 20;
28 28
29 // Pause ----------------------------------------------------------------------- 29 // Pause -----------------------------------------------------------------------
30 class Pause : public LayerAnimationElement { 30 class Pause : public LayerAnimationElement {
31 public: 31 public:
32 Pause(AnimatableProperties properties, base::TimeDelta duration) 32 Pause(AnimatableProperties properties, base::TimeDelta duration)
33 : LayerAnimationElement(properties, duration) { 33 : LayerAnimationElement(properties, duration) {
34 } 34 }
35 virtual ~Pause() {} 35 ~Pause() override {}
36 36
37 private: 37 private:
38 virtual void OnStart(LayerAnimationDelegate* delegate) override {} 38 void OnStart(LayerAnimationDelegate* delegate) override {}
39 virtual bool OnProgress(double t, 39 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
40 LayerAnimationDelegate* delegate) override {
41 return false; 40 return false;
42 } 41 }
43 virtual void OnGetTarget(TargetValue* target) const override {} 42 void OnGetTarget(TargetValue* target) const override {}
44 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 43 void OnAbort(LayerAnimationDelegate* delegate) override {}
45 44
46 DISALLOW_COPY_AND_ASSIGN(Pause); 45 DISALLOW_COPY_AND_ASSIGN(Pause);
47 }; 46 };
48 47
49 // TransformTransition --------------------------------------------------------- 48 // TransformTransition ---------------------------------------------------------
50 49
51 class TransformTransition : public LayerAnimationElement { 50 class TransformTransition : public LayerAnimationElement {
52 public: 51 public:
53 TransformTransition(const gfx::Transform& target, base::TimeDelta duration) 52 TransformTransition(const gfx::Transform& target, base::TimeDelta duration)
54 : LayerAnimationElement(TRANSFORM, duration), 53 : LayerAnimationElement(TRANSFORM, duration),
55 target_(target) { 54 target_(target) {
56 } 55 }
57 virtual ~TransformTransition() {} 56 ~TransformTransition() override {}
58 57
59 protected: 58 protected:
60 virtual void OnStart(LayerAnimationDelegate* delegate) override { 59 void OnStart(LayerAnimationDelegate* delegate) override {
61 start_ = delegate->GetTransformForAnimation(); 60 start_ = delegate->GetTransformForAnimation();
62 } 61 }
63 62
64 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 63 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
65 delegate->SetTransformFromAnimation( 64 delegate->SetTransformFromAnimation(
66 gfx::Tween::TransformValueBetween(t, start_, target_)); 65 gfx::Tween::TransformValueBetween(t, start_, target_));
67 return true; 66 return true;
68 } 67 }
69 68
70 virtual void OnGetTarget(TargetValue* target) const override { 69 void OnGetTarget(TargetValue* target) const override {
71 target->transform = target_; 70 target->transform = target_;
72 } 71 }
73 72
74 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 73 void OnAbort(LayerAnimationDelegate* delegate) override {}
75 74
76 private: 75 private:
77 gfx::Transform start_; 76 gfx::Transform start_;
78 const gfx::Transform target_; 77 const gfx::Transform target_;
79 78
80 DISALLOW_COPY_AND_ASSIGN(TransformTransition); 79 DISALLOW_COPY_AND_ASSIGN(TransformTransition);
81 }; 80 };
82 81
83 // InterpolatedTransformTransition --------------------------------------------- 82 // InterpolatedTransformTransition ---------------------------------------------
84 83
85 class InterpolatedTransformTransition : public LayerAnimationElement { 84 class InterpolatedTransformTransition : public LayerAnimationElement {
86 public: 85 public:
87 InterpolatedTransformTransition(InterpolatedTransform* interpolated_transform, 86 InterpolatedTransformTransition(InterpolatedTransform* interpolated_transform,
88 base::TimeDelta duration) 87 base::TimeDelta duration)
89 : LayerAnimationElement(TRANSFORM, duration), 88 : LayerAnimationElement(TRANSFORM, duration),
90 interpolated_transform_(interpolated_transform) { 89 interpolated_transform_(interpolated_transform) {
91 } 90 }
92 virtual ~InterpolatedTransformTransition() {} 91 ~InterpolatedTransformTransition() override {}
93 92
94 protected: 93 protected:
95 virtual void OnStart(LayerAnimationDelegate* delegate) override { 94 void OnStart(LayerAnimationDelegate* delegate) override {}
96 }
97 95
98 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 96 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
99 delegate->SetTransformFromAnimation( 97 delegate->SetTransformFromAnimation(
100 interpolated_transform_->Interpolate(static_cast<float>(t))); 98 interpolated_transform_->Interpolate(static_cast<float>(t)));
101 return true; 99 return true;
102 } 100 }
103 101
104 virtual void OnGetTarget(TargetValue* target) const override { 102 void OnGetTarget(TargetValue* target) const override {
105 target->transform = interpolated_transform_->Interpolate(1.0f); 103 target->transform = interpolated_transform_->Interpolate(1.0f);
106 } 104 }
107 105
108 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 106 void OnAbort(LayerAnimationDelegate* delegate) override {}
109 107
110 private: 108 private:
111 scoped_ptr<InterpolatedTransform> interpolated_transform_; 109 scoped_ptr<InterpolatedTransform> interpolated_transform_;
112 110
113 DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformTransition); 111 DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformTransition);
114 }; 112 };
115 113
116 // BoundsTransition ------------------------------------------------------------ 114 // BoundsTransition ------------------------------------------------------------
117 115
118 class BoundsTransition : public LayerAnimationElement { 116 class BoundsTransition : public LayerAnimationElement {
119 public: 117 public:
120 BoundsTransition(const gfx::Rect& target, base::TimeDelta duration) 118 BoundsTransition(const gfx::Rect& target, base::TimeDelta duration)
121 : LayerAnimationElement(BOUNDS, duration), 119 : LayerAnimationElement(BOUNDS, duration),
122 target_(target) { 120 target_(target) {
123 } 121 }
124 virtual ~BoundsTransition() {} 122 ~BoundsTransition() override {}
125 123
126 protected: 124 protected:
127 virtual void OnStart(LayerAnimationDelegate* delegate) override { 125 void OnStart(LayerAnimationDelegate* delegate) override {
128 start_ = delegate->GetBoundsForAnimation(); 126 start_ = delegate->GetBoundsForAnimation();
129 } 127 }
130 128
131 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 129 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
132 delegate->SetBoundsFromAnimation( 130 delegate->SetBoundsFromAnimation(
133 gfx::Tween::RectValueBetween(t, start_, target_)); 131 gfx::Tween::RectValueBetween(t, start_, target_));
134 return true; 132 return true;
135 } 133 }
136 134
137 virtual void OnGetTarget(TargetValue* target) const override { 135 void OnGetTarget(TargetValue* target) const override {
138 target->bounds = target_; 136 target->bounds = target_;
139 } 137 }
140 138
141 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 139 void OnAbort(LayerAnimationDelegate* delegate) override {}
142 140
143 private: 141 private:
144 gfx::Rect start_; 142 gfx::Rect start_;
145 const gfx::Rect target_; 143 const gfx::Rect target_;
146 144
147 DISALLOW_COPY_AND_ASSIGN(BoundsTransition); 145 DISALLOW_COPY_AND_ASSIGN(BoundsTransition);
148 }; 146 };
149 147
150 // OpacityTransition ----------------------------------------------------------- 148 // OpacityTransition -----------------------------------------------------------
151 149
152 class OpacityTransition : public LayerAnimationElement { 150 class OpacityTransition : public LayerAnimationElement {
153 public: 151 public:
154 OpacityTransition(float target, base::TimeDelta duration) 152 OpacityTransition(float target, base::TimeDelta duration)
155 : LayerAnimationElement(OPACITY, duration), 153 : LayerAnimationElement(OPACITY, duration),
156 start_(0.0f), 154 start_(0.0f),
157 target_(target) { 155 target_(target) {
158 } 156 }
159 virtual ~OpacityTransition() {} 157 ~OpacityTransition() override {}
160 158
161 protected: 159 protected:
162 virtual void OnStart(LayerAnimationDelegate* delegate) override { 160 void OnStart(LayerAnimationDelegate* delegate) override {
163 start_ = delegate->GetOpacityForAnimation(); 161 start_ = delegate->GetOpacityForAnimation();
164 } 162 }
165 163
166 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 164 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
167 delegate->SetOpacityFromAnimation( 165 delegate->SetOpacityFromAnimation(
168 gfx::Tween::FloatValueBetween(t, start_, target_)); 166 gfx::Tween::FloatValueBetween(t, start_, target_));
169 return true; 167 return true;
170 } 168 }
171 169
172 virtual void OnGetTarget(TargetValue* target) const override { 170 void OnGetTarget(TargetValue* target) const override {
173 target->opacity = target_; 171 target->opacity = target_;
174 } 172 }
175 173
176 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 174 void OnAbort(LayerAnimationDelegate* delegate) override {}
177 175
178 private: 176 private:
179 float start_; 177 float start_;
180 const float target_; 178 const float target_;
181 179
182 DISALLOW_COPY_AND_ASSIGN(OpacityTransition); 180 DISALLOW_COPY_AND_ASSIGN(OpacityTransition);
183 }; 181 };
184 182
185 // VisibilityTransition -------------------------------------------------------- 183 // VisibilityTransition --------------------------------------------------------
186 184
187 class VisibilityTransition : public LayerAnimationElement { 185 class VisibilityTransition : public LayerAnimationElement {
188 public: 186 public:
189 VisibilityTransition(bool target, base::TimeDelta duration) 187 VisibilityTransition(bool target, base::TimeDelta duration)
190 : LayerAnimationElement(VISIBILITY, duration), 188 : LayerAnimationElement(VISIBILITY, duration),
191 start_(false), 189 start_(false),
192 target_(target) { 190 target_(target) {
193 } 191 }
194 virtual ~VisibilityTransition() {} 192 ~VisibilityTransition() override {}
195 193
196 protected: 194 protected:
197 virtual void OnStart(LayerAnimationDelegate* delegate) override { 195 void OnStart(LayerAnimationDelegate* delegate) override {
198 start_ = delegate->GetVisibilityForAnimation(); 196 start_ = delegate->GetVisibilityForAnimation();
199 } 197 }
200 198
201 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 199 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
202 delegate->SetVisibilityFromAnimation(t == 1.0 ? target_ : start_); 200 delegate->SetVisibilityFromAnimation(t == 1.0 ? target_ : start_);
203 return t == 1.0; 201 return t == 1.0;
204 } 202 }
205 203
206 virtual void OnGetTarget(TargetValue* target) const override { 204 void OnGetTarget(TargetValue* target) const override {
207 target->visibility = target_; 205 target->visibility = target_;
208 } 206 }
209 207
210 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 208 void OnAbort(LayerAnimationDelegate* delegate) override {}
211 209
212 private: 210 private:
213 bool start_; 211 bool start_;
214 const bool target_; 212 const bool target_;
215 213
216 DISALLOW_COPY_AND_ASSIGN(VisibilityTransition); 214 DISALLOW_COPY_AND_ASSIGN(VisibilityTransition);
217 }; 215 };
218 216
219 // BrightnessTransition -------------------------------------------------------- 217 // BrightnessTransition --------------------------------------------------------
220 218
221 class BrightnessTransition : public LayerAnimationElement { 219 class BrightnessTransition : public LayerAnimationElement {
222 public: 220 public:
223 BrightnessTransition(float target, base::TimeDelta duration) 221 BrightnessTransition(float target, base::TimeDelta duration)
224 : LayerAnimationElement(BRIGHTNESS, duration), 222 : LayerAnimationElement(BRIGHTNESS, duration),
225 start_(0.0f), 223 start_(0.0f),
226 target_(target) { 224 target_(target) {
227 } 225 }
228 virtual ~BrightnessTransition() {} 226 ~BrightnessTransition() override {}
229 227
230 protected: 228 protected:
231 virtual void OnStart(LayerAnimationDelegate* delegate) override { 229 void OnStart(LayerAnimationDelegate* delegate) override {
232 start_ = delegate->GetBrightnessForAnimation(); 230 start_ = delegate->GetBrightnessForAnimation();
233 } 231 }
234 232
235 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 233 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
236 delegate->SetBrightnessFromAnimation( 234 delegate->SetBrightnessFromAnimation(
237 gfx::Tween::FloatValueBetween(t, start_, target_)); 235 gfx::Tween::FloatValueBetween(t, start_, target_));
238 return true; 236 return true;
239 } 237 }
240 238
241 virtual void OnGetTarget(TargetValue* target) const override { 239 void OnGetTarget(TargetValue* target) const override {
242 target->brightness = target_; 240 target->brightness = target_;
243 } 241 }
244 242
245 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 243 void OnAbort(LayerAnimationDelegate* delegate) override {}
246 244
247 private: 245 private:
248 float start_; 246 float start_;
249 const float target_; 247 const float target_;
250 248
251 DISALLOW_COPY_AND_ASSIGN(BrightnessTransition); 249 DISALLOW_COPY_AND_ASSIGN(BrightnessTransition);
252 }; 250 };
253 251
254 // GrayscaleTransition --------------------------------------------------------- 252 // GrayscaleTransition ---------------------------------------------------------
255 253
256 class GrayscaleTransition : public LayerAnimationElement { 254 class GrayscaleTransition : public LayerAnimationElement {
257 public: 255 public:
258 GrayscaleTransition(float target, base::TimeDelta duration) 256 GrayscaleTransition(float target, base::TimeDelta duration)
259 : LayerAnimationElement(GRAYSCALE, duration), 257 : LayerAnimationElement(GRAYSCALE, duration),
260 start_(0.0f), 258 start_(0.0f),
261 target_(target) { 259 target_(target) {
262 } 260 }
263 virtual ~GrayscaleTransition() {} 261 ~GrayscaleTransition() override {}
264 262
265 protected: 263 protected:
266 virtual void OnStart(LayerAnimationDelegate* delegate) override { 264 void OnStart(LayerAnimationDelegate* delegate) override {
267 start_ = delegate->GetGrayscaleForAnimation(); 265 start_ = delegate->GetGrayscaleForAnimation();
268 } 266 }
269 267
270 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 268 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
271 delegate->SetGrayscaleFromAnimation( 269 delegate->SetGrayscaleFromAnimation(
272 gfx::Tween::FloatValueBetween(t, start_, target_)); 270 gfx::Tween::FloatValueBetween(t, start_, target_));
273 return true; 271 return true;
274 } 272 }
275 273
276 virtual void OnGetTarget(TargetValue* target) const override { 274 void OnGetTarget(TargetValue* target) const override {
277 target->grayscale = target_; 275 target->grayscale = target_;
278 } 276 }
279 277
280 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 278 void OnAbort(LayerAnimationDelegate* delegate) override {}
281 279
282 private: 280 private:
283 float start_; 281 float start_;
284 const float target_; 282 const float target_;
285 283
286 DISALLOW_COPY_AND_ASSIGN(GrayscaleTransition); 284 DISALLOW_COPY_AND_ASSIGN(GrayscaleTransition);
287 }; 285 };
288 286
289 // ColorTransition ------------------------------------------------------------- 287 // ColorTransition -------------------------------------------------------------
290 288
291 class ColorTransition : public LayerAnimationElement { 289 class ColorTransition : public LayerAnimationElement {
292 public: 290 public:
293 ColorTransition(SkColor target, base::TimeDelta duration) 291 ColorTransition(SkColor target, base::TimeDelta duration)
294 : LayerAnimationElement(COLOR, duration), 292 : LayerAnimationElement(COLOR, duration),
295 start_(SK_ColorBLACK), 293 start_(SK_ColorBLACK),
296 target_(target) { 294 target_(target) {
297 } 295 }
298 virtual ~ColorTransition() {} 296 ~ColorTransition() override {}
299 297
300 protected: 298 protected:
301 virtual void OnStart(LayerAnimationDelegate* delegate) override { 299 void OnStart(LayerAnimationDelegate* delegate) override {
302 start_ = delegate->GetColorForAnimation(); 300 start_ = delegate->GetColorForAnimation();
303 } 301 }
304 302
305 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) override { 303 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
306 delegate->SetColorFromAnimation( 304 delegate->SetColorFromAnimation(
307 gfx::Tween::ColorValueBetween(t, start_, target_)); 305 gfx::Tween::ColorValueBetween(t, start_, target_));
308 return true; 306 return true;
309 } 307 }
310 308
311 virtual void OnGetTarget(TargetValue* target) const override { 309 void OnGetTarget(TargetValue* target) const override {
312 target->color = target_; 310 target->color = target_;
313 } 311 }
314 312
315 virtual void OnAbort(LayerAnimationDelegate* delegate) override {} 313 void OnAbort(LayerAnimationDelegate* delegate) override {}
316 314
317 private: 315 private:
318 SkColor start_; 316 SkColor start_;
319 const SkColor target_; 317 const SkColor target_;
320 318
321 DISALLOW_COPY_AND_ASSIGN(ColorTransition); 319 DISALLOW_COPY_AND_ASSIGN(ColorTransition);
322 }; 320 };
323 321
324 // ThreadedLayerAnimationElement ----------------------------------------------- 322 // ThreadedLayerAnimationElement -----------------------------------------------
325 323
326 class ThreadedLayerAnimationElement : public LayerAnimationElement { 324 class ThreadedLayerAnimationElement : public LayerAnimationElement {
327 public: 325 public:
328 ThreadedLayerAnimationElement(AnimatableProperties properties, 326 ThreadedLayerAnimationElement(AnimatableProperties properties,
329 base::TimeDelta duration) 327 base::TimeDelta duration)
330 : LayerAnimationElement(properties, duration) { 328 : LayerAnimationElement(properties, duration) {
331 } 329 }
332 virtual ~ThreadedLayerAnimationElement() {} 330 ~ThreadedLayerAnimationElement() override {}
333 331
334 virtual bool IsThreaded() const override { 332 bool IsThreaded() const override { return (duration() != base::TimeDelta()); }
335 return (duration() != base::TimeDelta());
336 }
337 333
338 protected: 334 protected:
339 explicit ThreadedLayerAnimationElement(const LayerAnimationElement& element) 335 explicit ThreadedLayerAnimationElement(const LayerAnimationElement& element)
340 : LayerAnimationElement(element) { 336 : LayerAnimationElement(element) {
341 } 337 }
342 338
343 virtual bool OnProgress(double t, 339 bool OnProgress(double t, LayerAnimationDelegate* delegate) override {
344 LayerAnimationDelegate* delegate) override {
345 if (t < 1.0) 340 if (t < 1.0)
346 return false; 341 return false;
347 342
348 if (Started()) { 343 if (Started()) {
349 delegate->RemoveThreadedAnimation(animation_id()); 344 delegate->RemoveThreadedAnimation(animation_id());
350 } 345 }
351 346
352 OnEnd(delegate); 347 OnEnd(delegate);
353 return true; 348 return true;
354 } 349 }
355 350
356 virtual void OnAbort(LayerAnimationDelegate* delegate) override { 351 void OnAbort(LayerAnimationDelegate* delegate) override {
357 if (delegate && Started()) { 352 if (delegate && Started()) {
358 delegate->RemoveThreadedAnimation(animation_id()); 353 delegate->RemoveThreadedAnimation(animation_id());
359 } 354 }
360 } 355 }
361 356
362 virtual void RequestEffectiveStart( 357 void RequestEffectiveStart(LayerAnimationDelegate* delegate) override {
363 LayerAnimationDelegate* delegate) override {
364 DCHECK(animation_group_id()); 358 DCHECK(animation_group_id());
365 if (duration() == base::TimeDelta()) { 359 if (duration() == base::TimeDelta()) {
366 set_effective_start_time(requested_start_time()); 360 set_effective_start_time(requested_start_time());
367 return; 361 return;
368 } 362 }
369 set_effective_start_time(base::TimeTicks()); 363 set_effective_start_time(base::TimeTicks());
370 scoped_ptr<cc::Animation> animation = CreateCCAnimation(); 364 scoped_ptr<cc::Animation> animation = CreateCCAnimation();
371 animation->set_needs_synchronized_start_time(true); 365 animation->set_needs_synchronized_start_time(true);
372 delegate->AddThreadedAnimation(animation.Pass()); 366 delegate->AddThreadedAnimation(animation.Pass());
373 } 367 }
374 368
375 virtual void OnEnd(LayerAnimationDelegate* delegate) = 0; 369 virtual void OnEnd(LayerAnimationDelegate* delegate) = 0;
376 370
377 virtual scoped_ptr<cc::Animation> CreateCCAnimation() = 0; 371 virtual scoped_ptr<cc::Animation> CreateCCAnimation() = 0;
378 372
379 private: 373 private:
380 DISALLOW_COPY_AND_ASSIGN(ThreadedLayerAnimationElement); 374 DISALLOW_COPY_AND_ASSIGN(ThreadedLayerAnimationElement);
381 }; 375 };
382 376
383 // ThreadedOpacityTransition --------------------------------------------------- 377 // ThreadedOpacityTransition ---------------------------------------------------
384 378
385 class ThreadedOpacityTransition : public ThreadedLayerAnimationElement { 379 class ThreadedOpacityTransition : public ThreadedLayerAnimationElement {
386 public: 380 public:
387 ThreadedOpacityTransition(float target, base::TimeDelta duration) 381 ThreadedOpacityTransition(float target, base::TimeDelta duration)
388 : ThreadedLayerAnimationElement(OPACITY, duration), 382 : ThreadedLayerAnimationElement(OPACITY, duration),
389 start_(0.0f), 383 start_(0.0f),
390 target_(target) { 384 target_(target) {
391 } 385 }
392 virtual ~ThreadedOpacityTransition() {} 386 ~ThreadedOpacityTransition() override {}
393 387
394 protected: 388 protected:
395 virtual void OnStart(LayerAnimationDelegate* delegate) override { 389 void OnStart(LayerAnimationDelegate* delegate) override {
396 start_ = delegate->GetOpacityForAnimation(); 390 start_ = delegate->GetOpacityForAnimation();
397 } 391 }
398 392
399 virtual void OnAbort(LayerAnimationDelegate* delegate) override { 393 void OnAbort(LayerAnimationDelegate* delegate) override {
400 if (delegate && Started()) { 394 if (delegate && Started()) {
401 ThreadedLayerAnimationElement::OnAbort(delegate); 395 ThreadedLayerAnimationElement::OnAbort(delegate);
402 delegate->SetOpacityFromAnimation(gfx::Tween::FloatValueBetween( 396 delegate->SetOpacityFromAnimation(gfx::Tween::FloatValueBetween(
403 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()), 397 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()),
404 start_, 398 start_,
405 target_)); 399 target_));
406 } 400 }
407 } 401 }
408 402
409 virtual void OnEnd(LayerAnimationDelegate* delegate) override { 403 void OnEnd(LayerAnimationDelegate* delegate) override {
410 delegate->SetOpacityFromAnimation(target_); 404 delegate->SetOpacityFromAnimation(target_);
411 } 405 }
412 406
413 virtual scoped_ptr<cc::Animation> CreateCCAnimation() override { 407 scoped_ptr<cc::Animation> CreateCCAnimation() override {
414 scoped_ptr<cc::AnimationCurve> animation_curve( 408 scoped_ptr<cc::AnimationCurve> animation_curve(
415 new FloatAnimationCurveAdapter(tween_type(), 409 new FloatAnimationCurveAdapter(tween_type(),
416 start_, 410 start_,
417 target_, 411 target_,
418 duration())); 412 duration()));
419 scoped_ptr<cc::Animation> animation( 413 scoped_ptr<cc::Animation> animation(
420 cc::Animation::Create(animation_curve.Pass(), 414 cc::Animation::Create(animation_curve.Pass(),
421 animation_id(), 415 animation_id(),
422 animation_group_id(), 416 animation_group_id(),
423 cc::Animation::Opacity)); 417 cc::Animation::Opacity));
424 return animation.Pass(); 418 return animation.Pass();
425 } 419 }
426 420
427 virtual void OnGetTarget(TargetValue* target) const override { 421 void OnGetTarget(TargetValue* target) const override {
428 target->opacity = target_; 422 target->opacity = target_;
429 } 423 }
430 424
431 private: 425 private:
432 float start_; 426 float start_;
433 const float target_; 427 const float target_;
434 428
435 DISALLOW_COPY_AND_ASSIGN(ThreadedOpacityTransition); 429 DISALLOW_COPY_AND_ASSIGN(ThreadedOpacityTransition);
436 }; 430 };
437 431
438 // ThreadedTransformTransition ------------------------------------------------- 432 // ThreadedTransformTransition -------------------------------------------------
439 433
440 class ThreadedTransformTransition : public ThreadedLayerAnimationElement { 434 class ThreadedTransformTransition : public ThreadedLayerAnimationElement {
441 public: 435 public:
442 ThreadedTransformTransition(const gfx::Transform& target, 436 ThreadedTransformTransition(const gfx::Transform& target,
443 base::TimeDelta duration) 437 base::TimeDelta duration)
444 : ThreadedLayerAnimationElement(TRANSFORM, duration), 438 : ThreadedLayerAnimationElement(TRANSFORM, duration),
445 target_(target) { 439 target_(target) {
446 } 440 }
447 virtual ~ThreadedTransformTransition() {} 441 ~ThreadedTransformTransition() override {}
448 442
449 protected: 443 protected:
450 virtual void OnStart(LayerAnimationDelegate* delegate) override { 444 void OnStart(LayerAnimationDelegate* delegate) override {
451 start_ = delegate->GetTransformForAnimation(); 445 start_ = delegate->GetTransformForAnimation();
452 } 446 }
453 447
454 virtual void OnAbort(LayerAnimationDelegate* delegate) override { 448 void OnAbort(LayerAnimationDelegate* delegate) override {
455 if (delegate && Started()) { 449 if (delegate && Started()) {
456 ThreadedLayerAnimationElement::OnAbort(delegate); 450 ThreadedLayerAnimationElement::OnAbort(delegate);
457 delegate->SetTransformFromAnimation(gfx::Tween::TransformValueBetween( 451 delegate->SetTransformFromAnimation(gfx::Tween::TransformValueBetween(
458 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()), 452 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()),
459 start_, 453 start_,
460 target_)); 454 target_));
461 } 455 }
462 } 456 }
463 457
464 virtual void OnEnd(LayerAnimationDelegate* delegate) override { 458 void OnEnd(LayerAnimationDelegate* delegate) override {
465 delegate->SetTransformFromAnimation(target_); 459 delegate->SetTransformFromAnimation(target_);
466 } 460 }
467 461
468 virtual scoped_ptr<cc::Animation> CreateCCAnimation() override { 462 scoped_ptr<cc::Animation> CreateCCAnimation() override {
469 scoped_ptr<cc::AnimationCurve> animation_curve( 463 scoped_ptr<cc::AnimationCurve> animation_curve(
470 new TransformAnimationCurveAdapter(tween_type(), 464 new TransformAnimationCurveAdapter(tween_type(),
471 start_, 465 start_,
472 target_, 466 target_,
473 duration())); 467 duration()));
474 scoped_ptr<cc::Animation> animation( 468 scoped_ptr<cc::Animation> animation(
475 cc::Animation::Create(animation_curve.Pass(), 469 cc::Animation::Create(animation_curve.Pass(),
476 animation_id(), 470 animation_id(),
477 animation_group_id(), 471 animation_group_id(),
478 cc::Animation::Transform)); 472 cc::Animation::Transform));
479 return animation.Pass(); 473 return animation.Pass();
480 } 474 }
481 475
482 virtual void OnGetTarget(TargetValue* target) const override { 476 void OnGetTarget(TargetValue* target) const override {
483 target->transform = target_; 477 target->transform = target_;
484 } 478 }
485 479
486 private: 480 private:
487 gfx::Transform start_; 481 gfx::Transform start_;
488 const gfx::Transform target_; 482 const gfx::Transform target_;
489 483
490 DISALLOW_COPY_AND_ASSIGN(ThreadedTransformTransition); 484 DISALLOW_COPY_AND_ASSIGN(ThreadedTransformTransition);
491 }; 485 };
492 486
493 // InverseTransformTransision -------------------------------------------------- 487 // InverseTransformTransision --------------------------------------------------
494 488
495 class InverseTransformTransition : public ThreadedLayerAnimationElement { 489 class InverseTransformTransition : public ThreadedLayerAnimationElement {
496 public: 490 public:
497 InverseTransformTransition(const gfx::Transform& base_transform, 491 InverseTransformTransition(const gfx::Transform& base_transform,
498 const LayerAnimationElement* uninverted_transition) 492 const LayerAnimationElement* uninverted_transition)
499 : ThreadedLayerAnimationElement(*uninverted_transition), 493 : ThreadedLayerAnimationElement(*uninverted_transition),
500 base_transform_(base_transform), 494 base_transform_(base_transform),
501 uninverted_transition_( 495 uninverted_transition_(
502 CheckAndCast<const ThreadedTransformTransition*>( 496 CheckAndCast<const ThreadedTransformTransition*>(
503 uninverted_transition)) { 497 uninverted_transition)) {
504 } 498 }
505 virtual ~InverseTransformTransition() {} 499 ~InverseTransformTransition() override {}
506 500
507 static InverseTransformTransition* Clone(const LayerAnimationElement* other) { 501 static InverseTransformTransition* Clone(const LayerAnimationElement* other) {
508 const InverseTransformTransition* other_inverse = 502 const InverseTransformTransition* other_inverse =
509 CheckAndCast<const InverseTransformTransition*>(other); 503 CheckAndCast<const InverseTransformTransition*>(other);
510 return new InverseTransformTransition( 504 return new InverseTransformTransition(
511 other_inverse->base_transform_, other_inverse->uninverted_transition_); 505 other_inverse->base_transform_, other_inverse->uninverted_transition_);
512 } 506 }
513 507
514 protected: 508 protected:
515 virtual void OnStart(LayerAnimationDelegate* delegate) override { 509 void OnStart(LayerAnimationDelegate* delegate) override {
516 gfx::Transform start(delegate->GetTransformForAnimation()); 510 gfx::Transform start(delegate->GetTransformForAnimation());
517 effective_start_ = base_transform_ * start; 511 effective_start_ = base_transform_ * start;
518 512
519 TargetValue target; 513 TargetValue target;
520 uninverted_transition_->GetTargetValue(&target); 514 uninverted_transition_->GetTargetValue(&target);
521 base_target_ = target.transform; 515 base_target_ = target.transform;
522 516
523 set_tween_type(uninverted_transition_->tween_type()); 517 set_tween_type(uninverted_transition_->tween_type());
524 518
525 TransformAnimationCurveAdapter base_curve(tween_type(), 519 TransformAnimationCurveAdapter base_curve(tween_type(),
526 base_transform_, 520 base_transform_,
527 base_target_, 521 base_target_,
528 duration()); 522 duration());
529 523
530 animation_curve_.reset(new InverseTransformCurveAdapter( 524 animation_curve_.reset(new InverseTransformCurveAdapter(
531 base_curve, start, duration())); 525 base_curve, start, duration()));
532 computed_target_transform_ = ComputeWithBaseTransform(effective_start_, 526 computed_target_transform_ = ComputeWithBaseTransform(effective_start_,
533 base_target_); 527 base_target_);
534 } 528 }
535 529
536 virtual void OnAbort(LayerAnimationDelegate* delegate) override { 530 void OnAbort(LayerAnimationDelegate* delegate) override {
537 if (delegate && Started()) { 531 if (delegate && Started()) {
538 ThreadedLayerAnimationElement::OnAbort(delegate); 532 ThreadedLayerAnimationElement::OnAbort(delegate);
539 delegate->SetTransformFromAnimation(ComputeCurrentTransform()); 533 delegate->SetTransformFromAnimation(ComputeCurrentTransform());
540 } 534 }
541 } 535 }
542 536
543 virtual void OnEnd(LayerAnimationDelegate* delegate) override { 537 void OnEnd(LayerAnimationDelegate* delegate) override {
544 delegate->SetTransformFromAnimation(computed_target_transform_); 538 delegate->SetTransformFromAnimation(computed_target_transform_);
545 } 539 }
546 540
547 virtual scoped_ptr<cc::Animation> CreateCCAnimation() override { 541 scoped_ptr<cc::Animation> CreateCCAnimation() override {
548 scoped_ptr<cc::Animation> animation( 542 scoped_ptr<cc::Animation> animation(
549 cc::Animation::Create(animation_curve_->Clone(), 543 cc::Animation::Create(animation_curve_->Clone(),
550 animation_id(), 544 animation_id(),
551 animation_group_id(), 545 animation_group_id(),
552 cc::Animation::Transform)); 546 cc::Animation::Transform));
553 return animation.Pass(); 547 return animation.Pass();
554 } 548 }
555 549
556 virtual void OnGetTarget(TargetValue* target) const override { 550 void OnGetTarget(TargetValue* target) const override {
557 target->transform = computed_target_transform_; 551 target->transform = computed_target_transform_;
558 } 552 }
559 553
560 private: 554 private:
561 gfx::Transform ComputeCurrentTransform() const { 555 gfx::Transform ComputeCurrentTransform() const {
562 gfx::Transform base_current = gfx::Tween::TransformValueBetween( 556 gfx::Transform base_current = gfx::Tween::TransformValueBetween(
563 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()), 557 gfx::Tween::CalculateValue(tween_type(), last_progressed_fraction()),
564 base_transform_, 558 base_transform_,
565 base_target_); 559 base_target_);
566 return ComputeWithBaseTransform(effective_start_, base_current); 560 return ComputeWithBaseTransform(effective_start_, base_current);
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 } 839 }
846 840
847 // static 841 // static
848 LayerAnimationElement* LayerAnimationElement::CreateColorElement( 842 LayerAnimationElement* LayerAnimationElement::CreateColorElement(
849 SkColor color, 843 SkColor color,
850 base::TimeDelta duration) { 844 base::TimeDelta duration) {
851 return new ColorTransition(color, duration); 845 return new ColorTransition(color, duration);
852 } 846 }
853 847
854 } // namespace ui 848 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/layer.cc ('k') | ui/compositor/layer_animation_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698