diff options
author | 2014-05-02 21:23:52 +0000 | |
---|---|---|
committer | 2014-05-02 21:23:52 +0000 | |
commit | 5aacfe9ffcf1849727dca6761b4a221bd4315f26 (patch) | |
tree | 492612f0dba672b4182d6032c6decd2016d407ea /src | |
parent | c09abe66c1388c5da456c7686eab7a7928e9e9d6 (diff) |
Remove setLocalMatrix calls from picture shader GM.
This makes all --skr tests pass for me. Enabling it by default in DM.
BUG=skia:2378
Committed: http://code.google.com/p/skia/source/detail?r=14549
R=reed@google.com, mtklein@google.com, fmalita@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/260863007
git-svn-id: http://skia.googlecode.com/svn/trunk@14551 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src')
-rw-r--r-- | src/core/SkPictureShader.cpp | 12 | ||||
-rw-r--r-- | src/core/SkPictureShader.h | 4 | ||||
-rw-r--r-- | src/core/SkShader.cpp | 5 |
3 files changed, 13 insertions, 8 deletions
diff --git a/src/core/SkPictureShader.cpp b/src/core/SkPictureShader.cpp index 27cbb00f63..81f9242854 100644 --- a/src/core/SkPictureShader.cpp +++ b/src/core/SkPictureShader.cpp @@ -18,8 +18,10 @@ #include "GrContext.h" #endif -SkPictureShader::SkPictureShader(SkPicture* picture, TileMode tmx, TileMode tmy) - : fPicture(SkRef(picture)) +SkPictureShader::SkPictureShader(SkPicture* picture, TileMode tmx, TileMode tmy, + const SkMatrix* localMatrix) + : INHERITED(localMatrix) + , fPicture(SkRef(picture)) , fTmx(tmx) , fTmy(tmy) { } @@ -34,11 +36,12 @@ SkPictureShader::~SkPictureShader() { fPicture->unref(); } -SkPictureShader* SkPictureShader::Create(SkPicture* picture, TileMode tmx, TileMode tmy) { +SkPictureShader* SkPictureShader::Create(SkPicture* picture, TileMode tmx, TileMode tmy, + const SkMatrix* localMatrix) { if (!picture || 0 == picture->width() || 0 == picture->height()) { return NULL; } - return SkNEW_ARGS(SkPictureShader, (picture, tmx, tmy)); + return SkNEW_ARGS(SkPictureShader, (picture, tmx, tmy, localMatrix)); } void SkPictureShader::flatten(SkWriteBuffer& buffer) const { @@ -79,6 +82,7 @@ SkShader* SkPictureShader::refBitmapShader(const SkMatrix& matrix) const { SkAutoMutexAcquire ama(fCachedBitmapShaderMutex); + // TODO(fmalita): remove fCachedLocalMatrix from this key after getLocalMatrix is removed. if (!fCachedBitmapShader || tileScale != fCachedTileScale || this->getLocalMatrix() != fCachedLocalMatrix) { SkBitmap bm; diff --git a/src/core/SkPictureShader.h b/src/core/SkPictureShader.h index 510c9888f5..2ef6c1c92a 100644 --- a/src/core/SkPictureShader.h +++ b/src/core/SkPictureShader.h @@ -21,7 +21,7 @@ class SkPicture; */ class SkPictureShader : public SkShader { public: - static SkPictureShader* Create(SkPicture*, TileMode, TileMode); + static SkPictureShader* Create(SkPicture*, TileMode, TileMode, const SkMatrix* = NULL); virtual ~SkPictureShader(); virtual bool validContext(const ContextRec&, SkMatrix* totalInverse) const SK_OVERRIDE; @@ -59,7 +59,7 @@ protected: virtual void flatten(SkWriteBuffer&) const SK_OVERRIDE; private: - SkPictureShader(SkPicture*, TileMode, TileMode); + SkPictureShader(SkPicture*, TileMode, TileMode, const SkMatrix* = NULL); SkShader* validInternal(const ContextRec&, SkMatrix* totalInverse) const; SkShader* refBitmapShader(const SkMatrix&) const; diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp index 0f6ba4ce9f..67dd581543 100644 --- a/src/core/SkShader.cpp +++ b/src/core/SkShader.cpp @@ -193,8 +193,9 @@ SkShader* SkShader::CreateBitmapShader(const SkBitmap& src, TileMode tmx, TileMo return ::CreateBitmapShader(src, tmx, tmy, localMatrix, NULL); } -SkShader* SkShader::CreatePictureShader(SkPicture* src, TileMode tmx, TileMode tmy) { - return SkPictureShader::Create(src, tmx, tmy); +SkShader* SkShader::CreatePictureShader(SkPicture* src, TileMode tmx, TileMode tmy, + const SkMatrix* localMatrix) { + return SkPictureShader::Create(src, tmx, tmy, localMatrix); } #ifndef SK_IGNORE_TO_STRING |