diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-02 20:30:11 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2014-05-02 20:30:11 +0000 |
commit | 74b8cb15e4fb330e8d10856f6620e8b92b39a9ce (patch) | |
tree | fee3f1eacb7bba6143a82ea2e5ccd24878a76946 /gm/pictureshader.cpp | |
parent | 608d63735f6b36482198eaf17f8137ab2e9e0f0d (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
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@14549 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/pictureshader.cpp')
-rw-r--r-- | gm/pictureshader.cpp | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/gm/pictureshader.cpp b/gm/pictureshader.cpp index 44db338fc2..8b26e48663 100644 --- a/gm/pictureshader.cpp +++ b/gm/pictureshader.cpp @@ -13,8 +13,6 @@ #include "SkPictureRecorder.h" #include "SkShader.h" -namespace skiagm { - static struct { SkShader::TileMode tmx; SkShader::TileMode tmy; @@ -24,9 +22,8 @@ static struct { { SkShader::kMirror_TileMode, SkShader::kRepeat_TileMode }, }; -class PictureShaderGM : public GM { +class PictureShaderGM : public skiagm::GM { public: - PictureShaderGM(SkScalar tileSize, SkScalar sceneSize) : fTileSize(tileSize) , fSceneSize(sceneSize) { @@ -37,24 +34,13 @@ public: SkScalarRoundToInt(tileSize), NULL, 0); this->drawTile(pictureCanvas); - SkAutoTUnref<SkPicture> p(recorder.endRecording()); + fPicture.reset(recorder.endRecording()); // Build a reference bitmap. - SkBitmap bm; - bm.allocN32Pixels(SkScalarRoundToInt(tileSize), SkScalarRoundToInt(tileSize)); - bm.eraseColor(SK_ColorTRANSPARENT); - SkCanvas bitmapCanvas(bm); + fBitmap.allocN32Pixels(SkScalarRoundToInt(tileSize), SkScalarRoundToInt(tileSize)); + fBitmap.eraseColor(SK_ColorTRANSPARENT); + SkCanvas bitmapCanvas(fBitmap); this->drawTile(&bitmapCanvas); - - for (unsigned i = 0; i < SK_ARRAY_COUNT(kTileConfigs); ++i) { - fPictureShaders[i].reset(SkShader::CreatePictureShader(p, - kTileConfigs[i].tmx, - kTileConfigs[i].tmy)); - - fBitmapShaders[i].reset(SkShader::CreateBitmapShader(bm, - kTileConfigs[i].tmx, - kTileConfigs[i].tmy)); - } } protected: @@ -145,14 +131,22 @@ private: canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); canvas->drawRect(SkRect::MakeXYWH(fSceneSize * 1.1f, 0, fSceneSize, fSceneSize), paint); - fPictureShaders[tileMode]->setLocalMatrix(localMatrix); - paint.setShader(fPictureShaders[tileMode].get()); + SkAutoTUnref<SkShader> pictureShader(SkShader::CreatePictureShader( + fPicture, + kTileConfigs[tileMode].tmx, + kTileConfigs[tileMode].tmy, + &localMatrix)); + paint.setShader(pictureShader.get()); canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); canvas->translate(fSceneSize * 1.1f, 0); - fBitmapShaders[tileMode]->setLocalMatrix(localMatrix); - paint.setShader(fBitmapShaders[tileMode].get()); + SkAutoTUnref<SkShader> bitmapShader(SkShader::CreateBitmapShader( + fBitmap, + kTileConfigs[tileMode].tmx, + kTileConfigs[tileMode].tmy, + &localMatrix)); + paint.setShader(bitmapShader.get()); canvas->drawRect(SkRect::MakeWH(fSceneSize, fSceneSize), paint); canvas->restore(); @@ -161,11 +155,10 @@ private: SkScalar fTileSize; SkScalar fSceneSize; - SkAutoTUnref<SkShader> fPictureShaders[SK_ARRAY_COUNT(kTileConfigs)]; - SkAutoTUnref<SkShader> fBitmapShaders[SK_ARRAY_COUNT(kTileConfigs)]; + SkAutoTUnref<SkPicture> fPicture; + SkBitmap fBitmap; typedef GM INHERITED; }; DEF_GM( return SkNEW_ARGS(PictureShaderGM, (50, 100)); ) -} |