skia2/gm
senorblanco@chromium.org 6776b82d46 Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway.
To do this, this patch changes the "offset/loc" parameter in filterImage() / onFilterImage() from an inout-param to an out-param only, so that the calling filter can know how much the input filter wants its result offset (and doesn't include the original primitive position). This offset can then be applied to the current filter's crop rect. (I've renamed the parameter "offset" in all cases to make this clear.) This makes the call sites in SkCanvas/SkGpuDevice responsible for applying the resulting offset to the primitive's position, which is actually a fairly small change.

This change also fixes SkTileImageFilter and SkOffsetImageFilter to correctly handle an input offset, which they weren't before. This required modifying the GM's, since they assumed the broken behaviour.

NOTE: this will require rebaselining the imagefiltersgraph test, since it has a new test case.

NOTE: this will "break" the Blink layout tests css3/filters/effect-reference-subregion-chained-hw.html and css3/filters/effect-reference-subregion-hw.html, but it actually makes them give correct results. It should be suppressed on the skia roll, and I'll rebaseline it.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12895 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 21:48:22 +00:00
..
rebaseline_server make results_test.py work better within python unittest framework 2014-01-03 16:04:11 +00:00
tests rebaseline gm self-tests after https://code.google.com/p/skia/source/detail?r=12850 2014-01-03 16:37:16 +00:00
viewer Create AJAX live-viewer of expected-vs-actual GM results 2013-08-02 19:08:52 +00:00
__init__.py rebaseline.py: if --tests is not specified, get test list from actual-results.json 2013-06-05 15:43:37 +00:00
aaclip.cpp Sanitizing source files in Housekeeper-Nightly 2013-08-16 07:01:49 +00:00
aarectmodes.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
alphagradients.cpp Sanitizing source files in Housekeeper-Nightly 2013-05-25 07:01:12 +00:00
androidfallback.cpp skip android_paint GM in pipe mode 2013-10-28 20:40:41 +00:00
arcofzorro.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
arithmode.cpp Provide a GPU implementation of SkArithmeticMode, using a custom GrEffect exposed via asNewEffectOrCoeff(). 2013-05-29 20:55:09 +00:00
beziereffects.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
bicubicfilter.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
bigblurs.cpp Sanitizing source files in Housekeeper-Nightly 2013-11-08 07:01:56 +00:00
bigmatrix.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
bigtext.cpp Sanitizing source files in Housekeeper-Nightly 2013-06-06 07:01:37 +00:00
bitmapcopy.cpp Reverting r12427 2013-12-02 13:50:38 +00:00
bitmapfilters.cpp Reverting r12427 2013-12-02 13:50:38 +00:00
bitmapmatrix.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
bitmappremul.cpp [PDF] Add unpremultiply support and a GM (try5) 2013-10-24 15:20:00 +00:00
bitmaprect.cpp Fixed remaining clang compiler warnings 2012-12-03 17:35:19 +00:00
bitmaprecttest.cpp augmenting fix in 8700 and 8701, be careful NOT to "sort" the result of mapRect 2013-04-18 15:37:14 +00:00
bitmapscroll.cpp fix warning from scalar --> int32 conversion 2013-01-07 19:54:40 +00:00
bitmapshader.cpp Sanitizing source files in Housekeeper-Nightly 2013-12-07 07:02:21 +00:00
bitmapsource.cpp Implement srcRect and dstRect functionality in SkBitmapSource. This is required for the "preserveAspectRatio" options of SVG's feImage. Covered by new GM "bitmapsource". 2013-12-09 18:31:42 +00:00
bleed.cpp [GPU] Use view matrix + rect to implement subrect for drawBitmap when there is a mask filter and bleed. 2013-11-22 20:34:59 +00:00
blurquickreject.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
blurrect.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
blurroundrect.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
blurs.cpp remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats 2013-12-17 16:44:46 +00:00
canvasstate.cpp Third wave of Win64 warning cleanup 2013-10-16 17:48:11 +00:00
circles.cpp Sanitizing source files in Housekeeper-Nightly 2013-09-10 07:01:44 +00:00
circularclips.cpp Use Path Ops to generate PDF clips 2013-08-08 02:52:05 +00:00
clippedbitmapshaders.cpp Sanitizing source files in Housekeeper-Nightly 2013-10-24 07:01:59 +00:00
cmykjpeg.cpp Sanitizing source files in Housekeeper-Nightly 2013-05-30 07:01:29 +00:00
coloremoji.cpp improve bitmap font support (FreeType only) 2013-12-10 18:09:36 +00:00
colorfilterimagefilter.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
colormatrix.cpp Reverting r12635 (Make leak counters thread-safe - https://codereview.chromium.org/99483003) due to compile errors on Mac 10.6 & in Chrome 2013-12-12 14:24:20 +00:00
colortype.cpp if we can't load Times, use default font 2013-06-03 17:45:29 +00:00
complexclip2.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
complexclip.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
composeshader.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
conicpaths.cpp Sanitizing source files in Housekeeper-Nightly 2013-06-21 07:00:53 +00:00
convexpaths.cpp Reverting r12635 (Make leak counters thread-safe - https://codereview.chromium.org/99483003) due to compile errors on Mac 10.6 & in Chrome 2013-12-12 14:24:20 +00:00
copyTo4444.cpp Fix build. 2013-08-07 19:39:56 +00:00
cubicpaths.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
dashcubics.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
dashing.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
degeneratesegments.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
deviceproperties.cpp Split SkDevice into SkBaseDevice and SkBitmapDevice 2013-08-29 11:54:56 +00:00
displacement.cpp Accept displacement with no displacement input 2013-12-19 17:00:46 +00:00
display_json_results.py gm_json.py: add ability to load JSON file from a string, not just a local file 2013-06-04 17:50:36 +00:00
distantclip.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2012-09-18 02:01:09 +00:00
downsamplebitmap.cpp clean up printf usage in gm 2013-07-25 19:14:37 +00:00
drawbitmaprect.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
drawlooper.cpp Push sigma-based blur interface into our GMs/benches/tests/samplecode 2013-09-06 14:16:12 +00:00
dropshadowimagefilter.cpp Enhance SkDropShadowImageFilter to support separate X & Y sigmas, and crop rect. This required a new flavour of the constructor. 2013-11-26 21:52:38 +00:00
emptypath.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
extractbitmap.cpp Split SkDevice into SkBaseDevice and SkBitmapDevice 2013-08-29 11:54:56 +00:00
factory.cpp Add Options to SkDecodingImageGenerator, simplify API. 2014-01-02 13:15:13 +00:00
fatpathfill.cpp promote SkImage::AlphaType to SkAlphaType 2013-09-20 19:33:52 +00:00
filltypes.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
filltypespersp.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
filterbitmap.cpp Tweaks in how to apply bitmap filter levels in GPU. 2013-12-16 21:02:29 +00:00
fontcache.cpp Sanitizing source files in Housekeeper-Nightly 2013-10-10 07:01:40 +00:00
fontmgr.cpp Fix leak detected in FontMgrMatchGM::onDraw by Valgrind. 2013-11-12 15:25:29 +00:00
fontscaler.cpp Reduce number of glyphs drawn by fontscaler GM to avoid N4 MSAA4 crash 2013-09-09 16:19:40 +00:00
gammatext.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:14:13 +00:00
getpostextpath.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
giantbitmap.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
gm_error.h Add SkPDFDeviceFlatenner which extends SkPDFDevice to add support to flatten the path and the text when we have perspective. 2013-10-14 13:42:12 +00:00
gm_expectations.cpp Fix compilation with SK_ENABLE_INST_COUNT=1 2013-12-05 12:08:12 +00:00
gm_expectations.h Add JSON output option to bench. 2013-12-03 18:16:48 +00:00
gm_json.py rebaseline_server: write JSON files using Unix line endings, even on Windows 2013-12-18 15:28:24 +00:00
gm.cpp Implement a benchmark for GrResourceCache 2013-11-21 06:21:58 +00:00
gm.h Implement a benchmark for GrResourceCache 2013-11-21 06:21:58 +00:00
gmmain.cpp Add default resource path for skia test cases in gm and bench tools. 2013-12-31 14:29:52 +00:00
gradient_matrix.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
gradientDirtyLaundry.cpp Sanitizing source files in Housekeeper-Nightly 2013-07-10 07:00:58 +00:00
gradients_no_texture.cpp Two and three color GPU gradients without textures. 2013-09-09 15:36:26 +00:00
gradients.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
gradtext.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
hairlines.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
hairmodes.cpp add onOnceBeforeDraw() virtual, so gm's can easily perform lazy initialization 2012-11-27 15:15:58 +00:00
hittestpath.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
image.cpp Implement a benchmark for GrResourceCache 2013-11-21 06:21:58 +00:00
image.h check-point for image/surface work 2012-07-29 20:38:16 +00:00
imageblur.cpp text size is an SkScalar, Windows reminds me. 2013-09-16 19:05:44 +00:00
imagefiltersbase.cpp Adding more validation 2013-11-25 21:46:31 +00:00
imagefilterscropped.cpp Remove support for SK_CROP_RECT_IS_INT, now that it is no longer used in Blink or Chrome. 2013-10-16 15:46:00 +00:00
imagefiltersgraph.cpp Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway. 2014-01-03 21:48:22 +00:00
imagemagnifier.cpp Magnifier gpu path fix 2013-10-21 15:59:26 +00:00
internal_links.cpp Fix pipe/annotation. 2013-10-29 19:23:26 +00:00
inversepaths.cpp Inverse fill support in PDF 2013-07-31 22:54:31 +00:00
lcdtext.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:14:13 +00:00
lerpmode.cpp Sanitizing source files in Housekeeper-Nightly 2013-05-22 07:01:13 +00:00
lighting.cpp Remove support for SK_CROP_RECT_IS_INT, now that it is no longer used in Blink or Chrome. 2013-10-16 15:46:00 +00:00
linepaths.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
lumafilter.cpp Align SkLumaColorFilter with the spec. 2013-10-10 20:13:51 +00:00
matrixconvolution.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
megalooper.cpp Push sigma-based blur interface into our GMs/benches/tests/samplecode 2013-09-06 14:16:12 +00:00
mixedxfermodes.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
modecolorfilters.cpp Work around stack overflow 2013-03-14 17:24:16 +00:00
morphology.cpp Remove support for SK_CROP_RECT_IS_INT, now that it is no longer used in Blink or Chrome. 2013-10-16 15:46:00 +00:00
nested.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
ninepatchstretch.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
nonclosedpaths.cpp add GM case nonclosedpaths. The 2 bugs below showed some non-closed paths which are easy to get wrong rendering results. So add a GM case for this kind paths to avoid potential bugs to be introduced. 2013-11-09 01:37:30 +00:00
offsetimagefilter.cpp Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway. 2014-01-03 21:48:22 +00:00
optimizations.cpp Remove unnamed namespace usage from 'gm'. 2013-11-20 21:32:10 +00:00
ovals.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
patheffects.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:19:56 +00:00
pathfill.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
pathinterior.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
pathopsinverse.cpp path ops -- crap, I checked in the wrong file 2013-04-22 20:12:47 +00:00
pathopsskpclip.cpp path ops : make it real 2013-04-25 13:34:40 +00:00
pathreverse.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:14:13 +00:00
perlinnoise.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
pictureimagefilter.cpp Don't run the GM in serialization modes. 2013-12-12 23:54:33 +00:00
points.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
poly2poly.cpp Sanitizing source files in Housekeeper-Nightly 2013-06-22 07:00:58 +00:00
polygons.cpp Fix warning as error on Mac for implicit narrowing conversion from r12413. 2013-11-27 16:08:37 +00:00
quadpaths.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
rects.cpp add some GM tests for rects 2013-11-01 11:54:29 +00:00
roundrects.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
rrect.cpp GM : Unused parameters cleanup 2013-02-27 15:41:12 +00:00
rrects.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
samplerstress.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:19:56 +00:00
scalebitmap.cpp Sanitizing source files in Housekeeper-Nightly 2013-07-10 07:00:58 +00:00
selftest.cpp gm: record IntentionallySkipped tests 2013-04-10 12:17:34 +00:00
shaderbounds.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
shadertext2.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
shadertext3.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
shadertext.cpp Third wave of Win64 warning cleanup 2013-10-16 17:48:11 +00:00
shadows.cpp Push sigma-based blur interface into our GMs/benches/tests/samplecode 2013-09-06 14:16:12 +00:00
shallowgradient.cpp Fix minor memory leaks 2013-03-27 21:31:21 +00:00
simpleaaclip.cpp remove SkFloatToScalar macro 2013-11-25 19:44:07 +00:00
skbug1719.cpp detach blur result texture when it is the same texture used to render path mask 2013-10-16 13:53:54 +00:00
spritebitmap.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-17 07:06:06 +00:00
srcmode.cpp move SkImage::ColorType into SkColorType 2013-11-01 13:46:54 +00:00
stringart.cpp One more try at fixing warnings 2013-09-19 17:21:39 +00:00
strokefill.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:19:56 +00:00
strokerect.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
strokerects.cpp Just a typo. Rename StrokeRect to StrokeRects in strokerects.cpp, making it different from the class name in strokerect.cpp for debugging. 2013-12-09 09:14:59 +00:00
strokes.cpp Change old PRG to be SkLCGRandom; change new one to SkRandom 2013-09-09 20:09:12 +00:00
system_preferences_default.cpp
system_preferences_mac.mm gm: Include system_preferences.h in mac file. 2012-09-26 15:41:42 +00:00
system_preferences.h
tablecolorfilter.cpp Defining new color constat for transparent color 2012-12-06 21:47:40 +00:00
techtalk1.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
testimagefilters.cpp Move SkComposeImageFilter into its own {.h, .cpp} files 2013-08-07 00:07:51 +00:00
texdata.cpp Implement a benchmark for GrResourceCache 2013-11-21 06:21:58 +00:00
texteffects.cpp Third wave of Win64 warning cleanup 2013-10-16 17:48:11 +00:00
thinrects.cpp Sanitizing source files in Housekeeper-Nightly 2013-05-15 07:01:09 +00:00
thinstrokedrects.cpp Add a new GM for very thin stroke widths 2013-06-26 17:06:45 +00:00
tileimagefilter.cpp Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway. 2014-01-03 21:48:22 +00:00
tilemodes_scaled.cpp Sanitizing source files in Housekeeper-Nightly 2013-09-05 07:01:19 +00:00
tilemodes.cpp Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"" 2013-10-31 17:28:30 +00:00
tinybitmap.cpp Revert "Revert "change SkColorTable to be immutable"" 2013-10-10 14:44:56 +00:00
twopointradial.cpp Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
typeface.cpp Sanitizing source files in Housekeeper-Nightly 2013-10-31 07:01:53 +00:00
valgrind.supp Yet another round of valgrind suppressions 2013-12-19 13:41:48 +00:00
vertices.cpp reenable vertices gm, adding picture support 2013-12-30 15:51:25 +00:00
verttext2.cpp Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/) 2012-08-23 18:19:56 +00:00
verttext.cpp Revert unwanted change to verttext.cpp. 2013-10-24 22:38:48 +00:00
verylargebitmap.cpp Exclude verylargebitmap test from replay modes on windows. 2013-10-30 18:58:03 +00:00
xfermodeimagefilter.cpp Implement srcRect and dstRect functionality in SkBitmapSource. This is required for the "preserveAspectRatio" options of SVG's feImage. Covered by new GM "bitmapsource". 2013-12-09 18:31:42 +00:00
xfermodes2.cpp store SkAlphaType inside SkBitmap, on road to support unpremul 2013-10-21 14:00:07 +00:00
xfermodes3.cpp store SkAlphaType inside SkBitmap, on road to support unpremul 2013-10-21 14:00:07 +00:00
xfermodes.cpp [PDF] Fix clipping in xfermode improvement. 2013-12-17 23:38:28 +00:00