Index: src/core/SkLocalMatrixShader.cpp |
diff --git a/src/core/SkLocalMatrixShader.cpp b/src/core/SkLocalMatrixShader.cpp |
index 7af025c442df5a67508c56f8357b7c469c0075b2..53580e6ac953f48cc983a59116b6996953f221c1 100644 |
--- a/src/core/SkLocalMatrixShader.cpp |
+++ b/src/core/SkLocalMatrixShader.cpp |
@@ -5,65 +5,11 @@ |
* found in the LICENSE file. |
*/ |
-#include "SkShader.h" |
-#include "SkReadBuffer.h" |
-#include "SkWriteBuffer.h" |
- |
-class SkLocalMatrixShader : public SkShader { |
-public: |
- SkLocalMatrixShader(SkShader* proxy, const SkMatrix& localMatrix) |
- : fProxyShader(SkRef(proxy)) |
- , fProxyLocalMatrix(localMatrix) |
- {} |
- |
- virtual size_t contextSize() const SK_OVERRIDE { |
- return fProxyShader->contextSize(); |
- } |
- |
- virtual BitmapType asABitmap(SkBitmap* bitmap, SkMatrix* matrix, |
- TileMode* mode) const SK_OVERRIDE { |
- return fProxyShader->asABitmap(bitmap, matrix, mode); |
- } |
- |
- virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE { |
- return fProxyShader->asAGradient(info); |
- } |
- |
- // TODO: need to augment this API to pass in a localmatrix (which we can augment) |
- virtual GrEffectRef* asNewEffect(GrContext* ctx, const SkPaint& paint, |
- const SkMatrix* localMatrix) const SK_OVERRIDE { |
- SkMatrix tmp = fProxyLocalMatrix; |
- if (localMatrix) { |
- tmp.preConcat(*localMatrix); |
- } |
- return fProxyShader->asNewEffect(ctx, paint, &tmp); |
- } |
- |
- virtual SkShader* refAsALocalMatrixShader(SkMatrix* localMatrix) const SK_OVERRIDE { |
- if (localMatrix) { |
- *localMatrix = fProxyLocalMatrix; |
- } |
- return SkRef(fProxyShader.get()); |
- } |
- |
- SK_TO_STRING_OVERRIDE() |
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLocalMatrixShader) |
- |
-protected: |
- SkLocalMatrixShader(SkReadBuffer&); |
- virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; |
- virtual Context* onCreateContext(const ContextRec&, void*) const SK_OVERRIDE; |
- |
-private: |
- SkAutoTUnref<SkShader> fProxyShader; |
- SkMatrix fProxyLocalMatrix; |
- |
- typedef SkShader INHERITED; |
-}; |
+#include "SkLocalMatrixShader.h" |
SkLocalMatrixShader::SkLocalMatrixShader(SkReadBuffer& buffer) : INHERITED(buffer) { |
buffer.readMatrix(&fProxyLocalMatrix); |
- fProxyShader.reset(buffer.readFlattenable<SkShader>()); |
+ fProxyShader.reset(buffer.readShader()); |
if (NULL == fProxyShader.get()) { |
sk_throw(); |
} |