Commit Graph

145 Commits

Author SHA1 Message Date
senorblanco@chromium.org
194d775edc This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples.
In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before.

This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests.

At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap.

R=reed@google.com

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10338 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-24 22:19:24 +00:00
robertphillips@google.com
58c856a54a Reverting r10251 (Implement crop rect for SkImageFilter) due to Chromium-side unit test failures
git-svn-id: http://skia.googlecode.com/svn/trunk@10304 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-24 13:18:06 +00:00
senorblanco@chromium.org
ccf225cebb This patch implements a crop rect for SkImageFilter. It has been implemented for SkColorFilterImageFilter and SkBlurImageFilter as examples.
In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before.

This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests.

At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10251 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-22 20:03:22 +00:00
humper@google.com
9c96d4b5ff fix trivial matrix computation
Revert "Reverted 10056-10059"

This reverts commit bab4ebcaa7270c3b866a8e10917c39b055ebd51a.

Fix broken GM test, reintroduce image scaling.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10066 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-14 01:44:59 +00:00
robertphillips@google.com
d647426714 Reverted 10056-10059
git-svn-id: http://skia.googlecode.com/svn/trunk@10060 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-13 15:37:25 +00:00
humper@google.com
d64d8a905a Working plumb of image scaling:
1) always generate mipmaps if we detect that we are downsampling.
2) pre-scale the image if we detect that we are upsampling
   (currently valid for scale+translate only)
3) A few miscellaneous bug fixes related to image scaling.

Still need SSE/Neon versions of these image scalers.

BUG=
R=bsalomon@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10056 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-12 21:14:33 +00:00
humper@google.com
b088947f27 New bitmap filter checkin; this time with less build breakage
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9944 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 21:37:14 +00:00
commit-bot@chromium.org
b686539ab5 Added GM and Bench
Added GM's and Bench


Added GM file nate_gradients.cpp

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

Author: dierk@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9938 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 19:43:29 +00:00
humper@google.com
1a8940e558 Revert "More general image filter interface; tested implementation of standalone"
This reverts commit 4df3e8b079e019af5f60c13e7e6ec6589663962a.

git-svn-id: http://skia.googlecode.com/svn/trunk@9937 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 18:02:06 +00:00
humper@google.com
25fc6b9bfb More general image filter interface; tested implementation of standalone
image scaler (not yet plumbed).  High quality downsampler.  Fast SSE
resampler.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9936 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 17:48:15 +00:00
robertphillips@google.com
e1b75b4096 GM (and fix) for drawArc capping issue
https://codereview.chromium.org/18271003/



git-svn-id: http://skia.googlecode.com/svn/trunk@9928 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 15:03:59 +00:00
robertphillips@google.com
ad4d499f86 Add a new GM for very thin stroke widths
git-svn-id: http://skia.googlecode.com/svn/trunk@9770 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-26 17:06:45 +00:00
egdaniel@google.com
6fd5317512 Turn off conic GM for now
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9707 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-20 18:05:31 +00:00
egdaniel@google.com
def9f6e3eb Add GM to test conic path rendering
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9702 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-20 16:54:31 +00:00
commit-bot@chromium.org
ace2269edf Fixed a bug with linear gradient PDF matrices and added test cases
R=vandebo@chromium.org, reed@google.com

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9553 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-12 21:33:02 +00:00
reed@google.com
5a64902ee9 call through to the device from SkDraw
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9449 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-05 18:00:30 +00:00
reed@google.com
37ab298bd8 reenable colortype gm
git-svn-id: http://skia.googlecode.com/svn/trunk@9413 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-03 17:49:37 +00:00
robertphillips@google.com
4157085470 Added megalooper GM
https://codereview.chromium.org/16004011/



git-svn-id: http://skia.googlecode.com/svn/trunk@9409 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-03 17:13:25 +00:00
robertphillips@google.com
ef7d98e960 Disable colortype GM due to crash
git-svn-id: http://skia.googlecode.com/svn/trunk@9392 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-02 15:01:06 +00:00
reed@google.com
7edec14039 start a wrapper for color fonts
BUG=
R=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9381 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 20:17:57 +00:00
senorblanco@chromium.org
86fc266eda Implement SkXfermode image filter. This required changing the signature of SkXfermode::asNewEffectOrCoeffs(), to add an optional background texture.
For the raster path, we do a straightforward 2-pass method: draw background, then composite the foreground over it.

