skia2/include/effects
senorblanco@chromium.org ccf225cebb This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples.
In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before.

This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests.

At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap.

R=reed@google.com

Review URL: https://codereview.chromium.org/19775006

git-svn-id: http://skia.googlecode.com/svn/trunk@10251 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-22 20:03:22 +00:00
..
Sk1DPathEffect.h add optional cull-rect to patheffects, so they can do less work if their results 2013-01-24 21:03:11 +00:00
Sk2DPathEffect.h add optional cull-rect to patheffects, so they can do less work if their results 2013-01-24 21:03:11 +00:00
SkArithmeticMode.h Provide a GPU implementation of SkArithmeticMode, using a custom GrEffect exposed via asNewEffectOrCoeff(). 2013-05-29 20:55:09 +00:00
SkAvoidXfermode.h remove dst/rendertarget support for kARGB_4444_Config 2013-06-21 18:30:53 +00:00
SkBicubicImageFilter.h This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples. 2013-07-22 20:03:22 +00:00
SkBitmapSource.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkBlendImageFilter.h Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch). 2013-07-10 21:22:18 +00:00
SkBlurDrawLooper.h Added toString to SkDrawLooper-derived classes 2013-01-28 20:21:59 +00:00
SkBlurImageFilter.h This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples. 2013-07-22 20:03:22 +00:00
SkBlurMaskFilter.h Modify the blur bench to add tests for high-quality blurs, and large non-integer blurs. Change the Coarse flag (which just turns on separable blurs) to an #ifdef, since separable is no longer just Coarse. (This #ifdef will hopefully be shortlived, once Chrome has switched). 2012-11-29 17:09:27 +00:00
SkColorFilterImageFilter.h This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples. 2013-07-22 20:03:22 +00:00
SkColorMatrix.h Use GrCustomStage to implement color matrix. 2012-10-17 13:36:14 +00:00
SkColorMatrixFilter.h Add printing of SkColorFilter-derived classes to debugger 2013-05-23 14:00:17 +00:00
SkCornerPathEffect.h add optional cull-rect to patheffects, so they can do less work if their results 2013-01-24 21:03:11 +00:00
SkDashPathEffect.h add optional cull-rect to patheffects, so they can do less work if their results 2013-01-24 21:03:11 +00:00
SkDiscretePathEffect.h add optional cull-rect to patheffects, so they can do less work if their results 2013-01-24 21:03:11 +00:00
SkDisplacementMapEffect.h Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch). 2013-07-10 21:22:18 +00:00
SkDrawExtraPathEffect.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkEmbossMaskFilter.h Added toString to SkMaskFilter-derived classes 2013-03-18 17:53:38 +00:00
SkGradientShader.h Add flag to gradients to interpolate colors in premul space. Experimental API to encapsulate the shared parameters for all gradients into a struct. 2013-05-24 14:58:44 +00:00
SkImageFilterUtils.h Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch). 2013-07-10 21:22:18 +00:00
SkKernel33MaskFilter.h Added toString to SkMaskFilter-derived classes 2013-03-18 17:53:38 +00:00
SkLayerDrawLooper.h Add methods to SkLayerDrawLooper to allow adding layers on top 2013-05-22 12:35:50 +00:00
SkLayerRasterizer.h change all interfaces for SkRasterizer to const, in preparation for marking it 2012-12-18 16:57:03 +00:00
SkLerpXfermode.h add SkLerpXfermode 2013-05-21 21:33:11 +00:00
SkLightingImageFilter.h Nuke SkSingleInputImageFilter. 99% of its functionality was refactored into SkImageFilterUtils in https://code.google.com/p/skia/source/detail?r=7467, so it has outlived its usefulness. 2013-02-04 22:57:21 +00:00
SkMagnifierImageFilter.h Allow single-pass filters (which use asNewEffect()) to participate in the image filter DAG. This was done by introducing the SkSinglePassImageFilter abstract base class, which implements canFilterImageGPU() and filterImageGPU() on behalf of the derived class. The derived class still only needs to asNewEffect(). This allows us to recurse on the filter input in SkSinglePassImageFilter::onFilterImageGPU(). It also allows us to remove any knowledge of single-pass image filters from SkGpuDevice and from the SkImageFilter base class as well. 2013-04-08 19:43:22 +00:00
SkMatrixConvolutionImageFilter.h Allow single-pass filters (which use asNewEffect()) to participate in the image filter DAG. This was done by introducing the SkSinglePassImageFilter abstract base class, which implements canFilterImageGPU() and filterImageGPU() on behalf of the derived class. The derived class still only needs to asNewEffect(). This allows us to recurse on the filter input in SkSinglePassImageFilter::onFilterImageGPU(). It also allows us to remove any knowledge of single-pass image filters from SkGpuDevice and from the SkImageFilter base class as well. 2013-04-08 19:43:22 +00:00
SkMergeImageFilter.h Pull SkMergeImageFilter out into its own file. 2012-12-04 14:18:50 +00:00
SkMorphologyImageFilter.h Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch). 2013-07-10 21:22:18 +00:00
SkOffsetImageFilter.h Nuke SkSingleInputImageFilter. 99% of its functionality was refactored into SkImageFilterUtils in https://code.google.com/p/skia/source/detail?r=7467, so it has outlived its usefulness. 2013-02-04 22:57:21 +00:00
SkPaintFlagsDrawFilter.h change SkDrawFilter::filter to return a bool, where false means don't-draw 2012-11-26 20:26:54 +00:00
SkPerlinNoiseShader.h Adding missing SK_API identifier to class so that it's accessible in debug blink. 2013-04-25 14:54:15 +00:00
SkPixelXorXfermode.h Added toString to SkXfermode-derived classes (for debugger) 2013-01-22 14:32:09 +00:00
SkPorterDuff.h clone of https://codereview.appspot.com/7208043/ 2013-01-30 21:36:11 +00:00
SkRectShaderImageFilter.h Small adjustments to SkRectShaderImageFilter to follow up on original cl. 2013-02-21 20:26:50 +00:00
SkStippleMaskFilter.h Added toString to SkMaskFilter-derived classes 2013-03-18 17:53:38 +00:00
SkTableColorFilter.h Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:09:54 +00:00
SkTableMaskFilter.h Added toString to SkMaskFilter-derived classes 2013-03-18 17:53:38 +00:00
SkTestImageFilters.h Pull SkMergeImageFilter out into its own file. 2012-12-04 14:18:50 +00:00
SkTransparentShader.h Added print out of SkShader information to debugger 2013-01-15 20:17:47 +00:00
SkXfermodeImageFilter.h Implement offset for GPU filter path. Although we can't yet use this in Blink for FEOffset, due to SVG semantics, we can use it to support crop rect (upcoming patch). 2013-07-10 21:22:18 +00:00