aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar senorblanco <senorblanco@chromium.org>2015-03-20 06:38:17 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-20 06:38:17 -0700
commit8c874eee943bdea0fab5b4d2707083c863e37c55 (patch)
tree61978b25c069b032540feb1cc0ead7c39dc32df0
parent977b6f7e7b57cd7894869f3ec025e486a8208ae0 (diff)
Move SkMatrixImageFilter into core, and add a factory fn for it.
-rw-r--r--gm/filterfastbounds.cpp9
-rw-r--r--gm/imagefiltersclipped.cpp3
-rw-r--r--gm/imagefiltersscaled.cpp3
-rw-r--r--gm/imageresizetiled.cpp4
-rw-r--r--gm/matriximagefilter.cpp4
-rw-r--r--gm/resizeimagefilter.cpp3
-rw-r--r--gyp/core.gypi2
-rw-r--r--gyp/effects.gypi1
-rw-r--r--include/core/SkImageFilter.h8
-rw-r--r--include/core/SkMatrixImageFilter.h (renamed from include/effects/SkMatrixImageFilter.h)0
-rw-r--r--samplecode/SampleFilterFuzz.cpp7
-rw-r--r--src/core/SkImageFilter.cpp7
-rw-r--r--src/core/SkMatrixImageFilter.cpp (renamed from src/effects/SkMatrixImageFilter.cpp)0
-rw-r--r--tests/ImageFilterTest.cpp7
14 files changed, 34 insertions, 24 deletions
diff --git a/gm/filterfastbounds.cpp b/gm/filterfastbounds.cpp
index 0ae7068503..d0fed529f5 100644
--- a/gm/filterfastbounds.cpp
+++ b/gm/filterfastbounds.cpp
@@ -9,7 +9,6 @@
#include "SkBitmapSource.h"
#include "SkBlurImageFilter.h"
#include "SkDropShadowImageFilter.h"
-#include "SkMatrixImageFilter.h"
#include "SkOffsetImageFilter.h"
#include "SkPictureImageFilter.h"
#include "SkPictureRecorder.h"
@@ -93,8 +92,8 @@ static void create_paints(SkImageFilter* source, SkTArray<SkPaint>* paints) {
SkMatrix scale;
scale.setScale(2.0f, 2.0f);
- SkAutoTUnref<SkMatrixImageFilter> scaleMIF(
- SkMatrixImageFilter::Create(scale, kLow_SkFilterQuality, source));
+ SkAutoTUnref<SkImageFilter> scaleMIF(
+ SkImageFilter::CreateMatrixFilter(scale, kLow_SkFilterQuality, source));
add_paint(scaleMIF, paints);
}
@@ -103,8 +102,8 @@ static void create_paints(SkImageFilter* source, SkTArray<SkPaint>* paints) {
SkMatrix rot;
rot.setRotate(-33.3f);
- SkAutoTUnref<SkMatrixImageFilter> rotMIF(
- SkMatrixImageFilter::Create(rot, kLow_SkFilterQuality, source));
+ SkAutoTUnref<SkImageFilter> rotMIF(
+ SkImageFilter::CreateMatrixFilter(rot, kLow_SkFilterQuality, source));
add_paint(rotMIF, paints);
}
diff --git a/gm/imagefiltersclipped.cpp b/gm/imagefiltersclipped.cpp
index 5608414107..9b91929e3a 100644
--- a/gm/imagefiltersclipped.cpp
+++ b/gm/imagefiltersclipped.cpp
@@ -12,7 +12,6 @@
#include "SkDisplacementMapEffect.h"
#include "SkDropShadowImageFilter.h"
#include "SkGradientShader.h"
-#include "SkMatrixImageFilter.h"
#include "SkMorphologyImageFilter.h"
#include "SkOffsetImageFilter.h"
#include "SkPerlinNoiseShader.h"
@@ -91,7 +90,7 @@ protected:
SkDilateImageFilter::Create(2, 2, checkerboard.get()),
SkErodeImageFilter::Create(2, 2, checkerboard.get()),
SkOffsetImageFilter::Create(SkIntToScalar(-16), SkIntToScalar(32)),
- SkMatrixImageFilter::Create(resizeMatrix, kNone_SkFilterQuality),
+ SkImageFilter::CreateMatrixFilter(resizeMatrix, kNone_SkFilterQuality),
SkRectShaderImageFilter::Create(noise),
};
diff --git a/gm/imagefiltersscaled.cpp b/gm/imagefiltersscaled.cpp
index 1cb1e5c847..9c9ec15486 100644
--- a/gm/imagefiltersscaled.cpp
+++ b/gm/imagefiltersscaled.cpp
@@ -13,7 +13,6 @@
#include "SkDropShadowImageFilter.h"
#include "SkGradientShader.h"
#include "SkLightingImageFilter.h"
-#include "SkMatrixImageFilter.h"
#include "SkMorphologyImageFilter.h"
#include "SkOffsetImageFilter.h"
#include "SkPerlinNoiseShader.h"
@@ -100,7 +99,7 @@ protected:
SkDilateImageFilter::Create(1, 1, checkerboard.get()),
SkErodeImageFilter::Create(1, 1, checkerboard.get()),
SkOffsetImageFilter::Create(SkIntToScalar(32), 0),
- SkMatrixImageFilter::Create(resizeMatrix, kNone_SkFilterQuality),
+ SkImageFilter::CreateMatrixFilter(resizeMatrix, kNone_SkFilterQuality),
SkRectShaderImageFilter::Create(noise),
SkLightingImageFilter::CreatePointLitDiffuse(pointLocation, white, surfaceScale, kd),
SkLightingImageFilter::CreateSpotLitDiffuse(spotLocation, spotTarget, spotExponent,
diff --git a/gm/imageresizetiled.cpp b/gm/imageresizetiled.cpp
index d06c1fbc5b..4899d352ba 100644
--- a/gm/imageresizetiled.cpp
+++ b/gm/imageresizetiled.cpp
@@ -6,7 +6,7 @@
*/
#include "gm.h"
-#include "SkMatrixImageFilter.h"
+#include "SkImageFilter.h"
#include "SkRandom.h"
#define WIDTH 640
@@ -36,7 +36,7 @@ protected:
SkMatrix matrix;
matrix.setScale(RESIZE_FACTOR, RESIZE_FACTOR);
SkAutoTUnref<SkImageFilter> imageFilter(
- SkMatrixImageFilter::Create(matrix, kNone_SkFilterQuality));
+ SkImageFilter::CreateMatrixFilter(matrix, kNone_SkFilterQuality));
paint.setImageFilter(imageFilter.get());
const SkScalar tile_size = SkIntToScalar(100);
SkRect bounds;
diff --git a/gm/matriximagefilter.cpp b/gm/matriximagefilter.cpp
index eef2b451fc..a42870b617 100644
--- a/gm/matriximagefilter.cpp
+++ b/gm/matriximagefilter.cpp
@@ -7,7 +7,7 @@
#include "gm.h"
#include "SkColor.h"
-#include "SkMatrixImageFilter.h"
+#include "SkImageFilter.h"
namespace skiagm {
@@ -25,7 +25,7 @@ protected:
void draw(SkCanvas* canvas, const SkRect& rect, const SkBitmap& bitmap,
const SkMatrix& matrix, SkFilterQuality filter) {
SkAutoTUnref<SkImageFilter> imageFilter(
- SkMatrixImageFilter::Create(matrix, filter));
+ SkImageFilter::CreateMatrixFilter(matrix, filter));
SkPaint paint;
paint.setImageFilter(imageFilter.get());
canvas->saveLayer(&rect, &paint);
diff --git a/gm/resizeimagefilter.cpp b/gm/resizeimagefilter.cpp
index 6916f6116b..b88c388c7b 100644
--- a/gm/resizeimagefilter.cpp
+++ b/gm/resizeimagefilter.cpp
@@ -9,7 +9,6 @@
#include "SkBitmapDevice.h"
#include "SkBitmapSource.h"
#include "SkColor.h"
-#include "SkMatrixImageFilter.h"
#include "SkRefCnt.h"
namespace skiagm {
@@ -42,7 +41,7 @@ protected:
matrix.setScale(SkScalarInvert(deviceScaleX),
SkScalarInvert(deviceScaleY));
SkAutoTUnref<SkImageFilter> imageFilter(
- SkMatrixImageFilter::Create(matrix, filterQuality, input));
+ SkImageFilter::CreateMatrixFilter(matrix, filterQuality, input));
SkPaint filteredPaint;
filteredPaint.setImageFilter(imageFilter.get());
canvas->saveLayer(&rect, &filteredPaint);
diff --git a/gyp/core.gypi b/gyp/core.gypi
index 2e9fb1bebb..f02c58584a 100644
--- a/gyp/core.gypi
+++ b/gyp/core.gypi
@@ -123,6 +123,7 @@
'<(skia_src_path)/core/SkMaskGamma.h',
'<(skia_src_path)/core/SkMath.cpp',
'<(skia_src_path)/core/SkMatrix.cpp',
+ '<(skia_src_path)/core/SkMatrixImageFilter.cpp',
'<(skia_src_path)/core/SkMessageBus.h',
'<(skia_src_path)/core/SkMetaData.cpp',
'<(skia_src_path)/core/SkMipMap.cpp',
@@ -275,6 +276,7 @@
'<(skia_include_path)/core/SkMaskFilter.h',
'<(skia_include_path)/core/SkMath.h',
'<(skia_include_path)/core/SkMatrix.h',
+ '<(skia_include_path)/core/SkMatrixImageFilter.h',
'<(skia_include_path)/core/SkMetaData.h',
'<(skia_include_path)/core/SkMultiPictureDraw.h',
'<(skia_include_path)/core/SkOnce.h',
diff --git a/gyp/effects.gypi b/gyp/effects.gypi
index 24a79be5e6..54165c057f 100644
--- a/gyp/effects.gypi
+++ b/gyp/effects.gypi
@@ -56,7 +56,6 @@
'<(skia_src_path)/effects/SkTableMaskFilter.cpp',
'<(skia_src_path)/effects/SkTestImageFilters.cpp',
'<(skia_src_path)/effects/SkTileImageFilter.cpp',
- '<(skia_src_path)/effects/SkMatrixImageFilter.cpp',
'<(skia_src_path)/effects/SkTransparentShader.cpp',
'<(skia_src_path)/effects/SkXfermodeImageFilter.cpp',
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index b64a2957fd..40bd38a949 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkImageFilter_DEFINED
#define SkImageFilter_DEFINED
+#include "SkFilterQuality.h"
#include "SkFlattenable.h"
#include "SkMatrix.h"
#include "SkRect.h"
@@ -192,6 +193,13 @@ public:
// Default impl returns union of all input bounds.
virtual void computeFastBounds(const SkRect&, SkRect*) const;
+ /**
+ * Create an SkMatrixImageFilter, which transforms its input by the given matrix.
+ */
+ static SkImageFilter* CreateMatrixFilter(const SkMatrix& matrix,
+ SkFilterQuality,
+ SkImageFilter* input = NULL);
+
#if SK_SUPPORT_GPU
/**
* Wrap the given texture in a texture-backed SkBitmap.
diff --git a/include/effects/SkMatrixImageFilter.h b/include/core/SkMatrixImageFilter.h
index 2c11aa63a3..2c11aa63a3 100644
--- a/include/effects/SkMatrixImageFilter.h
+++ b/include/core/SkMatrixImageFilter.h
diff --git a/samplecode/SampleFilterFuzz.cpp b/samplecode/SampleFilterFuzz.cpp
index 77ae0d898f..30389b600d 100644
--- a/samplecode/SampleFilterFuzz.cpp
+++ b/samplecode/SampleFilterFuzz.cpp
@@ -19,7 +19,6 @@
#include "SkFlattenableSerialization.h"
#include "SkLightingImageFilter.h"
#include "SkMagnifierImageFilter.h"
-#include "SkMatrixImageFilter.h"
#include "SkMatrixConvolutionImageFilter.h"
#include "SkMergeImageFilter.h"
#include "SkMorphologyImageFilter.h"
@@ -310,9 +309,9 @@ static SkImageFilter* make_image_filter(bool canBeNull = true) {
filter = SkOffsetImageFilter::Create(make_scalar(), make_scalar(), make_image_filter());
break;
case MATRIX:
- filter = SkMatrixImageFilter::Create(make_matrix(),
- (SkFilterQuality)R(4),
- make_image_filter());
+ filter = SkImageFilter::CreateMatrixFilter(make_matrix(),
+ (SkFilterQuality)R(4),
+ make_image_filter());
break;
case MATRIX_CONVOLUTION:
{
diff --git a/src/core/SkImageFilter.cpp b/src/core/SkImageFilter.cpp
index f1553e2ed1..fd98911ca5 100644
--- a/src/core/SkImageFilter.cpp
+++ b/src/core/SkImageFilter.cpp
@@ -11,6 +11,7 @@
#include "SkChecksum.h"
#include "SkDevice.h"
#include "SkLazyPtr.h"
+#include "SkMatrixImageFilter.h"
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
#include "SkRect.h"
@@ -368,6 +369,12 @@ bool SkImageFilter::asFragmentProcessor(GrFragmentProcessor**, GrTexture*, const
return false;
}
+SkImageFilter* SkImageFilter::CreateMatrixFilter(const SkMatrix& matrix,
+ SkFilterQuality filterQuality,
+ SkImageFilter* input) {
+ return SkMatrixImageFilter::Create(matrix, filterQuality, input);
+}
+
#if SK_SUPPORT_GPU
void SkImageFilter::WrapTexture(GrTexture* texture, int width, int height, SkBitmap* result) {
diff --git a/src/effects/SkMatrixImageFilter.cpp b/src/core/SkMatrixImageFilter.cpp
index a61867e041..a61867e041 100644
--- a/src/effects/SkMatrixImageFilter.cpp
+++ b/src/core/SkMatrixImageFilter.cpp
diff --git a/tests/ImageFilterTest.cpp b/tests/ImageFilterTest.cpp
index e9792e4b43..87aabd1c8d 100644
--- a/tests/ImageFilterTest.cpp
+++ b/tests/ImageFilterTest.cpp
@@ -20,7 +20,6 @@
#include "SkGradientShader.h"
#include "SkLightingImageFilter.h"
#include "SkMatrixConvolutionImageFilter.h"
-#include "SkMatrixImageFilter.h"
#include "SkMergeImageFilter.h"
#include "SkMorphologyImageFilter.h"
#include "SkOffsetImageFilter.h"
@@ -470,7 +469,7 @@ DEF_TEST(ImageFilterDrawTiled, reporter) {
{ "erode", SkErodeImageFilter::Create(2, 3) },
{ "tile", SkTileImageFilter::Create(SkRect::MakeXYWH(0, 0, 50, 50),
SkRect::MakeXYWH(0, 0, 100, 100), NULL) },
- { "matrix", SkMatrixImageFilter::Create(matrix, kLow_SkFilterQuality) },
+ { "matrix", SkImageFilter::CreateMatrixFilter(matrix, kLow_SkFilterQuality) },
{ "blur and offset", SkOffsetImageFilter::Create(five, five, blur.get()) },
{ "picture and blur", SkBlurImageFilter::Create(five, five, pictureFilter.get()) },
{ "rect shader and blur", SkBlurImageFilter::Create(five, five, rectShaderFilter.get()) },
@@ -533,7 +532,7 @@ static void draw_saveLayer_picture(int width, int height, int tileSize,
SkAutoTUnref<SkColorFilter> cf(SkColorFilter::CreateModeFilter(SK_ColorWHITE, SkXfermode::kSrc_Mode));
SkAutoTUnref<SkImageFilter> cfif(SkColorFilterImageFilter::Create(cf.get()));
- SkAutoTUnref<SkImageFilter> imageFilter(SkMatrixImageFilter::Create(matrix, kNone_SkFilterQuality, cfif.get()));
+ SkAutoTUnref<SkImageFilter> imageFilter(SkImageFilter::CreateMatrixFilter(matrix, kNone_SkFilterQuality, cfif.get()));
SkPaint paint;
paint.setImageFilter(imageFilter.get());
@@ -1076,7 +1075,7 @@ DEF_TEST(ImageFilterNestedSaveLayer, reporter) {
matrix.setScale(SkIntToScalar(2), SkIntToScalar(2));
matrix.postTranslate(SkIntToScalar(-20), SkIntToScalar(-20));
SkAutoTUnref<SkImageFilter> matrixFilter(
- SkMatrixImageFilter::Create(matrix, kLow_SkFilterQuality));
+ SkImageFilter::CreateMatrixFilter(matrix, kLow_SkFilterQuality));
// Test that saveLayer() with a filter nested inside another saveLayer() applies the
// correct offset to the filter matrix.