Commit Graph

294 Commits

Author SHA1 Message Date
senorblanco@chromium.org
899b22ab97 Revert "Implement srcRect and dstRect functionality in SkBitmapSource. This is required for the "preserveAspectRatio" options of SVG's feImage. Covered by new GM "bitmapsource"." until I can sort out the xfermodeimagefilter and tileimagefilter failures.
This reverts commit b26725c8c9755415284c34399e76be098868e01a, aka r12522.

BUG=
TBR=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12523 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 23:06:07 +00:00
senorblanco@chromium.org
af35920e6d Implement srcRect and dstRect functionality in SkBitmapSource. This is required for the "preserveAspectRatio" options of SVG's feImage. Covered by new GM "bitmapsource".
Note: I initially implemented this as a fully-generic SkResizeImageFilter, but then I realized that the dstRect should always be transformed by the filter matrix, but that the srcRect should not (since it's specified relative to the dimensions of the original bitmap). Since this would be confusing for someone attempting to use this as a generic resizing filter, I decided to build the functionality into SkBitmapSource instead.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12522 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-05 22:41:53 +00:00
commit-bot@chromium.org
611fde182a Remove the comments settings for vim tab width and expansion variables.
These add unnecessary bloat for everyone to carry around, so we just
remove them now.

The same change was made in chromium by Tony in
http://codereview.chromium.org/7310019 - crrev.com/92046

BUG=None
TEST=./gyp_skia
R=mtklein@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12443 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 22:23:03 +00:00
rmistry@google.com
d6bab02386 Reverting r12427
git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:50:38 +00:00
skia.committer@gmail.com
5b39f5ba9c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 13:36:22 +00:00
commit-bot@chromium.org
c09df2c32e Non-rect polygons are not covered in GM cases, such as triangle, trapezoid, diamond, polygons with lots of edges, concave polygons, etc, especially for stroke-style and stroke-and-fill style painters. So add a GM case to avoid potential rendering errors.
R=bsalomon@google.com, robertphillips@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12413 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-27 01:24:53 +00:00
senorblanco@chromium.org
d8f82a4c44 Enhance SkDropShadowImageFilter to support separate X & Y sigmas, and crop rect. This required a new flavour of the constructor.
This is driven by the feDropShadow filter effect in SVG, which unlike the shorthand version accepts separate X & Y sigmas.

Covered by new GM dropshadowimagefilter.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12401 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-26 21:52:38 +00:00
commit-bot@chromium.org
5916705587 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.
BUG=skia:1782
BUG=skia:1811
R=bsalomon@google.com, caryclark@google.com, reed@google.com, robertphillips@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12206 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-09 01:37:30 +00:00
robertphillips@google.com
96ac2f693b Add GM to verify removal of 32767 limit in SkBlurMaskFilter::filterRectsToNine is okay
https://codereview.chromium.org/60513013/



git-svn-id: http://skia.googlecode.com/svn/trunk@12181 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-07 22:25:21 +00:00
scroggo@google.com
7b05659072 Add gms and benchmarks for drawing blurry round rects.
Further changes (https://codereview.chromium.org/48623006) will change
the speed at which the bench draws and the drawing of the gm (the gm
change is small).

One of these round rects causes slow drawing in a webpage that we have
observed.

BUG=https://b.corp.google.com/issue?id=11174385

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12133 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-11-05 15:57:21 +00:00
vandebo@chromium.org
ece95c32d5 [PDF] Add unpremultiply support and a GM (try5)
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11945 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 15:20:00 +00:00
vandebo@chromium.org
ccf6b91a54 Revert "[PDF] Add unpremultiply support and a GM (try4)"
This reverts commit r11928

gm seems to crash on windows.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11931 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 21:36:43 +00:00
vandebo@chromium.org
e66d376067 [PDF] Add unpremultiply support and a GM (try4)
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows (really, release builds).

BUG=chromium:175548
R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11928 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-23 20:17:29 +00:00
vandebo@chromium.org
1c87672883 Revert "[PDF] Add unpremultiply support and a GM (try3)."
This is crashing in some configurations, can now repro.

This reverts commit 12add177d0ab7bbac97f5093c9382924d88bde8c.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11868 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 21:04:51 +00:00
vandebo@chromium.org
59fd223870 [PDF] Add unpremultiply support and a GM (try3).
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11866 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 20:18:29 +00:00
vandebo@chromium.org
ce60c1fc5d Revert "[PDF] Add unpremultiply support and a GM."
This reverts commit f746273b8ba282f548a6eaffb45b11b6f468aa8e.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11858 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 16:10:03 +00:00
vandebo@chromium.org
c4d17716cd [PDF] Add unpremultiply support and a GM.
This is a resubmit of https://codereview.chromium.org/22831039 which was
reverted because it causes issues on Windows.

BUG=chromium:175548
R=edisonn@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11857 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-18 15:53:03 +00:00
commit-bot@chromium.org
6397217b30 detach blur result texture when it is the same texture used to render path mask
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11805 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 13:53:54 +00:00
commit-bot@chromium.org
1108fc3058 Remove SkLumaXfermode.
Possibly the shortest-lived Skia feature, SkLumaXfermode is now replaced
by a color filter implementation (SkLumaColorFilter). All known existing
clients (Blink) have been converted.

R=reed@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11750 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-14 13:11:11 +00:00
commit-bot@chromium.org
338a49fc55 Add new GM to stress test the GPU font cache for cases similar to
Chromium issue 303803.

BUG=303803

Committed: http://code.google.com/p/skia/source/detail?r=11673

R=robertphillips@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11680 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 18:12:23 +00:00
jvanverth@google.com
5466b0ebbc Revert "Add new GM to stress test the GPU font cache"
git-svn-id: http://skia.googlecode.com/svn/trunk@11678 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 17:03:22 +00:00
commit-bot@chromium.org
7d14ceff7b Add new GM to stress test the GPU font cache for cases similar to
Chromium issue 303803.

BUG=303803
R=robertphillips@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11673 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-09 16:00:42 +00:00
commit-bot@chromium.org
6c1ee2d4e7 Luminance-to-alpha color filter (SkLumaColorFilter).
Adding a color filter luma implementation. The plan is to convert
existing clients and then deprecate SkLumaXfermode.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11636 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-07 18:00:17 +00:00
djsollen@google.com
5df5e6126d Update PDF backend to support fallback fonts on Android.
R=edisonn@google.com, reed@google.com, vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11586 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-03 14:42:24 +00:00
commit-bot@chromium.org
1a4fb70c8a Moving 4 SkImageFilter derived classes from blink to skia
There were 4 classes in blink that derived from SkImageFilter :
- TileImageFilter -> SkTileImageFilter
- OffsetImageFilter -> SkOffsetImageFilter (already existed)
- FloodImageFilter -> SkFloodImageFilter
- CompositeImageFilter -> SkCompositeImageFilter

All functions were copied as is, without modification (except for warnings fixes), except for the offset filter, which was merged into the existing SkOffsetImageFilter class, as a special case when a crop rect is provided. Since the names won't clash with the names in blink, it should be easy to integrate them in blink later and fix issues, if needed.

BUG=
R=senorblanco@google.com, senorblanco@chromium.org, bsalomon@google.com, reed@google.com, mtklein@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11475 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-26 16:09:28 +00:00
jvanverth@google.com
4ea2878f07 Add string art GM and sample.
BUG=279014
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11383 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-19 15:32:22 +00:00
djsollen@google.com
6def2a2dc7 Add a test for color bitmap fonts.
This CL also includes a sample font from https://code.google.com/p/color-emoji/

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11317 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-17 15:30:21 +00:00
bsalomon@google.com
82d1223aec Two and three color GPU gradients without textures.
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11158 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 15:36:26 +00:00
commit-bot@chromium.org
91a798f121 alpha threshold bitmap shader
Committed: http://code.google.com/p/skia/source/detail?r=11122

R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11131 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-06 15:31:06 +00:00
bsalomon@google.com
67db510c9c Revert "alpha threshold bitmap shader"
This reverts commit r11122.

git-svn-id: http://skia.googlecode.com/svn/trunk@11123 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 22:48:05 +00:00
commit-bot@chromium.org
4ec4cf93b7 alpha threshold bitmap shader
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11122 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-05 21:54:04 +00:00
humper@google.com
3aad3b01af add support for high quality image filtering on the GPU
R=bsalomon@google.com, reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11087 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-04 19:23:53 +00:00
robertphillips@google.com
69b1302689 Reverting r10901 (Add unpremultiply support and GM)
git-svn-id: http://skia.googlecode.com/svn/trunk@10909 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-25 11:20:54 +00:00
commit-bot@chromium.org
52130e8a5e Add unpremultiply support and GM
R=vandebo@chromium.org, edisonn@google.com

Author: richardlin@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10901 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-23 21:43:03 +00:00
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
senorblanco@chromium.org
f1369ce607 Implements a new class, SkSingleInputImageFilter, to handle DAG connectivity
for filters with a single image input.  This provides functionality to store,
flatten and unflatten a single SkImageFilter input, as well as to recursively
evaluate it on the CPU or GPU.  The following classes were re-parented to 
implement DAG connectivity:  SkBlurImageFilter, SkDilateImageFilter,
SkErodeImageFilter, SkColorFilterImageFilter.  The constructors for each
have been appended with a new parameter, representing the input filter
(default NULL).

This change also implements an arbitrary SkBitmap input source for filtering,
SkBitmapSource.

NOTE:  This CL will require gyp file changes when rolling past this revision.

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



git-svn-id: http://skia.googlecode.com/svn/trunk@5170 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-20 14:53:21 +00:00
bsalomon@google.com
82aa7482cb Add a zoom filter to Skia. This will be used on ChromeOS to implement the screen magnifier.
Committed on behalf of zork@chromium.org

Review URL: http://codereview.appspot.com/6354065/


git-svn-id: http://skia.googlecode.com/svn/trunk@5056 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 14:22:17 +00:00
mike@reedtribe.org
3d1cb97240 move texteffects from Sample to gm
git-svn-id: http://skia.googlecode.com/svn/trunk@5051 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-13 00:52:07 +00:00
reed@google.com
d74e710c00 remove SkShape (unused)
Review URL: https://codereview.appspot.com/6461069

git-svn-id: http://skia.googlecode.com/svn/trunk@5033 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-09 18:05:33 +00:00
reed@google.com
7eb3a2653b add gm for very large bitmaps (>32K >64K)
raster expected to fail when scaling >64K (for now)



git-svn-id: http://skia.googlecode.com/svn/trunk@4967 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-07 14:05:14 +00:00
reed@google.com
a7ffb956cb remove '../gm/image.cpp',
git-svn-id: http://skia.googlecode.com/svn/trunk@4855 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 15:01:57 +00:00
reed@google.com
076f4c9791 fix LayerDrawLooper to record its fFlagsMask
convert SampleDrawLooper to a GM



git-svn-id: http://skia.googlecode.com/svn/trunk@4854 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-31 14:32:38 +00:00
scroggo@google.com
58be682c77 Share code in various SkGPipeCanvas::drawBitmap_ calls.
Also implement SkGPipeCanvas::drawBitmapMatrix, and
create a GM to make sure it works properly.

Use a flag instead of writing a bool for determining whether
drawBitmap_ has a paint and whether drawBitmapRect has a source
rectangle.

BUG=
TEST=drawbitmapmatrix GM

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4828 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-30 14:40:01 +00:00
scroggo@google.com
3cb969f27d In SkGPipe, only serialize SkTypefaces in cross process mode.
Also make SkGPipeController ref the recording canvas to ensure that
objects used by SkGPipeCanvas (e.g. SharedHeap and fTypefaceSet, which
hold references to objects to which pointers are written to the stream)
survive to be played back even if SkGPipeWriter.endRecording() is called.

BUG=
TEST=TypefaceGM

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4817 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-27 20:39:19 +00:00
reed@google.com
ca0062ee5e add SkPaint::getPosTextPath(), with gm to test it
Review URL: https://codereview.appspot.com/6427055

git-svn-id: http://skia.googlecode.com/svn/trunk@4684 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-20 11:20:32 +00:00
reed@google.com
8d850be3aa don't add circles on chopped cubics
git-svn-id: http://skia.googlecode.com/svn/trunk@4600 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-13 15:55:15 +00:00
mike@reedtribe.org
43c62b11ec add gm for hittesting paths
git-svn-id: http://skia.googlecode.com/svn/trunk@4438 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-03 02:44:02 +00:00
scroggo@google.com
4f1f6bf050 Properly handle extracted bitmaps in cross process/shared addr space SkGPipe.
Use the pixel ref which we have already copied and the appropriate pixel ref
offset.

Turn SampleDrawBitmap into a GM to test this functionality.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4417 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-02 13:35:09 +00:00
scroggo@google.com
32f20eb02c Create a new GM to exercise ComposeShader.
Code borrowed from samplecode/SampleShaders.cpp

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4407 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-29 17:28:50 +00:00
senorblanco@chromium.org
f49b429cef Raster implementation of diffuse and specular lighting filters. Externally,
the caller instantiates a light (distant, point or spot), and an
SkDiffuseLightingFilter or SkSpecularLightingImageFilter with that light.  A
Sobel edge detection filter is applied to the alpha of the incoming bitmap, and
the result is used as a height map for lighting calculations.

Review URL:  http://codereview.appspot.com/6302101/



git-svn-id: http://skia.googlecode.com/svn/trunk@4314 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-22 21:01:23 +00:00
reed@google.com
4384fabab4 add gm (no images yet) for two-point-radial gradients
git-svn-id: http://skia.googlecode.com/svn/trunk@4163 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-06-05 16:14:23 +00:00