skia2/include/effects
commit-bot@chromium.org 7b320703d4 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).
This patch adds the parameter to the filterImageGPU() signature, plumbs through the code on the GPU side, and implements support for it in SkXfermodeImageFilter for both raster and GPU.

Of the remaining filters with GPU implementations, Blur, Morphology, Bicubic and Displacement work fine; they're commutative wrt offset and can simply pass it up the chain. Blend is not, but will be removed shortly anyway (has been replaced with SkXfermodeImageFilter in Blink).

R=reed@google.com, bsalomon@google.com

Author: senorblanco@chromium.org

Review URL: https://chromiumcodereview.appspot.com/15995026

git-svn-id: http://skia.googlecode.com/svn/trunk@9977 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-10 21:22:18 +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 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
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 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
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 New SkRectShaderImageFilter image filter 2013-02-21 15:02:28 +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