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 |