Implements a matrix convolution filter (raster path only).  The filtering loop
is templated on the tiling mode for speed:  interior pixels are unconditionally
fetched; border pixels apply the appropriate tiling mode before fetching.  It
handles target, bias, divisor (as gain), and edge modes (named to be more
skia-like).  It does not handle the "preserveAlpha" semantics of
feConvolveMatrix, nor "kernelUnitLength".



git-svn-id: http://skia.googlecode.com/svn/trunk/gyp@5592 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/bench.gypi b/bench.gypi
index 81a00ed..ecb533a 100644
--- a/bench.gypi
+++ b/bench.gypi
@@ -20,6 +20,7 @@
     '../bench/InterpBench.cpp',
     '../bench/MathBench.cpp',
     '../bench/MatrixBench.cpp',
+    '../bench/MatrixConvolutionBench.cpp',
     '../bench/MemoryBench.cpp',
     '../bench/MorphologyBench.cpp',
     '../bench/MutexBench.cpp',
diff --git a/effects.gypi b/effects.gypi
index 164fc82..aef7f2c 100644
--- a/effects.gypi
+++ b/effects.gypi
@@ -33,6 +33,7 @@
     '<(skia_src_path)/effects/SkLayerDrawLooper.cpp',
     '<(skia_src_path)/effects/SkLayerRasterizer.cpp',
     '<(skia_src_path)/effects/SkLightingImageFilter.cpp',
+    '<(skia_src_path)/effects/SkMatrixConvolutionImageFilter.cpp',
     '<(skia_src_path)/effects/SkMorphologyImageFilter.cpp',
     '<(skia_src_path)/effects/SkPaintFlagsDrawFilter.cpp',
     '<(skia_src_path)/effects/SkPixelXorXfermode.cpp',
diff --git a/gmslides.gypi b/gmslides.gypi
index a0d418b..003cb05 100644
--- a/gmslides.gypi
+++ b/gmslides.gypi
@@ -46,6 +46,7 @@
     '../gm/imagefiltersgraph.cpp',
     '../gm/lcdtext.cpp',
     '../gm/linepaths.cpp',
+    '../gm/matrixconvolution.cpp',
     '../gm/morphology.cpp',
     '../gm/ninepatchstretch.cpp',
     '../gm/nocolorbleed.cpp',