skia2/include/effects
senorblanco@chromium.org 3f2d45aff6 (Relanding r7275 with assert fix, plus fixes from r7276, r7280, r7283.)
Implement a bicubic resampling image filter, with raster and GPU backends.
In order to get this to work on the GPU side, I had to modify the width and height of the drawn texture in drawSprite() and drawDevice() to use the filtered texture's dimensions, instead of the source texture.  (This wasn't a problem before since all other image filters produce results the same dimensions as their input texture.)
For now, this implementation only does axis-aligned scaling (same as the Lanczos-3 implementation in Chrome).  It's also done for correctness and clarity, not speed, so there are lots of opportunities for speedups.

Committed: https://code.google.com/p/skia/source/detail?r=7275

Review URL: https://codereview.appspot.com/7033049

git-svn-id: http://skia.googlecode.com/svn/trunk@7287 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 20:48:20 +00:00
..
Sk1DPathEffect.h change all patheffect methods to const, in preparation for marking its 2012-12-18 16:12:09 +00:00
Sk2DPathEffect.h change all patheffect methods to const, in preparation for marking its 2012-12-18 16:12:09 +00:00
SkArithmeticMode.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkAvoidXfermode.h Mark all methods on SkXfermode as const, in preparation for declaring all 2012-12-17 19:55:24 +00:00
SkBicubicImageFilter.h (Relanding r7275 with assert fix, plus fixes from r7276, r7280, r7283.) 2013-01-18 20:48:20 +00:00
SkBitmapSource.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkBlendImageFilter.h Rename onFilterImageGPU to filterImageGPU(), to match skia convention. No change in functionality. 2013-01-10 19:55:18 +00:00
SkBlurDrawLooper.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
SkBlurImageFilter.h Rename onFilterImageGPU to filterImageGPU(), to match skia convention. No change in functionality. 2013-01-10 19:55: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 Add a factory Create function for SkColorFilterImageFilter, and move the matrix optimization there. This will allow the Chrome compositor to extract the optimized matrix, and potentially apply the color matrix itself, saving a buffer allocation & draw. 2012-10-26 19:37:00 +00:00
SkColorMatrix.h Use GrCustomStage to implement color matrix. 2012-10-17 13:36:14 +00:00
SkColorMatrixFilter.h Wrap GrEffects in GrEffectPtr. 2013-01-16 15:16:18 +00:00
SkCornerPathEffect.h change all patheffect methods to const, in preparation for marking its 2012-12-18 16:12:09 +00:00
SkDashPathEffect.h change all patheffect methods to const, in preparation for marking its 2012-12-18 16:12:09 +00:00
SkDiscretePathEffect.h change all patheffect methods to const, in preparation for marking its 2012-12-18 16:12:09 +00:00
SkDisplacementMapEffect.h Implementation of the displacement effect (both CPU and GPU) 2013-01-15 15:40:19 +00:00
SkDrawExtraPathEffect.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkEmbossMaskFilter.h change SkMaskFilter methods to const, in preparation for making the class as 2012-12-18 19:18:39 +00:00
SkGradientShader.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
SkKernel33MaskFilter.h change SkMaskFilter methods to const, in preparation for making the class as 2012-12-18 19:18:39 +00:00
SkLayerDrawLooper.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkLayerRasterizer.h change all interfaces for SkRasterizer to const, in preparation for marking it 2012-12-18 16:57:03 +00:00
SkLightingImageFilter.h Change SkLightingImageFilter to derive from SkSingleInputImageFilter, so that it can participate in filter DAGs. 2012-10-05 17:38:00 +00:00
SkMagnifierImageFilter.h Wrap GrEffects in GrEffectPtr. 2013-01-16 15:16:18 +00:00
SkMatrixConvolutionImageFilter.h Wrap GrEffects in GrEffectPtr. 2013-01-16 15:16:18 +00:00
SkMergeImageFilter.h Pull SkMergeImageFilter out into its own file. 2012-12-04 14:18:50 +00:00
SkMorphologyImageFilter.h Rename onFilterImageGPU to filterImageGPU(), to match skia convention. No change in functionality. 2013-01-10 19:55:18 +00:00
SkOffsetImageFilter.h Break out SkOffsetImageFilter into its own file, and derive it from 2012-11-06 20:29:39 +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
SkPixelXorXfermode.h fix warnings related to constness in overrides of SkColorFilter 2012-12-24 14:38:46 +00:00
SkPorterDuff.h Export effects classes with SK_API. 2012-10-12 14:41:39 +00:00
SkSingleInputImageFilter.h This patch implements generalized DAG connectivity for SkImageFilter. SkImageFilter maintains a list of inputs, which can be constructed either from a SkImageFilter** or zero or more SkImageFilter* arguments (varargs). 2012-10-10 20:36:13 +00:00
SkStippleMaskFilter.h change SkMaskFilter methods to const, in preparation for making the class as 2012-12-18 19:18:39 +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 change SkMaskFilter methods to const, in preparation for making the class as 2012-12-18 19:18:39 +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