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

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

Issue 134453004: Use a bitfield to store animatable properties. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix another win build error (signed/unsigned comp). Created 6 years, 11 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 | Annotate | Revision Log
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 11 matching lines...) Expand all
22 22
23 // The factor by which duration is scaled up or down when 23 // The factor by which duration is scaled up or down when
24 // ScopedAnimationDurationScaleMode::duration_scale_mode() is SLOW_DURATION or 24 // ScopedAnimationDurationScaleMode::duration_scale_mode() is SLOW_DURATION or
25 // FAST_DURATION. 25 // FAST_DURATION.
26 const int kSlowDurationScaleFactor = 4; 26 const int kSlowDurationScaleFactor = 4;
27 const int kFastDurationScaleFactor = 4; 27 const int kFastDurationScaleFactor = 4;
28 28
29 // Pause ----------------------------------------------------------------------- 29 // Pause -----------------------------------------------------------------------
30 class Pause : public LayerAnimationElement { 30 class Pause : public LayerAnimationElement {
31 public: 31 public:
32 Pause(const 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 virtual ~Pause() {}
36 36
37 private: 37 private:
38 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {} 38 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {}
39 virtual bool OnProgress(double t, 39 virtual bool OnProgress(double t,
40 LayerAnimationDelegate* delegate) OVERRIDE { 40 LayerAnimationDelegate* delegate) OVERRIDE {
41 return false; 41 return false;
42 } 42 }
43 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {} 43 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {}
44 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 44 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
45 45
46 DISALLOW_COPY_AND_ASSIGN(Pause); 46 DISALLOW_COPY_AND_ASSIGN(Pause);
47 }; 47 };
48 48
49 // TransformTransition --------------------------------------------------------- 49 // TransformTransition ---------------------------------------------------------
50 50
51 class TransformTransition : public LayerAnimationElement { 51 class TransformTransition : public LayerAnimationElement {
52 public: 52 public:
53 TransformTransition(const gfx::Transform& target, base::TimeDelta duration) 53 TransformTransition(const gfx::Transform& target, base::TimeDelta duration)
54 : LayerAnimationElement(GetProperties(), duration), 54 : LayerAnimationElement(TRANSFORM, duration),
55 target_(target) { 55 target_(target) {
56 } 56 }
57 virtual ~TransformTransition() {} 57 virtual ~TransformTransition() {}
58 58
59 protected: 59 protected:
60 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 60 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
61 start_ = delegate->GetTransformForAnimation(); 61 start_ = delegate->GetTransformForAnimation();
62 } 62 }
63 63
64 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 64 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
65 delegate->SetTransformFromAnimation( 65 delegate->SetTransformFromAnimation(
66 gfx::Tween::TransformValueBetween(t, start_, target_)); 66 gfx::Tween::TransformValueBetween(t, start_, target_));
67 return true; 67 return true;
68 } 68 }
69 69
70 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 70 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
71 target->transform = target_; 71 target->transform = target_;
72 } 72 }
73 73
74 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 74 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
75 75
76 private: 76 private:
77 static AnimatableProperties GetProperties() {
78 AnimatableProperties properties;
79 properties.insert(LayerAnimationElement::TRANSFORM);
80 return properties;
81 }
82
83 gfx::Transform start_; 77 gfx::Transform start_;
84 const gfx::Transform target_; 78 const gfx::Transform target_;
85 79
86 DISALLOW_COPY_AND_ASSIGN(TransformTransition); 80 DISALLOW_COPY_AND_ASSIGN(TransformTransition);
87 }; 81 };
88 82
89 // InterpolatedTransformTransition --------------------------------------------- 83 // InterpolatedTransformTransition ---------------------------------------------
90 84
91 class InterpolatedTransformTransition : public LayerAnimationElement { 85 class InterpolatedTransformTransition : public LayerAnimationElement {
92 public: 86 public:
93 InterpolatedTransformTransition(InterpolatedTransform* interpolated_transform, 87 InterpolatedTransformTransition(InterpolatedTransform* interpolated_transform,
94 base::TimeDelta duration) 88 base::TimeDelta duration)
95 : LayerAnimationElement(GetProperties(), duration), 89 : LayerAnimationElement(TRANSFORM, duration),
96 interpolated_transform_(interpolated_transform) { 90 interpolated_transform_(interpolated_transform) {
97 } 91 }
98 virtual ~InterpolatedTransformTransition() {} 92 virtual ~InterpolatedTransformTransition() {}
99 93
100 protected: 94 protected:
101 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 95 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
102 } 96 }
103 97
104 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 98 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
105 delegate->SetTransformFromAnimation( 99 delegate->SetTransformFromAnimation(
106 interpolated_transform_->Interpolate(static_cast<float>(t))); 100 interpolated_transform_->Interpolate(static_cast<float>(t)));
107 return true; 101 return true;
108 } 102 }
109 103
110 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 104 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
111 target->transform = interpolated_transform_->Interpolate(1.0f); 105 target->transform = interpolated_transform_->Interpolate(1.0f);
112 } 106 }
113 107
114 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 108 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
115 109
116 private: 110 private:
117 static AnimatableProperties GetProperties() {
118 AnimatableProperties properties;
119 properties.insert(LayerAnimationElement::TRANSFORM);
120 return properties;
121 }
122
123 scoped_ptr<InterpolatedTransform> interpolated_transform_; 111 scoped_ptr<InterpolatedTransform> interpolated_transform_;
124 112
125 DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformTransition); 113 DISALLOW_COPY_AND_ASSIGN(InterpolatedTransformTransition);
126 }; 114 };
127 115
128 // BoundsTransition ------------------------------------------------------------ 116 // BoundsTransition ------------------------------------------------------------
129 117
130 class BoundsTransition : public LayerAnimationElement { 118 class BoundsTransition : public LayerAnimationElement {
131 public: 119 public:
132 BoundsTransition(const gfx::Rect& target, base::TimeDelta duration) 120 BoundsTransition(const gfx::Rect& target, base::TimeDelta duration)
133 : LayerAnimationElement(GetProperties(), duration), 121 : LayerAnimationElement(BOUNDS, duration),
134 target_(target) { 122 target_(target) {
135 } 123 }
136 virtual ~BoundsTransition() {} 124 virtual ~BoundsTransition() {}
137 125
138 protected: 126 protected:
139 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 127 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
140 start_ = delegate->GetBoundsForAnimation(); 128 start_ = delegate->GetBoundsForAnimation();
141 } 129 }
142 130
143 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 131 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
144 delegate->SetBoundsFromAnimation( 132 delegate->SetBoundsFromAnimation(
145 gfx::Tween::RectValueBetween(t, start_, target_)); 133 gfx::Tween::RectValueBetween(t, start_, target_));
146 return true; 134 return true;
147 } 135 }
148 136
149 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 137 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
150 target->bounds = target_; 138 target->bounds = target_;
151 } 139 }
152 140
153 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 141 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
154 142
155 private: 143 private:
156 static AnimatableProperties GetProperties() {
157 AnimatableProperties properties;
158 properties.insert(LayerAnimationElement::BOUNDS);
159 return properties;
160 }
161
162 gfx::Rect start_; 144 gfx::Rect start_;
163 const gfx::Rect target_; 145 const gfx::Rect target_;
164 146
165 DISALLOW_COPY_AND_ASSIGN(BoundsTransition); 147 DISALLOW_COPY_AND_ASSIGN(BoundsTransition);
166 }; 148 };
167 149
168 // OpacityTransition ----------------------------------------------------------- 150 // OpacityTransition -----------------------------------------------------------
169 151
170 class OpacityTransition : public LayerAnimationElement { 152 class OpacityTransition : public LayerAnimationElement {
171 public: 153 public:
172 OpacityTransition(float target, base::TimeDelta duration) 154 OpacityTransition(float target, base::TimeDelta duration)
173 : LayerAnimationElement(GetProperties(), duration), 155 : LayerAnimationElement(OPACITY, duration),
174 start_(0.0f), 156 start_(0.0f),
175 target_(target) { 157 target_(target) {
176 } 158 }
177 virtual ~OpacityTransition() {} 159 virtual ~OpacityTransition() {}
178 160
179 protected: 161 protected:
180 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 162 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
181 start_ = delegate->GetOpacityForAnimation(); 163 start_ = delegate->GetOpacityForAnimation();
182 } 164 }
183 165
184 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 166 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
185 delegate->SetOpacityFromAnimation( 167 delegate->SetOpacityFromAnimation(
186 gfx::Tween::FloatValueBetween(t, start_, target_)); 168 gfx::Tween::FloatValueBetween(t, start_, target_));
187 return true; 169 return true;
188 } 170 }
189 171
190 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 172 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
191 target->opacity = target_; 173 target->opacity = target_;
192 } 174 }
193 175
194 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 176 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
195 177
196 private: 178 private:
197 static AnimatableProperties GetProperties() {
198 AnimatableProperties properties;
199 properties.insert(LayerAnimationElement::OPACITY);
200 return properties;
201 }
202
203 float start_; 179 float start_;
204 const float target_; 180 const float target_;
205 181
206 DISALLOW_COPY_AND_ASSIGN(OpacityTransition); 182 DISALLOW_COPY_AND_ASSIGN(OpacityTransition);
207 }; 183 };
208 184
209 // VisibilityTransition -------------------------------------------------------- 185 // VisibilityTransition --------------------------------------------------------
210 186
211 class VisibilityTransition : public LayerAnimationElement { 187 class VisibilityTransition : public LayerAnimationElement {
212 public: 188 public:
213 VisibilityTransition(bool target, base::TimeDelta duration) 189 VisibilityTransition(bool target, base::TimeDelta duration)
214 : LayerAnimationElement(GetProperties(), duration), 190 : LayerAnimationElement(VISIBILITY, duration),
215 start_(false), 191 start_(false),
216 target_(target) { 192 target_(target) {
217 } 193 }
218 virtual ~VisibilityTransition() {} 194 virtual ~VisibilityTransition() {}
219 195
220 protected: 196 protected:
221 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 197 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
222 start_ = delegate->GetVisibilityForAnimation(); 198 start_ = delegate->GetVisibilityForAnimation();
223 } 199 }
224 200
225 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 201 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
226 delegate->SetVisibilityFromAnimation(t == 1.0 ? target_ : start_); 202 delegate->SetVisibilityFromAnimation(t == 1.0 ? target_ : start_);
227 return t == 1.0; 203 return t == 1.0;
228 } 204 }
229 205
230 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 206 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
231 target->visibility = target_; 207 target->visibility = target_;
232 } 208 }
233 209
234 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 210 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
235 211
236 private: 212 private:
237 static AnimatableProperties GetProperties() {
238 AnimatableProperties properties;
239 properties.insert(LayerAnimationElement::VISIBILITY);
240 return properties;
241 }
242
243 bool start_; 213 bool start_;
244 const bool target_; 214 const bool target_;
245 215
246 DISALLOW_COPY_AND_ASSIGN(VisibilityTransition); 216 DISALLOW_COPY_AND_ASSIGN(VisibilityTransition);
247 }; 217 };
248 218
249 // BrightnessTransition -------------------------------------------------------- 219 // BrightnessTransition --------------------------------------------------------
250 220
251 class BrightnessTransition : public LayerAnimationElement { 221 class BrightnessTransition : public LayerAnimationElement {
252 public: 222 public:
253 BrightnessTransition(float target, base::TimeDelta duration) 223 BrightnessTransition(float target, base::TimeDelta duration)
254 : LayerAnimationElement(GetProperties(), duration), 224 : LayerAnimationElement(BRIGHTNESS, duration),
255 start_(0.0f), 225 start_(0.0f),
256 target_(target) { 226 target_(target) {
257 } 227 }
258 virtual ~BrightnessTransition() {} 228 virtual ~BrightnessTransition() {}
259 229
260 protected: 230 protected:
261 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 231 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
262 start_ = delegate->GetBrightnessForAnimation(); 232 start_ = delegate->GetBrightnessForAnimation();
263 } 233 }
264 234
265 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 235 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
266 delegate->SetBrightnessFromAnimation( 236 delegate->SetBrightnessFromAnimation(
267 gfx::Tween::FloatValueBetween(t, start_, target_)); 237 gfx::Tween::FloatValueBetween(t, start_, target_));
268 return true; 238 return true;
269 } 239 }
270 240
271 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 241 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
272 target->brightness = target_; 242 target->brightness = target_;
273 } 243 }
274 244
275 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 245 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
276 246
277 private: 247 private:
278 static AnimatableProperties GetProperties() {
279 AnimatableProperties properties;
280 properties.insert(LayerAnimationElement::BRIGHTNESS);
281 return properties;
282 }
283
284 float start_; 248 float start_;
285 const float target_; 249 const float target_;
286 250
287 DISALLOW_COPY_AND_ASSIGN(BrightnessTransition); 251 DISALLOW_COPY_AND_ASSIGN(BrightnessTransition);
288 }; 252 };
289 253
290 // GrayscaleTransition --------------------------------------------------------- 254 // GrayscaleTransition ---------------------------------------------------------
291 255
292 class GrayscaleTransition : public LayerAnimationElement { 256 class GrayscaleTransition : public LayerAnimationElement {
293 public: 257 public:
294 GrayscaleTransition(float target, base::TimeDelta duration) 258 GrayscaleTransition(float target, base::TimeDelta duration)
295 : LayerAnimationElement(GetProperties(), duration), 259 : LayerAnimationElement(GRAYSCALE, duration),
296 start_(0.0f), 260 start_(0.0f),
297 target_(target) { 261 target_(target) {
298 } 262 }
299 virtual ~GrayscaleTransition() {} 263 virtual ~GrayscaleTransition() {}
300 264
301 protected: 265 protected:
302 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 266 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
303 start_ = delegate->GetGrayscaleForAnimation(); 267 start_ = delegate->GetGrayscaleForAnimation();
304 } 268 }
305 269
306 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 270 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
307 delegate->SetGrayscaleFromAnimation( 271 delegate->SetGrayscaleFromAnimation(
308 gfx::Tween::FloatValueBetween(t, start_, target_)); 272 gfx::Tween::FloatValueBetween(t, start_, target_));
309 return true; 273 return true;
310 } 274 }
311 275
312 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 276 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
313 target->grayscale = target_; 277 target->grayscale = target_;
314 } 278 }
315 279
316 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 280 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
317 281
318 private: 282 private:
319 static AnimatableProperties GetProperties() {
320 AnimatableProperties properties;
321 properties.insert(LayerAnimationElement::GRAYSCALE);
322 return properties;
323 }
324
325 float start_; 283 float start_;
326 const float target_; 284 const float target_;
327 285
328 DISALLOW_COPY_AND_ASSIGN(GrayscaleTransition); 286 DISALLOW_COPY_AND_ASSIGN(GrayscaleTransition);
329 }; 287 };
330 288
331 // ColorTransition ------------------------------------------------------------- 289 // ColorTransition -------------------------------------------------------------
332 290
333 class ColorTransition : public LayerAnimationElement { 291 class ColorTransition : public LayerAnimationElement {
334 public: 292 public:
335 ColorTransition(SkColor target, base::TimeDelta duration) 293 ColorTransition(SkColor target, base::TimeDelta duration)
336 : LayerAnimationElement(GetProperties(), duration), 294 : LayerAnimationElement(COLOR, duration),
337 start_(SK_ColorBLACK), 295 start_(SK_ColorBLACK),
338 target_(target) { 296 target_(target) {
339 } 297 }
340 virtual ~ColorTransition() {} 298 virtual ~ColorTransition() {}
341 299
342 protected: 300 protected:
343 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 301 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
344 start_ = delegate->GetColorForAnimation(); 302 start_ = delegate->GetColorForAnimation();
345 } 303 }
346 304
347 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE { 305 virtual bool OnProgress(double t, LayerAnimationDelegate* delegate) OVERRIDE {
348 delegate->SetColorFromAnimation( 306 delegate->SetColorFromAnimation(
349 gfx::Tween::ColorValueBetween(t, start_, target_)); 307 gfx::Tween::ColorValueBetween(t, start_, target_));
350 return true; 308 return true;
351 } 309 }
352 310
353 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 311 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
354 target->color = target_; 312 target->color = target_;
355 } 313 }
356 314
357 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {} 315 virtual void OnAbort(LayerAnimationDelegate* delegate) OVERRIDE {}
358 316
359 private: 317 private:
360 static AnimatableProperties GetProperties() {
361 AnimatableProperties properties;
362 properties.insert(LayerAnimationElement::COLOR);
363 return properties;
364 }
365
366 SkColor start_; 318 SkColor start_;
367 const SkColor target_; 319 const SkColor target_;
368 320
369 DISALLOW_COPY_AND_ASSIGN(ColorTransition); 321 DISALLOW_COPY_AND_ASSIGN(ColorTransition);
370 }; 322 };
371 323
372 // ThreadedLayerAnimationElement ----------------------------------------------- 324 // ThreadedLayerAnimationElement -----------------------------------------------
373 325
374 class ThreadedLayerAnimationElement : public LayerAnimationElement { 326 class ThreadedLayerAnimationElement : public LayerAnimationElement {
375 public: 327 public:
376 ThreadedLayerAnimationElement(const AnimatableProperties& properties, 328 ThreadedLayerAnimationElement(AnimatableProperties properties,
377 base::TimeDelta duration) 329 base::TimeDelta duration)
378 : LayerAnimationElement(properties, duration) { 330 : LayerAnimationElement(properties, duration) {
379 } 331 }
380 virtual ~ThreadedLayerAnimationElement() {} 332 virtual ~ThreadedLayerAnimationElement() {}
381 333
382 virtual bool IsThreaded() const OVERRIDE { 334 virtual bool IsThreaded() const OVERRIDE {
383 return (duration() != base::TimeDelta()); 335 return (duration() != base::TimeDelta());
384 } 336 }
385 337
386 protected: 338 protected:
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 378
427 private: 379 private:
428 DISALLOW_COPY_AND_ASSIGN(ThreadedLayerAnimationElement); 380 DISALLOW_COPY_AND_ASSIGN(ThreadedLayerAnimationElement);
429 }; 381 };
430 382
431 // ThreadedOpacityTransition --------------------------------------------------- 383 // ThreadedOpacityTransition ---------------------------------------------------
432 384
433 class ThreadedOpacityTransition : public ThreadedLayerAnimationElement { 385 class ThreadedOpacityTransition : public ThreadedLayerAnimationElement {
434 public: 386 public:
435 ThreadedOpacityTransition(float target, base::TimeDelta duration) 387 ThreadedOpacityTransition(float target, base::TimeDelta duration)
436 : ThreadedLayerAnimationElement(GetProperties(), duration), 388 : ThreadedLayerAnimationElement(OPACITY, duration),
437 start_(0.0f), 389 start_(0.0f),
438 target_(target) { 390 target_(target) {
439 } 391 }
440 virtual ~ThreadedOpacityTransition() {} 392 virtual ~ThreadedOpacityTransition() {}
441 393
442 protected: 394 protected:
443 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 395 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
444 start_ = delegate->GetOpacityForAnimation(); 396 start_ = delegate->GetOpacityForAnimation();
445 } 397 }
446 398
(...skipping 23 matching lines...) Expand all
470 animation_group_id(), 422 animation_group_id(),
471 cc::Animation::Opacity)); 423 cc::Animation::Opacity));
472 return animation.Pass(); 424 return animation.Pass();
473 } 425 }
474 426
475 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 427 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
476 target->opacity = target_; 428 target->opacity = target_;
477 } 429 }
478 430
479 private: 431 private:
480 static AnimatableProperties GetProperties() {
481 AnimatableProperties properties;
482 properties.insert(LayerAnimationElement::OPACITY);
483 return properties;
484 }
485
486 float start_; 432 float start_;
487 const float target_; 433 const float target_;
488 434
489 DISALLOW_COPY_AND_ASSIGN(ThreadedOpacityTransition); 435 DISALLOW_COPY_AND_ASSIGN(ThreadedOpacityTransition);
490 }; 436 };
491 437
492 // ThreadedTransformTransition ------------------------------------------------- 438 // ThreadedTransformTransition -------------------------------------------------
493 439
494 class ThreadedTransformTransition : public ThreadedLayerAnimationElement { 440 class ThreadedTransformTransition : public ThreadedLayerAnimationElement {
495 public: 441 public:
496 ThreadedTransformTransition(const gfx::Transform& target, 442 ThreadedTransformTransition(const gfx::Transform& target,
497 base::TimeDelta duration) 443 base::TimeDelta duration)
498 : ThreadedLayerAnimationElement(GetProperties(), duration), 444 : ThreadedLayerAnimationElement(TRANSFORM, duration),
499 target_(target) { 445 target_(target) {
500 } 446 }
501 virtual ~ThreadedTransformTransition() {} 447 virtual ~ThreadedTransformTransition() {}
502 448
503 protected: 449 protected:
504 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE { 450 virtual void OnStart(LayerAnimationDelegate* delegate) OVERRIDE {
505 start_ = delegate->GetTransformForAnimation(); 451 start_ = delegate->GetTransformForAnimation();
506 float device_scale_factor = delegate->GetDeviceScaleFactor(); 452 float device_scale_factor = delegate->GetDeviceScaleFactor();
507 cc_start_ = Layer::ConvertTransformToCCTransform(start_, 453 cc_start_ = Layer::ConvertTransformToCCTransform(start_,
508 device_scale_factor); 454 device_scale_factor);
(...skipping 27 matching lines...) Expand all
536 animation_group_id(), 482 animation_group_id(),
537 cc::Animation::Transform)); 483 cc::Animation::Transform));
538 return animation.Pass(); 484 return animation.Pass();
539 } 485 }
540 486
541 virtual void OnGetTarget(TargetValue* target) const OVERRIDE { 487 virtual void OnGetTarget(TargetValue* target) const OVERRIDE {
542 target->transform = target_; 488 target->transform = target_;
543 } 489 }
544 490
545 private: 491 private:
546 static AnimatableProperties GetProperties() {
547 AnimatableProperties properties;
548 properties.insert(LayerAnimationElement::TRANSFORM);
549 return properties;
550 }
551
552 gfx::Transform start_; 492 gfx::Transform start_;
553 gfx::Transform cc_start_; 493 gfx::Transform cc_start_;
554 const gfx::Transform target_; 494 const gfx::Transform target_;
555 gfx::Transform cc_target_; 495 gfx::Transform cc_target_;
556 496
557 DISALLOW_COPY_AND_ASSIGN(ThreadedTransformTransition); 497 DISALLOW_COPY_AND_ASSIGN(ThreadedTransformTransition);
558 }; 498 };
559 499
560 // InverseTransformTransision -------------------------------------------------- 500 // InverseTransformTransision --------------------------------------------------
561 501
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 gfx::Transform ComputeWithBaseTransform(gfx::Transform start, 585 gfx::Transform ComputeWithBaseTransform(gfx::Transform start,
646 gfx::Transform target) const { 586 gfx::Transform target) const {
647 gfx::Transform to_return(gfx::Transform::kSkipInitialization); 587 gfx::Transform to_return(gfx::Transform::kSkipInitialization);
648 bool success = target.GetInverse(&to_return); 588 bool success = target.GetInverse(&to_return);
649 DCHECK(success) << "Target transform must be invertible."; 589 DCHECK(success) << "Target transform must be invertible.";
650 590
651 to_return.PreconcatTransform(start); 591 to_return.PreconcatTransform(start);
652 return to_return; 592 return to_return;
653 } 593 }
654 594
655 static AnimatableProperties GetProperties() {
656 AnimatableProperties properties;
657 properties.insert(LayerAnimationElement::TRANSFORM);
658 return properties;
659 }
660
661 template <typename T> 595 template <typename T>
662 static T CheckAndCast(const LayerAnimationElement* element) { 596 static T CheckAndCast(const LayerAnimationElement* element) {
663 const AnimatableProperties& properties = element->properties(); 597 AnimatableProperties properties = element->properties();
664 DCHECK(properties.find(TRANSFORM) != properties.end()); 598 DCHECK(properties & TRANSFORM);
665 return static_cast<T>(element); 599 return static_cast<T>(element);
666 } 600 }
667 601
668 gfx::Transform effective_start_; 602 gfx::Transform effective_start_;
669 gfx::Transform computed_target_transform_; 603 gfx::Transform computed_target_transform_;
670 604
671 const gfx::Transform base_transform_; 605 const gfx::Transform base_transform_;
672 gfx::Transform base_target_; 606 gfx::Transform base_target_;
673 607
674 scoped_ptr<cc::AnimationCurve> animation_curve_; 608 scoped_ptr<cc::AnimationCurve> animation_curve_;
(...skipping 23 matching lines...) Expand all
698 opacity(delegate ? delegate->GetOpacityForAnimation() : 0.0f), 632 opacity(delegate ? delegate->GetOpacityForAnimation() : 0.0f),
699 visibility(delegate ? delegate->GetVisibilityForAnimation() : false), 633 visibility(delegate ? delegate->GetVisibilityForAnimation() : false),
700 brightness(delegate ? delegate->GetBrightnessForAnimation() : 0.0f), 634 brightness(delegate ? delegate->GetBrightnessForAnimation() : 0.0f),
701 grayscale(delegate ? delegate->GetGrayscaleForAnimation() : 0.0f), 635 grayscale(delegate ? delegate->GetGrayscaleForAnimation() : 0.0f),
702 color(delegate ? delegate->GetColorForAnimation() : 0.0f) { 636 color(delegate ? delegate->GetColorForAnimation() : 0.0f) {
703 } 637 }
704 638
705 // LayerAnimationElement ------------------------------------------------------- 639 // LayerAnimationElement -------------------------------------------------------
706 640
707 LayerAnimationElement::LayerAnimationElement( 641 LayerAnimationElement::LayerAnimationElement(
708 const AnimatableProperties& properties, 642 AnimatableProperties properties, base::TimeDelta duration)
709 base::TimeDelta duration)
710 : first_frame_(true), 643 : first_frame_(true),
711 properties_(properties), 644 properties_(properties),
712 duration_(GetEffectiveDuration(duration)), 645 duration_(GetEffectiveDuration(duration)),
713 tween_type_(gfx::Tween::LINEAR), 646 tween_type_(gfx::Tween::LINEAR),
714 animation_id_(cc::AnimationIdProvider::NextAnimationId()), 647 animation_id_(cc::AnimationIdProvider::NextAnimationId()),
715 animation_group_id_(0), 648 animation_group_id_(0),
716 last_progressed_fraction_(0.0), 649 last_progressed_fraction_(0.0),
717 weak_ptr_factory_(this) { 650 weak_ptr_factory_(this) {
718 } 651 }
719 652
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 846
914 // static 847 // static
915 LayerAnimationElement* LayerAnimationElement::CreateGrayscaleElement( 848 LayerAnimationElement* LayerAnimationElement::CreateGrayscaleElement(
916 float grayscale, 849 float grayscale,
917 base::TimeDelta duration) { 850 base::TimeDelta duration) {
918 return new GrayscaleTransition(grayscale, duration); 851 return new GrayscaleTransition(grayscale, duration);
919 } 852 }
920 853
921 // static 854 // static
922 LayerAnimationElement* LayerAnimationElement::CreatePauseElement( 855 LayerAnimationElement* LayerAnimationElement::CreatePauseElement(
923 const AnimatableProperties& properties, 856 AnimatableProperties properties,
924 base::TimeDelta duration) { 857 base::TimeDelta duration) {
925 return new Pause(properties, duration); 858 return new Pause(properties, duration);
926 } 859 }
927 860
928 // static 861 // static
929 LayerAnimationElement* LayerAnimationElement::CreateColorElement( 862 LayerAnimationElement* LayerAnimationElement::CreateColorElement(
930 SkColor color, 863 SkColor color,
931 base::TimeDelta duration) { 864 base::TimeDelta duration) {
932 return new ColorTransition(color, duration); 865 return new ColorTransition(color, duration);
933 } 866 }
934 867
935 } // namespace ui 868 } // namespace ui
OLDNEW
« no previous file with comments | « ui/compositor/layer_animation_element.h ('k') | ui/compositor/layer_animation_element_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698