skia2/gyp
senorblanco@chromium.org 118252962f Implement support for expanding crop rects in image filters
NOTE: this patch set is based on https://codereview.chromium.org/189913021/,
and needs that patch to land first.

Until now, crop rects in Skia have only been able to reduce
the size of the destination bounds, but not expand them.
SVG semantics require the latter as well. The heart of
the change is in applyCropRect(), which now assigns each
edge, instead of doing an intersection with the crop rect.

In order to support this (and still work well with tiled
drawing) we need to clip the resulting crop rect to the
clipping region of the filters. This uses the Context struct
previously landed from https://codereview.chromium.org/189913021/.

Many of the pixel loops are not yet ready to handle a
destination rect larger than the source rect. So we provide
a convenience version of applyCropRect() which creates an
offscreen and pads it out with transparent black. Once the
pixel loops and shaders have been fixed to support larger
destination bounds, they should be switched back to the
non-drawing version of applyCropRect().

BUG=skia:
R=bsalomon@google.com, reed@google.com

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13809 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 17:44:41 +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 Updates to gyp files for building Android.mk 2014-02-28 16:07:39 +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 Add SkCanvas::writePixels that takes info+pixels directly 2014-03-07 03:25:16 +00:00
bench.gypi Add SkCanvas::writePixels that takes info+pixels directly 2014-03-07 03:25:16 +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 Add compile flag to force usage of distance fields for all SkPaints. 2014-03-12 17:05:46 +00:00
common_variables.gypi Add compile flag to force usage of distance fields for all SkPaints. 2014-03-12 17:05:46 +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 Add new module for distance field generation. 2014-03-11 15:57:40 +00:00
debugger.gyp Small tweaks to be able to build everything target: 2014-01-08 21:16:14 +00:00
dm.gyp DM: make GPU tasks multithreaded again. Big refactor. 2014-02-28 20:31:31 +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 First pass at a web app that lets you run Skia code and see the results. 2014-03-11 22:57:50 +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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
freetype.gypi Sanitizing source files in Housekeeper-Nightly 2013-08-21 07:01:29 +00:00
giflib.gyp Sanitizing source files in Housekeeper-Nightly 2014-02-25 03:05:18 +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 support for expanding crop rects in image filters 2014-03-14 17:44:41 +00:00
gpu.gyp Enable use of distance fields via SkPaint flag. 2014-03-11 17:07:15 +00:00
gpu.gypi Enable use of distance fields via SkPaint flag. 2014-03-11 17:07:15 +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 Fix ChromeOS build broken in f84722e477 2014-02-24 21:39:01 +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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
libpng.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
libwebp.gyp Fix warnings on Ubuntu13 2014-02-21 20:11:42 +00:00
lua.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
most.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
nacl.gyp Prepare skia for shared library build on android 2013-06-03 12:10:19 +00:00
opts.gyp Updates to gyp files for building Android.mk 2014-02-28 16:07:39 +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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
public_headers.gypi Cleanup patch to move all of SkImageFilterUtils into SkImageFilter. 2014-03-03 22:13:56 +00:00
SampleApp.gyp Fix SampleApp build 2014-02-26 18:12:11 +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
skflate.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
skia_for_chromium_defines.gypi remove SK_SUPPORT_LEGACY_WRITEPIXELSCONFIG 2014-03-14 17:26:15 +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 Let DM run unit tests. 2014-02-26 16:31:22 +00:00
tests.gypi Add SkCanvas::writePixels that takes info+pixels directly 2014-03-07 03:25:16 +00:00
tools.gyp Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out. 2014-03-03 19:18:39 +00:00
utils.gyp DM: make GPU tasks multithreaded again. Big refactor. 2014-02-28 20:31:31 +00:00
v8.gyp Factor out a BaseContext from JsContext. 2014-03-04 20:44:32 +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
webtry.gyp First pass at a web app that lets you run Skia code and see the results. 2014-03-11 22:57:50 +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 Fix valgrind bot errors introduced in f84722e477. 2014-02-25 18:01:37 +00:00