Chromium Code Reviews| Index: Source/core/rendering/svg/RenderSVGResourcePattern.h |
| diff --git a/Source/core/rendering/svg/RenderSVGResourcePattern.h b/Source/core/rendering/svg/RenderSVGResourcePattern.h |
| index 22c0973ff9e769602a2fe41188d22ab3317a3208..a9baf4632b9af0c0cce57b4535c02fc1b60aae76 100644 |
| --- a/Source/core/rendering/svg/RenderSVGResourcePattern.h |
| +++ b/Source/core/rendering/svg/RenderSVGResourcePattern.h |
| @@ -52,23 +52,31 @@ public: |
| static const RenderSVGResourceType s_resourceType = PatternResourceType; |
| virtual RenderSVGResourceType resourceType() const override { return s_resourceType; } |
| - virtual void trace(Visitor*) override; |
| - |
| private: |
| PassOwnPtr<PatternData> buildPatternData(const RenderObject&); |
| PassRefPtr<const SkPicture> asPicture(const FloatRect& tile, const AffineTransform&) const; |
| PatternData* patternForRenderer(const RenderObject&); |
| bool m_shouldCollectPatternAttributes : 1; |
| +#if ENABLE(OILPAN) |
| + Persistent<PatternAttributesWrapper> m_attributesWrapper; |
|
haraken
2015/02/04 05:48:56
Can we avoid introducing a wrapper by making Patte
sof
2015/02/04 08:44:32
That would entail moving the value-based GradientA
haraken
2015/02/04 09:25:10
I thought we can just use OwnPtrWillBePersistent<P
|
| + |
| + PatternAttributes& mutableAttributes() { return m_attributesWrapper->attributes(); } |
| + const PatternAttributes& attributes() const { return m_attributesWrapper->attributes(); } |
| +#else |
| PatternAttributes m_attributes; |
| + PatternAttributes& mutableAttributes() { return m_attributes; } |
| + const PatternAttributes& attributes() const { return m_attributes; } |
| +#endif |
| + |
| // FIXME: we can almost do away with this per-object map, but not quite: the tile size can be |
| // relative to the client bounding box, and it gets captured in the cached Pattern shader. |
| // Hence, we need one Pattern shader per client. The display list OTOH is the same => we |
| // should be able to cache a single display list per RenderSVGResourcePattern + one |
| // Pattern(shader) for each client -- this would avoid re-recording when multiple clients |
| // share the same pattern. |
| - HashMap<const RenderObject*, OwnPtr<PatternData> > m_patternMap; |
| + HashMap<const RenderObject*, OwnPtr<PatternData>> m_patternMap; |
| }; |
| } |