aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/imagefiltersclipped.cpp
diff options
context:
space:
mode:
authorGravatar senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-03 14:58:09 +0000
committerGravatar senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2014-03-03 14:58:09 +0000
commit47d98c8e85924effc651b09df72027e6801c92a1 (patch)
treec5c86b63379c49d138210ebedbddb40860a9c17b /gm/imagefiltersclipped.cpp
parentc9b2c885be8d2bb39f1d75cc316278fa8d0fa9f0 (diff)
Fix CTM scaling and clipping of SkRectShaderImageFilter.
Pass the CTM as part of the local matrix passed by SkRectShaderImageFilter. Teach SkPerlinNoiseShader to respect the local matrix. Embiggen imagefiltersscaled GM size to accommodate the new test cases. Note: will require rebaselines of imagefiltersscaled and imagefiltersclipped R=sugoi@chromium.org BUG=skia: Review URL: https://codereview.chromium.org/184973007 git-svn-id: http://skia.googlecode.com/svn/trunk@13637 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'gm/imagefiltersclipped.cpp')
-rw-r--r--gm/imagefiltersclipped.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
index 757cd1bf27..bb6cd0471f 100644
--- a/gm/imagefiltersclipped.cpp
+++ b/gm/imagefiltersclipped.cpp
@@ -14,6 +14,8 @@
#include "SkGradientShader.h"
#include "SkMorphologyImageFilter.h"
#include "SkOffsetImageFilter.h"
+#include "SkPerlinNoiseShader.h"
+#include "SkRectShaderImageFilter.h"
#include "SkResizeImageFilter.h"
#include "SkScalar.h"
@@ -87,6 +89,8 @@ protected:
SkAutoTUnref<SkImageFilter> gradient(new SkBitmapSource(fGradientCircle));
SkAutoTUnref<SkImageFilter> checkerboard(new SkBitmapSource(fCheckerboard));
+ SkAutoTUnref<SkShader> noise(SkPerlinNoiseShader::CreateFractalNoise(
+ SkDoubleToScalar(0.1), SkDoubleToScalar(0.05), 1, 0));
SkImageFilter* filters[] = {
new SkBlurImageFilter(SkIntToScalar(12), SkIntToScalar(12)),
@@ -101,6 +105,7 @@ protected:
new SkErodeImageFilter(2, 2, checkerboard.get()),
new SkOffsetImageFilter(SkIntToScalar(-16), SkIntToScalar(32)),
new SkResizeImageFilter(RESIZE_FACTOR_X, RESIZE_FACTOR_Y, SkPaint::kNone_FilterLevel),
+ SkRectShaderImageFilter::Create(noise),
};
SkRect r = SkRect::MakeWH(SkIntToScalar(64), SkIntToScalar(64));