Commit Graph

210 Commits

Author SHA1 Message Date
commit-bot@chromium.org
eaa7797990 Add luminance mask transfer modes.
This adds kSrcInLum_Mode and kDstInLum_Mode, to support CSS and SVG luminance masks (http://www.w3.org/TR/css-masking/#MaskValues , http://www.w3.org/TR/SVG/masking.html#Masking ).

The transfer coefficient is computed according to http://www.w3.org/TR/2011/REC-SVG11-20110816/filters.html#feColorMatrixElement "luminance-to-alpha":

  luma = 0.2125 * r + 0.7154 * g + 0.0721 * b


R=bsalomon@google.com, reed@google.com, robertphillips@google.com, vandebo@chromium.org

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10887 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-23 13:13:12 +00:00
commit-bot@chromium.org
e324cc69be Restyle SkPDFImageShader and support tiling bitmaps outside clip bounds
BUG=chromium:99458
R=edisonn@google.com, vandebo@chromium.org

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10870 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-21 23:10:45 +00:00
commit-bot@chromium.org
78a1078f17 Create new target to hold gpu test code, enable direct testing of GrEffects in GM.
R=robertphillips@google.com, jvanverth@google.com, egdaniel@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10866 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-21 19:27:48 +00:00
robertphillips@google.com
3c3c46238d Bleed cleanup (remove nocolorbleed GM & enable bleed in game bench)
https://codereview.chromium.org/23264014/



git-svn-id: http://skia.googlecode.com/svn/trunk@10853 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-21 16:30:39 +00:00
robertphillips@google.com
8d3c640b5a Fix for nested rect drawing bug
https://codereview.chromium.org/22824016/



git-svn-id: http://skia.googlecode.com/svn/trunk@10804 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 12:11:31 +00:00
scroggo@google.com
12bf9b35d2 Revert "Unpremultiply SkBitmaps for PDF output"
This reverts commit 16a6c9d28c8ef6f827d50ef258005fa5ec971bd9.

Seems to be breaking all of the windows debug bots in GM.

git-svn-id: http://skia.googlecode.com/svn/trunk@10737 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-15 14:51:04 +00:00
commit-bot@chromium.org
5d18cee176 Unpremultiply SkBitmaps for PDF output
BUG=skia:236, chromium:175548
R=vandebo@chromium.org, edisonn@google.com, reed@google.com

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10725 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-14 22:02:23 +00:00
djsollen@google.com
d4236574cf Prevent picture recording from over optimizing the culling of clips.
BUG=skia:1496
R=mtklein@google.com, reed@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10689 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-13 14:29:06 +00:00
commit-bot@chromium.org
103f2d0f22 Add new GM to targeted at rect->clear optimization with different xfermodes.
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10645 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-08 21:13:38 +00:00
commit-bot@chromium.org
d2623a1a0b Use Path Ops to generate PDF clips
R=vandebo@chromium.org, edisonn@google.com, caryclark@google.com

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10633 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-08 02:52:05 +00:00
scroggo@google.com
8dc8bc5547 Add downsample from 8888 to 4444.
Extend SkBitmap::copyTo to copy from a source with
SkARGB_8888_Config to a destination bitmap with
SkARGB_4444_Config.

BUG=http://code.google.com/p/chromium/issues/detail?id=245774
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10621 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-07 19:16:05 +00:00
senorblanco@chromium.org
350b4d50ea Remove SkBlendImageFilter, and all tests. Its functionality has been subsumed by SkXfermodeImageFilter.
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10482 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-01 14:59:05 +00:00
commit-bot@chromium.org
92ffe7d10e Inverse fill support in PDF
BUG= https://code.google.com/p/skia/issues/detail?id=241 (partial fix)
R=edisonn@google.com, vandebo@chromium.org, reed@google.com

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10476 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-31 22:54:31 +00:00
robertphillips@google.com
17ad2bd077 Fix quickReject computation for blurs
https://codereview.chromium.org/17035007/



git-svn-id: http://skia.googlecode.com/svn/trunk@10428 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-30 12:15:19 +00:00
robertphillips@google.com
aaa9b29ed8 Added GM to test forthcoming bleed flag
https://codereview.chromium.org/20101004/



git-svn-id: http://skia.googlecode.com/svn/trunk@10375 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-25 21:34:00 +00:00
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
epoger@google.com
1cad898916 PDF: add support for named destinations
Imported from https://codereview.appspot.com/7374052/ on behalf of dml@google.com
Review URL: https://codereview.chromium.org/12466008

git-svn-id: http://skia.googlecode.com/svn/trunk@8000 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-06 00:05:13 +00:00
commit-bot@chromium.org
c61c3c3101 gm self-test: use a pathologically simple test case instead of dashing2
BUG=https://code.google.com/p/skia/issues/detail?id=677

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7922 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-01 15:32:34 +00:00
reed@google.com
83f7c65946 add new gms for shallow_gradient, in preparation for improving their quality
git-svn-id: http://skia.googlecode.com/svn/trunk@7544 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-04 16:56:15 +00:00
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
robertphillips@google.com
c51f752554 Reverting chain of SkBicubicImageFilter changes (7275, 7276, 7280 & 7283)
git-svn-id: http://skia.googlecode.com/svn/trunk@7285 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 19:20:52 +00:00
senorblanco@chromium.org
744820e657 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.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7275 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-18 17:29:15 +00:00
reed@google.com
12fa9bad91 add gm for comparing drawSprite and drawBitmap
git-svn-id: http://skia.googlecode.com/svn/trunk@7235 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-16 18:54:15 +00:00
sugoi@google.com
781cc76e0f Implementation of the displacement effect (both CPU and GPU)
TEST=Added new GM called "displacement"
Review URL: https://codereview.appspot.com/7058075

git-svn-id: http://skia.googlecode.com/svn/trunk@7182 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-15 15:40:19 +00:00
robertphillips@google.com
4e18c7a9bb Add RRect GM
https://codereview.appspot.com/6945063/



git-svn-id: http://skia.googlecode.com/svn/trunk@6866 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 21:48:19 +00:00
mike@reedtribe.org
37071640f6 add gm for rrect, and rrect.inset/outset
git-svn-id: http://skia.googlecode.com/svn/trunk@6832 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-17 02:10:42 +00:00
reed@google.com
b1c8827321 add gm/pathinterior.cpp in advance of cary's path api
git-svn-id: http://skia.googlecode.com/svn/trunk@6668 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-04 22:52:28 +00:00
scroggo@google.com
9f686f3639 Create a factory to decode an SkBitmap from an SkData.
Add a test and a GM for the factory, and a PNG file for it to decode.
The PNG file is copyright-free, obtained from
http://openclipart.org/detail/29213/paper-plane-by-ddoo

In cmykjpeg, do not attempt to decode in the constructor, since it
currently crashes on Mac (if you provide the correct resource path).
Even when we fix this crash there is no need to do it in the
constructor, since we create all of the gms in order to
get their names (to determine whether to run them).

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

git-svn-id: http://skia.googlecode.com/svn/trunk@6618 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 21:05:37 +00:00
reed@google.com
603dbedf29 add specialty strokeRect() to SkStroke, which can return much cleaner results
Review URL: https://codereview.appspot.com/6843093

git-svn-id: http://skia.googlecode.com/svn/trunk@6510 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-20 19:00:28 +00:00
reed@google.com
5dd85a45bc add gm for srcmode (and clearmode) in prep for optimization work
git-svn-id: http://skia.googlecode.com/svn/trunk@6429 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-15 13:46:47 +00:00
reed@google.com
db87c96085 add blurrect gm
git-svn-id: http://skia.googlecode.com/svn/trunk@6284 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-02 21:11:12 +00:00
reed@google.com
4117a24de4 add test for bug in line drawing. fix is pending a way to handle all of the
rebaselines...



git-svn-id: http://skia.googlecode.com/svn/trunk@6208 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-30 20:26:58 +00:00
bsalomon@google.com
c6126c1828 Add a GM that tests xfermode-based color filters.
Review URL: https://codereview.appspot.com/6736052

git-svn-id: http://skia.googlecode.com/svn/trunk@6022 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-19 19:26:05 +00:00
bsalomon@google.com
42316095ec Add new GM, shadertext3. It would have revealed a bug in the GPU draw-large-text-as-path code path that was recently fixed.
R=reed@google.com
Review URL: https://codereview.appspot.com/6638057

git-svn-id: http://skia.googlecode.com/svn/trunk@5932 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-12 19:26:15 +00:00
senorblanco@chromium.org
8d21f6c7a9 When two or more color matrix image filters are connected together, and the non-leaf matrices do not require clamping, we can concatenate their matrices and apply them together.
Review URL: https://codereview.appspot.com/6489054

git-svn-id: http://skia.googlecode.com/svn/trunk@5931 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-12 19:14:06 +00:00
bsalomon@google.com
41fe45b955 Add a new GM: shadertext2.
It tests a bitmap shader with various combinations of matrices and shader matrices. The text is drawn filled and stroked.
Review URL: https://codereview.appspot.com/6639052

git-svn-id: http://skia.googlecode.com/svn/trunk@5877 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-10 13:35:23 +00:00
reed@google.com
1ba274d9f3 revert 5794
git-svn-id: http://skia.googlecode.com/svn/trunk@5795 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 20:40:38 +00:00
reed@google.com
4837724a7e add test for rotated saveLayer, to see that we clip against the specified bounds
(hint: we don't at the moment)



git-svn-id: http://skia.googlecode.com/svn/trunk@5794 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 20:17:22 +00:00
mike@reedtribe.org
9a520eb745 revert 5681
git-svn-id: http://skia.googlecode.com/svn/trunk@5682 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-26 03:08:16 +00:00
mike@reedtribe.org
4269631bdf remove SampleXfermodes.cpp (obsolete, as we have it as a GM)
git-svn-id: http://skia.googlecode.com/svn/trunk@5681 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-26 03:06:55 +00:00
senorblanco@chromium.org
5faa2dc266 Implements a matrix convolution filter (raster path only). The filtering loop
is templated on the tiling mode for speed:  interior pixels are unconditionally
fetched; border pixels apply the appropriate tiling mode before fetching.  It
handles target, bias, divisor (as gain), and edge modes (named to be more
skia-like).  It does not handle the "preserveAlpha" semantics of
feConvolveMatrix, nor "kernelUnitLength".



git-svn-id: http://skia.googlecode.com/svn/trunk@5592 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 20:32:34 +00:00
reed@google.com
7112173c3c re-re-land 5578
will follow w/ new .skp files to keep the waterfall green (I hope)



git-svn-id: http://skia.googlecode.com/svn/trunk@5584 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 15:14:33 +00:00
reed@google.com
10f9f4a844 revert 5580
git-svn-id: http://skia.googlecode.com/svn/trunk@5581 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 14:04:54 +00:00
reed@google.com
eab16dea1c re-land 5578 w/ pipe fix
git-svn-id: http://skia.googlecode.com/svn/trunk@5580 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 13:47:20 +00:00
reed@google.com
c75c36a14b revert 5578 -- broke pipe
git-svn-id: http://skia.googlecode.com/svn/trunk@5579 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 13:20:52 +00:00
reed@google.com
f1ab723033 Change drawBitmapRect to take a float-src-rect instead of integer-src-rect. This
allows the client more control over the scaling. Because of virtual overrides
and wanting to keep the old call-sites up and running, this CL renames the
virtual entry-point to drawBitmapRectToRect, and downgrades drawBitmapRect to
a non-virtual helper function.

The implementation is to use the float-rect for computing the matrix, but still
cons-up an integer rect for the purposes of subsetting the original bitmap. We
do this by calling float_src->roundOut(&int_src) so that we include all
(partially) covered src pixels.

No change needed on SkDevice, since that signature is explicitly passed the
computed matrix.
Review URL: https://codereview.appspot.com/6501140

git-svn-id: http://skia.googlecode.com/svn/trunk@5578 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-18 12:59:44 +00:00
rileya@google.com
ffadfb5d43 Add gm to test SkRegion/clipPath bug.
Review URL: https://codereview.appspot.com/6501131

git-svn-id: http://skia.googlecode.com/svn/trunk@5540 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-14 13:53:36 +00:00
reed@google.com
9135939581 rm temp slides
git-svn-id: http://skia.googlecode.com/svn/trunk@5488 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-11 17:46:42 +00:00
reed@google.com
3d1a9963bc add techtalk slide for now (can remove it tomorrow)
git-svn-id: http://skia.googlecode.com/svn/trunk@5461 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-10 14:27:37 +00:00
reed@google.com
97af1a64ae Add caching of the snapshot image form a surface
Notify the surface when the canvas draws into it, so it can invalidate the
cached image, and (if needed) perform a copy-on-write on the surface if it
was being shared with the image.
Review URL: https://codereview.appspot.com/6441115

git-svn-id: http://skia.googlecode.com/svn/trunk@5306 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-28 12:19:02 +00:00
senorblanco@chromium.org
b2ee33c535 Implements the non-Porter-Duff compositing modes required for SVG's feBlend
element.  This filter has two inputs, since normal blending can't be used.  The
GPU side uses two filter stages to accomplish this:  one to sample the
background, and one to sample the foreground and blend it.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@5231 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-22 16:24:44 +00:00