For the GPU path, if the xfermode can be expressed as an effect, we build an effect with the background texture incorporated, then do a single-pass draw fetching both foreground and background textures, and compositing to the result. If the xfermode is expressed as src/dst coefficients, we do a 2-pass draw as in the raster path and use fixed-function blending.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9373 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 17:49:12 +00:00
scroggo@google.com
7def5e1630 Separate core and images project.
SkImage calls functions on SkImageDecoder and SkImageEncoder. This
is desired behavior, and it is also desired to include SkImage as
a part of core. In order to keep core from depending on images,
update SkImageDecoder_empty.cpp to implement all of SkImageDecoder
and SkImageEncoder. This file will be built by chrome (in
https://codereview.chromium.org/15960015).

Move force_linking from SkImageDecoder.cpp to its own file. It must
be called to force linking with the image decoders if desired. Call
the function in tools that need it:
sk_image
render_pictures
render_pdfs
sk_hello
filter
bench_pictures
debugger

SkImageDecoder:
Derive from SkNoncopyable, instead of duplicating its
hiding of constructors.

skhello:
Return rather than trying to write a null SkData to the stream.

Revert "Hamfistedly removed core dependence on images"
(commit 0f05f682a90bc125323677abf3476e1027d174f5) and
"Move SkImage::encode to SkImage_Codec.cpp."
(commit 83e47a954d0bf65439f3d9c0c93213063dd70da3.)
These two commits were temporary fixes that this change
cleans up.

SkSnapshot.cpp:
Check for a NULL encoder returned by SkImageEncoder::Create.

BUG=https://code.google.com/p/skia/issues/detail?id=1275
R=djsollen@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9364 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 14:00:10 +00:00
reed@google.com
f2de1e286b add new gm for bicubic filtering
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9291 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-28 15:29:25 +00:00
commit-bot@chromium.org
912e68ec46 Fix degenerate and near-degenerate hairlines on the gpu
R=robertphillips@google.com, bsalomon@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9279 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 18:51:55 +00:00
reed@google.com
3d3a860d0b Add flag to gradients to interpolate colors in premul space. Experimental API to encapsulate the shared parameters for all gradients into a struct.
BUG=
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9273 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-24 14:58:44 +00:00
reed@google.com
8c6411a603 reenable lerpmode in gms, now that I think we fixed the global-initialization
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9234 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 13:21:32 +00:00
reed@google.com
e96cf0848d disable lerpmode gm until we fix serialization
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9230 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 21:52:03 +00:00
reed@google.com
b83cb9bf89 add SkLerpXfermode
BUG=
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9229 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 21:33:11 +00:00
robertphillips@google.com
dd3f365482 Add GM to track thin rectangle rendering
https://codereview.chromium.org/15012024/



git-svn-id: http://skia.googlecode.com/svn/trunk@9120 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-14 16:37:31 +00:00
commit-bot@chromium.org
c5fd461718 Mask orientation and layout correctly.
R=reed@google.com, clefru@google.com

Author: bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9022 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-06 22:23:08 +00:00
robertphillips@google.com
879f6c7c0c Hamfistedly removed core dependence on images
https://codereview.chromium.org/14805002/



git-svn-id: http://skia.googlecode.com/svn/trunk@8947 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-02 00:12:03 +00:00
caryclark@google.com
45a75fb4d0 path ops : make it real
Add an option to SkCanvas to turn on path
ops when combining clips. 

Allow Op() to use one of the input paths
as an output path.

Fix a bug in Op() when the minuend is empty
and the subtrahend is not (for difference).

Change the build to allow core to depend on pathops.
Review URL: https://codereview.chromium.org/14474002

git-svn-id: http://skia.googlecode.com/svn/trunk@8855 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-25 13:34:40 +00:00
commit-bot@chromium.org
a534b84237 Add new roundrect GM
R=bsalomon@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8806 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-22 18:05:19 +00:00
caryclark@google.com
7dfbb0720a path ops : add support for inverse fill
add inverse fill, reverse diff, and gm tests
cleaned up some interfaces
Review URL: https://codereview.chromium.org/14371011

git-svn-id: http://skia.googlecode.com/svn/trunk@8798 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-22 14:37:05 +00:00
jvanverth@google.com
8e2962fbb5 Add a GM to test ovals with a variety of paint settings, matrices and sizes.
Review URL: https://codereview.chromium.org/14329008/


git-svn-id: http://skia.googlecode.com/svn/trunk@8737 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-18 13:59:04 +00:00
bsalomon@google.com
8c463b02d9 Add xfermodes2 GM. Tests all xfer modes with two gradient bitmaps
Review URL: https://codereview.chromium.org/13912017

git-svn-id: http://skia.googlecode.com/svn/trunk@8721 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-17 14:19:44 +00:00
reed@google.com
d638233cbe add gm to test edge case in drawBitmapRectToRect
git-svn-id: http://skia.googlecode.com/svn/trunk@8698 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-16 16:55:38 +00:00
robertphillips@google.com
ad7d481ea9 Add testing of optimizations to GM
https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8658 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 15:13:35 +00:00
robertphillips@google.com
07a8ea0002 Reverting r8654
git-svn-id: http://skia.googlecode.com/svn/trunk@8655 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 14:59:02 +00:00
robertphillips@google.com
c10531b502 Add testing of optimizations to GM
https://codereview.chromium.org/12843028/



git-svn-id: http://skia.googlecode.com/svn/trunk@8654 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-12 14:53:29 +00:00
sugoi@google.com
e3b4c5097a New SVG turbulence in Skia
This cl contains the code for CPU generation of noise.

TEST:Added 'perlinnoise' gm
Review URL: https://codereview.chromium.org/13094003

git-svn-id: http://skia.googlecode.com/svn/trunk@8541 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-05 13:47:09 +00:00
bsalomon@google.com
20edf38a9e Add GM mixed_xfermodes. This is a work in progress and will be used to test fixes for GPU Xfermodes effects.
Review URL: https://codereview.chromium.org/13365005

git-svn-id: http://skia.googlecode.com/svn/trunk@8461 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-01 18:02:55 +00:00
reed@google.com
af0fa6a298 add gm for experimental fontmgr api
git-svn-id: http://skia.googlecode.com/svn/trunk@8426 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-28 13:39:35 +00:00
robertphillips@google.com
8cf10efe75 Reverting r8376, r8373 and r8371 due to Android shader compilation failures
git-svn-id: http://skia.googlecode.com/svn/trunk@8378 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 22:16:02 +00:00
sugoi@google.com
2daa365123 New SVG turbulence in Skia
This cl contains the code for both CPU and GPU generation of noise. Both
codepaths yield equivalent results.

TEST:Added 'perlinnoise' gm
Review URL: https://codereview.chromium.org/13047005

git-svn-id: http://skia.googlecode.com/svn/trunk@8371 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-25 19:31:04 +00:00
robertphillips@google.com
b7636d3fad Reverting 8313 (SVG turbulence) due to Ubuntu failures
git-svn-id: http://skia.googlecode.com/svn/trunk@8316 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 21:22:03 +00:00
sugoi@google.com
3067cc904d New SVG turbulence in Skia
This cl contains the code for both CPU and GPU generation of noise. Both codepaths yield equivalent results.

TEST:Added 'perlinnoise' gm
Review URL: https://codereview.appspot.com/7322060

git-svn-id: http://skia.googlecode.com/svn/trunk@8313 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-21 21:01:07 +00:00
robertphillips@google.com
14c3fc60b2 Adding rects-specific GM
https://codereview.chromium.org/12934003/



git-svn-id: http://skia.googlecode.com/svn/trunk@8218 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-19 14:11:15 +00:00
epoger@google.com
b58772f866 PDF: add support for named destinations.
Landing patchset 7 from https://codereview.appspot.com/7374052 for dml@google.com
Review URL: https://codereview.chromium.org/12533009

git-svn-id: http://skia.googlecode.com/svn/trunk@8034 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-08 09:09:10 +00:00
epoger@google.com
812b6f59fa Revert r8000 due to failures on some buildbots
git-svn-id: http://skia.googlecode.com/svn/trunk@8001 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-06 00:47:22 +00:00