Index: Source/platform/graphics/Pattern.h |
diff --git a/Source/platform/graphics/Pattern.h b/Source/platform/graphics/Pattern.h |
index 5d533824d87433d0a2c4a30d60a539c7498ca606..a5ccc94c6019bed1254972e0545ae44b3a689212 100644 |
--- a/Source/platform/graphics/Pattern.h |
+++ b/Source/platform/graphics/Pattern.h |
@@ -32,6 +32,7 @@ |
#include "SkShader.h" |
#include "platform/PlatformExport.h" |
#include "platform/graphics/Image.h" |
+#include "platform/graphics/StaticBitmapImage.h" |
#include "platform/transforms/AffineTransform.h" |
#include "wtf/PassRefPtr.h" |
@@ -40,35 +41,36 @@ |
namespace WebCore { |
-class AffineTransform; |
- |
class PLATFORM_EXPORT Pattern : public RefCounted<Pattern> { |
public: |
- static PassRefPtr<Pattern> create(PassRefPtr<Image> tileImage, bool repeatX, bool repeatY) |
- { |
- return adoptRef(new Pattern(tileImage, repeatX, repeatY)); |
- } |
- ~Pattern(); |
+ static PassRefPtr<Pattern> create(PassRefPtr<Image> tileImage, bool repeatX, bool repeatY); |
+ |
+ virtual ~Pattern(); |
SkShader* shader(); |
void setPatternSpaceTransform(const AffineTransform& patternSpaceTransformation); |
- const AffineTransform& getPatternSpaceTransform() { return m_patternSpaceTransformation; }; |
+ const AffineTransform& getPatternSpaceTransform() { return m_patternSpaceTransformation; } |
bool repeatX() const { return m_repeatX; } |
bool repeatY() const { return m_repeatY; } |
+protected: |
+ virtual PassRefPtr<SkShader> createShader() = 0; |
-private: |
- Pattern(PassRefPtr<Image>, bool repeatX, bool repeatY); |
+ Pattern(bool repeatX, bool repeatY) |
+ : m_repeatX(repeatX) |
+ , m_repeatY(repeatY) |
+ , m_externalMemoryAllocated(0) { } |
- RefPtr<NativeImageSkia> m_tileImage; |
bool m_repeatX; |
bool m_repeatY; |
AffineTransform m_patternSpaceTransformation; |
- RefPtr<SkShader> m_pattern; |
int m_externalMemoryAllocated; |
+ |
+private: |
+ RefPtr<SkShader> m_pattern; |
}; |
-} //namespace |
+} // namespace |
#endif |