OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com> | 2 * Copyright (C) 2008 Alex Mathews <possessedpenguinbob@gmail.com> |
3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> | 3 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 19 matching lines...) Expand all Loading... |
30 #include "wtf/text/AtomicStringHash.h" | 30 #include "wtf/text/AtomicStringHash.h" |
31 | 31 |
32 class SkPaint; | 32 class SkPaint; |
33 | 33 |
34 namespace blink { | 34 namespace blink { |
35 | 35 |
36 class FloatRect; | 36 class FloatRect; |
37 class LayoutObject; | 37 class LayoutObject; |
38 class SVGFilterElement; | 38 class SVGFilterElement; |
39 | 39 |
40 // A map from LayoutObject -> FilterEffect and FilterEffect -> dependent (downst
ream) FilterEffects ("reverse DAG"). | 40 // A map from LayoutObject -> FilterEffect and FilterEffect -> dependent |
41 // Used during invalidations from changes to the primitives (graph nodes). | 41 // (downstream) FilterEffects ("reverse DAG"). Used during invalidations from |
| 42 // changes to the primitives (graph nodes). |
42 class SVGFilterGraphNodeMap final | 43 class SVGFilterGraphNodeMap final |
43 : public GarbageCollected<SVGFilterGraphNodeMap> { | 44 : public GarbageCollected<SVGFilterGraphNodeMap> { |
44 public: | 45 public: |
45 static SVGFilterGraphNodeMap* create() { return new SVGFilterGraphNodeMap; } | 46 static SVGFilterGraphNodeMap* create() { return new SVGFilterGraphNodeMap; } |
46 | 47 |
47 typedef HeapHashSet<Member<FilterEffect>> FilterEffectSet; | 48 typedef HeapHashSet<Member<FilterEffect>> FilterEffectSet; |
48 | 49 |
49 void addBuiltinEffect(FilterEffect*); | 50 void addBuiltinEffect(FilterEffect*); |
50 void addPrimitive(LayoutObject*, FilterEffect*); | 51 void addPrimitive(LayoutObject*, FilterEffect*); |
51 | 52 |
52 inline FilterEffectSet& effectReferences(FilterEffect* effect) { | 53 inline FilterEffectSet& effectReferences(FilterEffect* effect) { |
53 // Only allowed for effects belongs to this builder. | 54 // Only allowed for effects belongs to this builder. |
54 ASSERT(m_effectReferences.contains(effect)); | 55 ASSERT(m_effectReferences.contains(effect)); |
55 return m_effectReferences.find(effect)->value; | 56 return m_effectReferences.find(effect)->value; |
56 } | 57 } |
57 | 58 |
58 // Required to change the attributes of a filter during an svgAttributeChanged
. | 59 // Required to change the attributes of a filter during an |
| 60 // svgAttributeChanged. |
59 inline FilterEffect* effectByRenderer(LayoutObject* object) { | 61 inline FilterEffect* effectByRenderer(LayoutObject* object) { |
60 return m_effectRenderer.get(object); | 62 return m_effectRenderer.get(object); |
61 } | 63 } |
62 | 64 |
63 void invalidateDependentEffects(FilterEffect*); | 65 void invalidateDependentEffects(FilterEffect*); |
64 | 66 |
65 DECLARE_TRACE(); | 67 DECLARE_TRACE(); |
66 | 68 |
67 private: | 69 private: |
68 SVGFilterGraphNodeMap(); | 70 SVGFilterGraphNodeMap(); |
(...skipping 29 matching lines...) Expand all Loading... |
98 NamedFilterEffectMap m_builtinEffects; | 100 NamedFilterEffectMap m_builtinEffects; |
99 NamedFilterEffectMap m_namedEffects; | 101 NamedFilterEffectMap m_namedEffects; |
100 | 102 |
101 Member<FilterEffect> m_lastEffect; | 103 Member<FilterEffect> m_lastEffect; |
102 Member<SVGFilterGraphNodeMap> m_nodeMap; | 104 Member<SVGFilterGraphNodeMap> m_nodeMap; |
103 }; | 105 }; |
104 | 106 |
105 } // namespace blink | 107 } // namespace blink |
106 | 108 |
107 #endif // SVGFilterBuilder_h | 109 #endif // SVGFilterBuilder_h |
OLD | NEW |