Index: src/core/SkFlattenableBuffers.cpp |
diff --git a/src/core/SkFlattenableBuffers.cpp b/src/core/SkFlattenableBuffers.cpp |
index 28cc76db37545bb5a831288c768d3bff62e87ebc..8026552f69802de290cd4b06ecdc075ba24c5a9d 100644 |
--- a/src/core/SkFlattenableBuffers.cpp |
+++ b/src/core/SkFlattenableBuffers.cpp |
@@ -9,6 +9,17 @@ |
#include "SkPaint.h" |
#include "SkTypeface.h" |
+#include "SkColorFilter.h" |
+#include "SkDrawLooper.h" |
+#include "SkImageFilter.h" |
+#include "SkMaskFilter.h" |
+#include "SkPathEffect.h" |
+#include "SkPixelRef.h" |
+#include "SkRasterizer.h" |
+#include "SkShader.h" |
+#include "SkUnitMapper.h" |
+#include "SkXfermode.h" |
+ |
SkFlattenableReadBuffer::SkFlattenableReadBuffer() { |
// Set default values. These should be explicitly set by our client |
// via setFlags() if the buffer came from serialization. |
@@ -34,6 +45,50 @@ void SkFlattenableReadBuffer::readPaint(SkPaint* paint) { |
paint->unflatten(*this); |
} |
+template <typename T> T* SkFlattenableReadBuffer::readFlattenableT() { |
+ return static_cast<T*>(this->readFlattenable(T::GetEffectType())); |
+} |
+ |
+SkColorFilter* SkFlattenableReadBuffer::readColorFilter() { |
+ return this->readFlattenableT<SkColorFilter>(); |
+} |
+ |
+SkDrawLooper* SkFlattenableReadBuffer::readDrawLooper() { |
+ return this->readFlattenableT<SkDrawLooper>(); |
+} |
+ |
+SkImageFilter* SkFlattenableReadBuffer::readImageFilter() { |
+ return this->readFlattenableT<SkImageFilter>(); |
+} |
+ |
+SkMaskFilter* SkFlattenableReadBuffer::readMaskFilter() { |
+ return this->readFlattenableT<SkMaskFilter>(); |
+} |
+ |
+SkPathEffect* SkFlattenableReadBuffer::readPathEffect() { |
+ return this->readFlattenableT<SkPathEffect>(); |
+} |
+ |
+SkPixelRef* SkFlattenableReadBuffer::readPixelRef() { |
+ return this->readFlattenableT<SkPixelRef>(); |
+} |
+ |
+SkRasterizer* SkFlattenableReadBuffer::readRasterizer() { |
+ return this->readFlattenableT<SkRasterizer>(); |
+} |
+ |
+SkShader* SkFlattenableReadBuffer::readShader() { |
+ return this->readFlattenableT<SkShader>(); |
+} |
+ |
+SkUnitMapper* SkFlattenableReadBuffer::readUnitMapper() { |
+ return this->readFlattenableT<SkUnitMapper>(); |
+} |
+ |
+SkXfermode* SkFlattenableReadBuffer::readXfermode() { |
+ return this->readFlattenableT<SkXfermode>(); |
+} |
+ |
/////////////////////////////////////////////////////////////////////////////// |
SkFlattenableWriteBuffer::SkFlattenableWriteBuffer() { |