Chromium Code Reviews| Index: Source/platform/graphics/DrawLooper.h |
| diff --git a/Source/platform/graphics/DrawLooper.h b/Source/platform/graphics/DrawLooper.h |
| index 4a66910c30029162ca8768a7cc52f49b3dc366f8..67d0542a6c85374c598678022c4e2e4184de517d 100644 |
| --- a/Source/platform/graphics/DrawLooper.h |
| +++ b/Source/platform/graphics/DrawLooper.h |
| @@ -32,11 +32,12 @@ |
| #define DrawLooper_h |
| #include "platform/PlatformExport.h" |
| +#include "third_party/skia/include/effects/SkLayerDrawLooper.h" |
| #include "wtf/Noncopyable.h" |
| -#include "wtf/RefPtr.h" |
| +#include "wtf/OwnPtr.h" |
| +#include "wtf/PassOwnPtr.h" |
| class SkDrawLooper; |
| -class SkLayerDrawLooper; |
| namespace WebCore { |
| @@ -58,20 +59,33 @@ public: |
| ShadowIgnoresAlpha |
| }; |
| - DrawLooper(); |
| ~DrawLooper(); |
| // Callees should not modify this looper other than to iterate over it. |
| // A downcast to SkLayerDrawLooper* is tantamount to a const_cast. |
| SkDrawLooper* skDrawLooper() const; |
| - void addUnmodifiedContent(); |
| - void addShadow(const FloatSize& offset, float blur, const Color&, |
| - ShadowTransformMode = ShadowRespectsTransforms, |
| - ShadowAlphaMode = ShadowRespectsAlpha); |
| + class Builder { |
| + public: |
| + Builder() { } |
| + ~Builder() { } |
| + |
| + void addUnmodifiedContent(); |
| + void addShadow(const FloatSize& offset, float blur, const Color&, |
| + ShadowTransformMode = ShadowRespectsTransforms, |
| + ShadowAlphaMode = ShadowRespectsAlpha); |
| + |
| + // Pass layers to new DrawLooper object and return it. The builder |
| + // should not be used any more after calling this method. |
| + PassOwnPtr<DrawLooper> detachDrawLooper(); |
| + |
| + private: |
| + SkLayerDrawLooper::Builder m_skDrawLooperBuilder; |
| + }; |
| private: |
| - RefPtr<SkLayerDrawLooper> m_skDrawLooper; |
| + DrawLooper(PassOwnPtr<SkDrawLooper>); |
| + OwnPtr<SkDrawLooper> m_skDrawLooper; |
|
jbroman
2014/02/24 18:53:38
I'm sorry I wasn't clear enough before, but while
Dominik Grewe
2014/02/24 19:41:03
Of course, sorry. Wasn't thinking properly ;) Will
|
| }; |
| } // namespace WebCore |