skia2/gyp
senorblanco@chromium.org c4b12f19a4 Implement correct clipping for image filters.
Image filters in Skia currently clip the size of the the offscreen
bitmap used for filtering to the device clip bounds. This means that
any pixel-moving filter (e.g., blur) has edge artifacts at the clip
boundaries. This is problematic for tiling, where a single SkPicture
is played back with a clip set to the tile boundaries.

By implementing the onFilterBounds() traversal, and using it in
saveLayer() when a filter is present, we can clip the layer to the
expanded clip rect. Note that this requires that the traversal be
performed in reverse as compared to computeFastBounds().  (It's also
done in device space, unlike computeFastBounds()).

New test imagefiltersclipped tests pixel-moving filters when clipped
by various clip rects.
New test imageblurtiled tests tiled (compositor-style) rendering of
blurred text. There should be no artifacts at the tile boundaries.

BUG=337831
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13323 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 17:51:22 +00:00
..
android_deps.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
android_framework_lib.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
android_system.gyp Update DEPS and GYP to use the copy of Android in platform_tools. 2013-05-02 12:27:21 +00:00
angle.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
animator.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
apptype_console.gypi Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
bench.gyp Initial QuadTree implementation 2014-02-03 18:08:33 +00:00
chromeos_deps.gyp GYP Changes and Scripts for Compiling Skia for ChromeOS 2013-06-11 15:52:19 +00:00
common_conditions.gypi Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
common_variables.gypi Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
common.gypi Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
core.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
core.gypi Initial QuadTree implementation 2014-02-03 18:08:33 +00:00
debugger.gyp Small tweaks to be able to build everything target: 2014-01-08 21:16:14 +00:00
dm.gyp Make tests output spin on the same line by default. 2014-01-02 16:19:53 +00:00
edtaa.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
effects.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
effects.gypi fix bad gyp file move 2014-01-31 16:16:22 +00:00
everything.gyp Move DM from everything to most, to build it by default. 2014-01-08 16:52:42 +00:00
experimental.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
FileReaderApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
flags.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
fontconfig.gyp Roll fontconfig to 2.11.0 and reenable poppler on mac 2014-01-15 17:24:22 +00:00
freetype.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
freetype.gypi Sanitizing source files in Housekeeper-Nightly 2013-08-21 07:01:29 +00:00
gm.gyp Allow GMs to be used as benchmarks. Make convex_poly_clip opt in. 2014-02-03 14:48:17 +00:00
gmslides.gypi Implement correct clipping for image filters. 2014-02-05 17:51:22 +00:00
gpu.gyp Move GrTextContext to private interface 2014-01-30 16:41:23 +00:00
gpu.gypi Add convex polygon rendering effect and GM to test it. 2014-01-30 18:15:51 +00:00
gputest.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
iconv.gyp Sanitizing source files in Housekeeper-Nightly 2013-08-21 07:01:29 +00:00
images.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
jsoncpp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
libjpeg.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
libwebp.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
lua.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
most.gyp Move DM from everything to most, to build it by default. 2014-01-08 16:52:42 +00:00
nacl.gyp Prepare skia for shared library build on android 2013-06-03 12:10:19 +00:00
opts.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
pathops_unittest.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pathops_unittest.gypi path ops work in progress 2013-10-02 14:49:34 +00:00
pathops.gypi path ops work in progress 2013-09-16 15:55:01 +00:00
pdf.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
pdf.gypi Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pdfviewer_lib.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pdfviewer.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pixman_test.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
poppler.gyp Add extra warnings to match what Android uses. 2013-11-20 15:13:49 +00:00
ports.gyp Split atomic and mutex implementations and make inlinable. 2013-12-18 15:27:39 +00:00
public_headers.gypi remove (now unused) Sk64 -- just use int64_t 2014-01-10 22:05:41 +00:00
SampleApp.gyp Allow GMs to be used as benchmarks. Make convex_poly_clip opt in. 2014-02-03 14:48:17 +00:00
sfnt.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
shapeops_demo.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
shapeops_edge.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
shapeops_tool.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
SimpleCocoaApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
SimpleiOSApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
skia_lib.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
skpskgr_test.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
svg.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
tests.gyp Initial QuadTree implementation 2014-02-03 18:08:33 +00:00
tools.gyp Add bench_record. 2014-01-13 12:03:47 +00:00
utils.gyp initial import of Chrome's trace_event into skia framework 2014-01-31 00:04:25 +00:00
v8.gyp Move v8 into third_party. 2014-01-08 15:14:09 +00:00
views_animated.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
views.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
xml.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
xps.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
zlib.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00