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

Side by Side Diff: Source/core/animation/AnimationEffect.h

Issue 194673002: Web Animations: Refactor KeyframeEffectModel to work via an InterpolationEffect. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@interpolationWrap
Patch Set: Created 6 years, 9 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
OLDNEW
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 22 matching lines...) Expand all
33 33
34 #include "CSSPropertyNames.h" 34 #include "CSSPropertyNames.h"
35 #include "heap/Handle.h" 35 #include "heap/Handle.h"
36 #include "wtf/HashMap.h" 36 #include "wtf/HashMap.h"
37 #include "wtf/PassOwnPtr.h" 37 #include "wtf/PassOwnPtr.h"
38 #include "wtf/RefCounted.h" 38 #include "wtf/RefCounted.h"
39 39
40 namespace WebCore { 40 namespace WebCore {
41 41
42 class AnimatableValue; 42 class AnimatableValue;
43 class Interpolation;
43 44
44 class AnimationEffect : public RefCountedWillBeGarbageCollectedFinalized<Animati onEffect> { 45 class AnimationEffect : public RefCountedWillBeGarbageCollectedFinalized<Animati onEffect> {
45 public: 46 public:
46 enum CompositeOperation { 47 enum CompositeOperation {
47 CompositeReplace, 48 CompositeReplace,
48 CompositeAdd, 49 CompositeAdd,
49 }; 50 };
50 // Encapsulates the value which results from applying a set of composition o perations onto an
51 // underlying value. It is used to represent the output of the effect phase of the Web
52 // Animations model.
53 class CompositableValue : public RefCounted<CompositableValue> {
54 public:
55 virtual ~CompositableValue() { }
56 virtual bool dependsOnUnderlyingValue() const = 0;
57 virtual PassRefPtr<AnimatableValue> compositeOnto(const AnimatableValue* ) const = 0;
58 };
59 51
60 virtual ~AnimationEffect() { } 52 virtual ~AnimationEffect() { }
61 typedef HashMap<CSSPropertyID, RefPtr<CompositableValue> > CompositableValue Map; 53 virtual PassOwnPtr<Vector<RefPtr<Interpolation> > > sample(int iteration, do uble fraction) const = 0;
62 typedef Vector<std::pair<CSSPropertyID, RefPtr<CompositableValue> > > Compos itableValueList;
63 virtual PassOwnPtr<CompositableValueList> sample(int iteration, double fract ion) const = 0;
64 54
65 virtual bool affects(CSSPropertyID) { return false; }; 55 virtual bool affects(CSSPropertyID) { return false; };
66 virtual bool isKeyframeEffectModel() const { return false; } 56 virtual bool isKeyframeEffectModel() const { return false; }
67 57
68 virtual void trace(Visitor*) = 0; 58 virtual void trace(Visitor*) = 0;
69 }; 59 };
70 60
71 } // namespace WebCore 61 } // namespace WebCore
72 62
73 #endif // AnimationEffect_h 63 #endif // AnimationEffect_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698