Commit Graph

6086 Commits

Author SHA1 Message Date
bungeman@google.com
a95a066f4a Fix Windows build break introduced in r13864.
Need SkToBool(...).



git-svn-id: http://skia.googlecode.com/svn/trunk@13870 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 23:26:50 +00:00
commit-bot@chromium.org
1c30818f66 fix non-gpu build
BUG=
R=bungeman@google.com
TBR=bungeman@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13868 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 22:54:40 +00:00
commit-bot@chromium.org
2472b3219e Only use analytic effect-based clipping when AA is required by at least one element.
BUG=352718
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13867 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:26:35 +00:00
commit-bot@chromium.org
eb9547c1d6 stub for ganesh veto
BUG=skia:
R=bsalomon@google.com, nduca@chromium.org

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13866 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:24:25 +00:00
commit-bot@chromium.org
e14792d99f hide Config8888 entirely
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13865 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:20:24 +00:00
commit-bot@chromium.org
d8a57af725 Adding a new SkSurface factory for generating surfaces from the scratch texture pool.
TEST=Surface unit test
BUG=crbug.com/351798
R=bsalomon@google.com, robertphillips@google.com, reed@google.com

Author: junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13864 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 21:19:16 +00:00
senorblanco@chromium.org
b9c95978c6 Use rounding to 8888 in lighting filters, raster path.
when converting float -> 8-bit BGRA in lighting filters, use rounding
rather than floor(). This makes the GPU and raster paths match more
closely (as tested by Blink test
feDiffuseLighting-linearrgb-lighting-color.svg).

Will affect the LSB of lighting, imagefiltersscaled GMs.

R=junov@chromium.org
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13863 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 19:44:41 +00:00
commit-bot@chromium.org
8e13a159f3 Fixed cross compilation with mingw.
Tested in Mozilla source tree. I tried to use skia build system, but it's up to the task for cross compilation.

SkHRESULT.cpp - Use proper file name (that matters on case sensitive OSes)

SkAtomics_win.h - Don't use pragma intrinsic on GCC (this causes massive warnings)

SkOSFile_win.cpp - This one is tricky. GCC doesn't allow (void*) casts in template argument constants and INVALID_HANDLE_VALUE looks like this:
((HANDLE)(LONG_PTR)-1)
where HANDLE is typedefed to void*. Changed the code to use LONG_PTR as template argument and cast it when needed.

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

Author: cjacek@gmail.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13862 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 19:28:00 +00:00
senorblanco@chromium.org
b7b7eb32f4 Fix accessBitmap() with deferred clear, GPU path.
When accessBitmap() is called on a GPU device which has deferred clear,
and no drawing has been done, force the clear before returning the
bitmap.

This is covered by the top right test case in the imagefilterscropexpand
GM, where an offset image filter is drawn but the resulting bitmap is
cropped out, resulting in no drawing to the offscreen. It should be
empty, but without this fix it results in garbage (previous scratch
texture contents).

BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13860 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 18:24:04 +00:00
commit-bot@chromium.org
fffb2cd463 Revert of SkPaint: eliminate some dead bytes in 64-bit build. (https://codereview.chromium.org/203203003/)
Reason for revert:
Causing RunTest failures on Android.

Original issue's description:
> SkPaint: eliminate some dead bytes in 64-bit build.
>
> + memcpy-based copy constructor was hiding this gap -> manual copy constructor.
> + Split tests for finer-grained failures.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13856

R=reed@google.com, mtklein@google.com, mtklein@chromium.org
TBR=mtklein@chromium.org, mtklein@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13858 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 14:36:29 +00:00
commit-bot@chromium.org
fa4dc2c4cb SkPaint: eliminate some dead bytes in 64-bit build.
+ memcpy-based copy constructor was hiding this gap -> manual copy constructor.
+ Split tests for finer-grained failures.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13856 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 11:42:34 +00:00
skia.committer@gmail.com
2002d881e8 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13855 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 03:02:22 +00:00
commit-bot@chromium.org
70512af9dd Add a means of extracting active operations from SkPicture
For the "pull forward" task I will be comparing the two cases:
  analyze the whole skp and use the BBH information
  analyze only the active portion of the skp

In the first case we need a way to get the BBH information out of the picture in order to extract the relevant portions of the whole-skp analysis. This adds caching of the active ops so that work isn't duplicated between when the optimization path queries for that information and when the usual draw path queries for it.

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13853 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 17:45:32 +00:00
robertphillips@google.com
14bdd527ee Revert of r13836 due to Chromium cc_unittests failures
https://codereview.chromium.org/203333005/



git-svn-id: http://skia.googlecode.com/svn/trunk@13850 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 13:56:09 +00:00
commit-bot@chromium.org
92362383a4 Remove SkCanvas matrix ops return value.
The internal SkMatrix ops can no longer fail -> we can remove the bool
return value.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13849 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 12:51:48 +00:00
commit-bot@chromium.org
a1dfa0cf05 Slightly faster quadtree searching
BUG=skia:2125
R=tomhudson@google.com, mtklein@google.com, robertphillips@google.com, reed@google.com

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13847 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 09:07:27 +00:00
skia.committer@gmail.com
db0c875377 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13845 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 03:02:11 +00:00
senorblanco@chromium.org
d9cdff67a4 Fix GPU displacement with expanding crop rects.
Fix GPU displacement with expanding crop rects, and re-enable the
imagefilterscropexpand GM. There were two bugs: the result texture was
being created at input color bitmap size, not the cropped bounds size,
and the matrix in GrContext was not being set to identity before draw.

R=junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13844 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 23:41:40 +00:00
commit-bot@chromium.org
1301bf3abf add initial scraper for dashing
BUG=skia:
R=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13843 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 23:09:47 +00:00
robertphillips@google.com
e4ff3e6fe8 Update SkXPSDevice.cpp too
git-svn-id: http://skia.googlecode.com/svn/trunk@13842 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 22:34:32 +00:00
commit-bot@chromium.org
a713f9c6f6 add new readPixels with direct memory parameters
BUG=skia:
R=scroggo@google.com, bsalomon@google.com, robertphillips@google.com, fmalita@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13840 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 21:31:26 +00:00
commit-bot@chromium.org
f338d7c860 Add nine patch type to SkRRect.
BUG=skia:2181

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

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

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13839 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 21:17:30 +00:00
commit-bot@chromium.org
bab3fc4c90 Revert of Add nine patch type to SkRRect. (https://codereview.chromium.org/196343015/)
Reason for revert:
causes tests to have infinite loop

Original issue's description:
> Add nine patch type to SkRRect.
>
> BUG=skia:2181
>
> Committed: http://code.google.com/p/skia/source/detail?r=13833

R=robertphillips@google.com, reed@google.com
TBR=reed@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2181

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13837 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 19:47:40 +00:00
commit-bot@chromium.org
ecb745dba7 Add a means of extracting active operations from SkPicture
For the "pull forward" task I will be comparing the two cases:
  analyze the whole skp and use the BBH information
  analyze only the active portion of the skp

In the first case we need a way to get the BBH information out of the picture in order to extract the relevant portions of the whole-skp analysis. This adds caching of the active ops so that work isn't duplicated between when the optimization path queries for that information and when the usual draw path queries for it.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13836 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 18:11:57 +00:00
commit-bot@chromium.org
4ef54f8d72 remove SK_SUPPORT_LEGACY_WRITEPIXELSCONFIG -- dead code
BUG=skia:
R=halcanary@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13834 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 17:03:18 +00:00
commit-bot@chromium.org
761b8e5572 Add nine patch type to SkRRect.
BUG=skia:2181
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13833 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 15:39:01 +00:00
robertphillips@google.com
1c556dba15 Reverting r13831 (Add a means of extracting active operations from SkPicture) due to Mac compiler issue
git-svn-id: http://skia.googlecode.com/svn/trunk@13832 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 15:10:02 +00:00
robertphillips@google.com
0b23f9e15f Add a means of extracting active operations from SkPicture
https://codereview.chromium.org/195793010/



git-svn-id: http://skia.googlecode.com/svn/trunk@13831 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 14:56:13 +00:00
bungeman@google.com
1d1f2347d3 SkFontStyleSet_DirectWrite::getStyle to properly handle NULL out params.
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13829 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 14:04:50 +00:00
commit-bot@chromium.org
949b9986de Fast implementation of QuadTree
Rewritten to avoid memory allocations.

BUG=skia:2242
R=tomhudson@google.com, mtklein@google.com, reed@google.com, robertphillips@google.com

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13826 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 10:38:34 +00:00
skia.committer@gmail.com
eb849e5fd1 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13825 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 03:02:17 +00:00
commit-bot@chromium.org
42b08932e8 add NewRasterDirect for creating a canvas drawing to pre-allocated pixels
R=reed@google.com
TBR=scroggo@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13824 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 02:13:07 +00:00
robertphillips@google.com
0f03f43e44 Move SkNoSaveLayerCanvas.h to include/utils
https://codereview.chromium.org/197243005



git-svn-id: http://skia.googlecode.com/svn/trunk@13823 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-16 21:59:11 +00:00
commit-bot@chromium.org
145d1c0fdc Proposed SkCanvas API for preLoading textures to VRAM v2.0
This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13822 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-16 19:46:36 +00:00
skia.committer@gmail.com
f0f9f5f904 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13820 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-15 03:02:32 +00:00
commit-bot@chromium.org
e78f7cfced change tooBitForLCD to compare against linear size of the text, not the area
BUG=skia:
R=bungeman@google.com, alokp@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13817 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 22:59:05 +00:00
commit-bot@chromium.org
0bed43c926 Get correct text metrics for distance fields, and fix dropouts due to thin features.
BUG=skia:2173
R=robertphillips@google.com, reed@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13815 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 21:22:38 +00:00
robertphillips@google.com
5ed01d1f8f Revert r13810 (Proposed SkCanvas API for preLoading textures to VRAM v2.0)
git-svn-id: http://skia.googlecode.com/svn/trunk@13811 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 18:50:07 +00:00
commit-bot@chromium.org
1ab85c8719 Proposed SkCanvas API for preLoading textures to VRAM v2.0
This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13810 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 18:23:12 +00:00
senorblanco@chromium.org
118252962f Implement support for expanding crop rects in image filters
NOTE: this patch set is based on https://codereview.chromium.org/189913021/,
and needs that patch to land first.

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

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

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

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

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13809 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 17:44:41 +00:00
senorblanco@chromium.org
29089179a6 Revert "Implement support for expanding crop rects in image filters"
Breaking ImageFilterTests unit test.

TBR=bsalomon@google.com
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13806 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 16:48:39 +00:00
senorblanco@chromium.org
0ef0501baf Implement support for expanding crop rects in image filters
NOTE: this patch set is based on https://codereview.chromium.org/189913021/,
and needs that patch to land first.

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

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

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

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13805 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 16:35:08 +00:00
senorblanco@chromium.org
4cb543d605 Implement support for a Context parameter in image filters
Some upcoming work (support for expanding crop rects) requires
the clip bounds to be available during filter traversal. This change
replaces the SkMatrix parameter in the onFilterImage() traversals
with a Context parameter. It contains the CTM, as well as the clip
bounds.

BUG=skia:
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13803 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 15:44:01 +00:00
reed@google.com
0d30c51c6c check for null-device pixels in onWritePixels, so we don't crash
https://code.google.com/p/chromium/issues/detail?id=352616

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13802 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 14:02:58 +00:00
skia.committer@gmail.com
bc3d92a7d8 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13800 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 03:02:26 +00:00
commit-bot@chromium.org
44c48d062f De-virtualize SkCanvas matrix ops.
This moves the matrix management logic into non-virtual SkCanvas
methods, and turns the virtuals into protected notifiers.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13799 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 20:03:58 +00:00
commit-bot@chromium.org
1037d92bbc Added Z scale when X and Y scale to spot lights and point lights
Z scale is set as the average of X scale and Y scale.

BUG=skia:
R=senorblanco@google.com, senorblanco@chromium.org

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13798 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 19:45:41 +00:00
commit-bot@chromium.org
3da3b621c3 getDeviceCapabilities is no longer need, so remove it
BUG=skia:
R=bungeman@google.com, vandebo@chromium.org

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13797 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 19:38:10 +00:00
bsalomon@google.com
44a435bc1a Attempt to fix -1->unsigned warning on mac 10.6
TBR=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13796 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 19:20:32 +00:00
commit-bot@chromium.org
0f10f7bf1f Allow toString capability to be toggled independent of developer mode.
This change is motivated by the desire to see the text information in the debugger when not in developer mode. It is structured so user's can disable it if the capability is not wanted.

R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13795 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 18:02:17 +00:00
commit-bot@chromium.org
fa5edbe575 Add effect-based clip for nine-patch SkRRects.
BUG=skia:2181
R=jvanverth@google.com, robertphillips@google.com, rmistry@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13794 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 18:01:05 +00:00
commit-bot@chromium.org
98e22b84ca Fix distance field edge detection.
When computing the initial edges for distance field generation, I was skipping
the outer pixels of glyphs to avoid accessing out of range memory. However,
there might be an edge transition on those pixels. This detects those cases.

R=robertphillips@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13791 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 17:11:44 +00:00
commit-bot@chromium.org
ea163cc3a7 Changes to SkFontHost_linux
* Use SkOSPath::SkPathJoin() rather than append so that
  SK_FONT_FILE_PREFIX does not have to end in a '/'.

* Add another font to the default font list.

Motivation: Some tests fail when there are no default fonts.

BUG=skia:2282
R=bungeman@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13789 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 16:24:49 +00:00
skia.committer@gmail.com
affa77db64 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13782 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 03:02:23 +00:00
commit-bot@chromium.org
1db03d2fad remove SK_SUPPORT_LEGACY_COPYTO_CONFIG
TBR=robertphillips@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13780 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 21:47:51 +00:00
bungeman@google.com
562b2e67a2 Fix (1 << 31) to (1u << 31) in SkOTTable_OS_2.
When ints are 32 bits, (1 << 31) is undefined.

R=reed@google.com

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13779 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 21:41:06 +00:00
senorblanco@chromium.org
2ca677e75d Fix GPU colormatrix color filter with saturated alpha.
Clamp RGBA values before unpremultiplying, to match the raster path. This causes a problem when the resulting
alpha is >1.0, resulting in overly saturated RGB.

Covered by the setYUV2RGB() test case in the colormatrix GM.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13778 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 21:37:42 +00:00
commit-bot@chromium.org
e54a23fcfa De-virtualize SkCanvas save/restore.
This moves the state management logic into non-virtual SkCanvas methods,
and turns the virtuals into protected notifiers.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13776 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 20:21:48 +00:00
reed@google.com
9c135db83d support direct writing to top layer, and hide getTopLayer()
this should remove many of the chrome callers that today call
accessBitmap on the toplayer, so they can read/write those pixels.

The ultimate fix will be to support custom allocation of raster layers
(via GDI/cairo/mac) so we can remove PlatformDevice subclassing in
skia/ext

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13774 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 18:28:35 +00:00
fmalita@google.com
9d201d6364 Remove unused zero_fill() in GrAtlas.cpp
Triggers warnings with some local clang builds.

R=jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13773 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:31:20 +00:00
bsalomon@google.com
2ae9501e6f Fix unit tests
Review URL: https://codereview.chromium.org/197823002

git-svn-id: http://skia.googlecode.com/svn/trunk@13772 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:29:46 +00:00
robertphillips@google.com
1e35304734 Fix for test failure
git-svn-id: http://skia.googlecode.com/svn/trunk@13771 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:16:59 +00:00
commit-bot@chromium.org
ae79612092 Add compile flag to force usage of distance fields for all SkPaints.
BUG=skia:2173
R=reed@google.com, robertphillips@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13770 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:05:46 +00:00
commit-bot@chromium.org
c30dcb9b12 Add capture snapshot as data to SkWriter32, use it to optimise record->playback.
This is a new way of implementing https://codereview.chromium.org/155863005/
It uses copy on write semantics to return a buffer without copying it, so that record -> playback does not need to copy the buffer.

BUG=skia:2125
R=tomhudson@google.com, mtklein@google.com, reed@google.com, iancottrell@chromium.org

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13769 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 17:04:28 +00:00
commit-bot@chromium.org
84cd099704 Clean up SkImageFilter.
Rename more occurences of 'target' to 'kernelOffset'.
This is a follow-up patch to
https://codereview.chromium.org/182983003/

BUG=skia:2187
R=senorblanco@chromium.org

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13768 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 16:36:08 +00:00
commit-bot@chromium.org
4355f21dbc Add elliptical-corner rrect clip effect. Currently only handles the case where all corners have the same pair of radii.
BUG=skia:2181
R=jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13766 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 15:32:50 +00:00
commit-bot@chromium.org
069a55a7fe Revert of Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/196323003/)
Reason for revert:
Pulling out to rename the virtuals.

Original issue's description:
> Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/194923008/)
>
> Reason for revert:
> Re-landing after roll fix.
>
> Original issue's description:
> > Revert "De-virtualize SkCanvas save/restore."
> >
> > (To allow a roll fix into the tree).
> >
> > This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.
> >
> > R=halcanary@google.com
> >
> > Committed: https://code.google.com/p/skia/source/detail?r=13748
>
> TBR=halcanary@google.com,fmalita@chromium.org
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=13754

R=halcanary@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13765 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 15:08:22 +00:00
commit-bot@chromium.org
9e5f85e89d Fixing SkPicture serialization
Fixed a few issues while attempting to use the new
serialization path for SkPicture inside a fuzzer:
- SkReadBuffer and SkValidatingReadBuffer both had a fReader
member instead of sharing the same member, which leads to
problems if a base class function is used
- In SkPicture, a header is now written as a single chunk of
data, so it also has to be read as a single chunk of data
- In the SkPicturePlayback destructor, a bad deserialization
would lead to a crash if we don't safely unref fOpData
- Also in SkPicturePlayback, if we only use a ReadBuffer for
the whole deserialization, additional tags must be added to
parseBufferTag()
- SkValidatingReadBuffer::readBitmap() was broken, but this
path wasn't usen't since the only use case for
SkValidatingReadBuffer is currently image filters and
bitmaps are unflattened as part of the deserialization of
SkBitmapSource
- SkPictureImageFilter was not deserializable. Added it to
SkGlobalInitialization*
- Added a test that exercises the SkPicture serialization /
deserialization code

BUG=skia:
R=senorblanco@google.com, senorblanco@chromium.org, reed@google.com, robertphillips@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13764 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 14:46:41 +00:00
commit-bot@chromium.org
79fbb40bca [WIP] Add Context to SkDrawLooper.
SkDrawLooper carries some state during draws. This CL extracts this state into
a separate class Context, which is then passed by the users of SkDrawLooper
into the appropriate methods.
This is a step towards making SkDrawLooper immutable.

BUG=skia:2141
R=scroggo@google.com, reed@google.com, sugoi@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13760 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 09:42:01 +00:00
bungeman@google.com
ad07e69d4c Revert the rest of r13757.
git-svn-id: http://skia.googlecode.com/svn/trunk@13759 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 04:00:25 +00:00
bungeman@google.com
e60ae2eca3 Revert 13757.
git-svn-id: http://skia.googlecode.com/svn/trunk@13758 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 03:46:48 +00:00
bungeman@google.com
3258a5348b Fix (1 << 31) to (1u << 31) in SkOTTable_OS_2.
When ints are 32 bits, (1 << 31) is undefined.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13757 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 03:13:48 +00:00
commit-bot@chromium.org
2cccf83326 make onReadPixels protected and have default impl (so we can remove chrome override)
R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13756 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 03:04:08 +00:00
skia.committer@gmail.com
0b70816eb1 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13755 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 03:02:18 +00:00
commit-bot@chromium.org
4fcd92d0bf Revert of Revert "De-virtualize SkCanvas save/restore." (https://codereview.chromium.org/194923008/)
Reason for revert:
Re-landing after roll fix.

Original issue's description:
> Revert "De-virtualize SkCanvas save/restore."
>
> (To allow a roll fix into the tree).
>
> This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.
>
> R=halcanary@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13748

R=halcanary@google.com, fmalita@chromium.org
TBR=fmalita@chromium.org, halcanary@google.com
NOTREECHECKS=true
NOTRY=true

Author: fmalita@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13754 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 23:47:35 +00:00
commit-bot@chromium.org
e63306df4d Only set USE_ANDROID_NDK_CPU_FEATURES if it's not already been explicitly set
R=djsollen@google.com, reed@google.com
BUG=skia:

Author: george@mozilla.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13750 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 22:57:21 +00:00
commit-bot@chromium.org
c169f44460 fix build error in chromium
NOTREECHECKS=true
NOTRY=true
R=fmalita@google.com, jvanverth@google.com, fmalita@chromium.org
TBR=fmalita@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13749 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 21:50:00 +00:00
fmalita@google.com
f1292bc01f Revert "De-virtualize SkCanvas save/restore."
(To allow a roll fix into the tree).

This reverts commit edf702204be42c945254191f9f9cd6585b3d189b.

R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13748 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 21:46:56 +00:00
fmalita@google.com
80b10518a2 De-virtualize SkCanvas save/restore.
This moves the state management logic into non-virtual SkCanvas methods,
and turns the virtuals into protected notifiers.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13747 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 21:04:41 +00:00
robertphillips@google.com
53ba425c91 Drop executable flag from headers so that they can be packaged
https://codereview.chromium.org/194883004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13746 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 19:55:51 +00:00
senorblanco@chromium.org
06342a2666 Fix SkOffsetImageFilter to use a temporary for bounds computations.
SkOffsetImageFilter::onFilterBounds() was writing to *dst, and later
referring to src. These may be the same memory location, so the results
were incorrect.

Covered by the 5th test case in offsetimagefilter.

BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13744 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 18:29:42 +00:00
bsalomon@google.com
de9f251427 Fix radical assumption that 0.5 in double is exactly convertible to float.
BUG=skia:2181

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13742 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 17:09:17 +00:00
commit-bot@chromium.org
b97c3ffddf Enable use of distance fields via SkPaint flag.
Now that distance field generation is fast enough to make it practical, this makes distances field fonts easily available to anyone who wants to try them out (i.e Chromium).

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13741 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 17:07:15 +00:00
commit-bot@chromium.org
8065ec50f1 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173

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

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

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13740 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 15:57:40 +00:00
commit-bot@chromium.org
c5c748c147 Handle rrects with one circular corner and three square corners in GrRRectEffect.
BUG=skia:2181
R=jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13739 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-11 15:54:51 +00:00
commit-bot@chromium.org
821397018f plumbing for GPU fast blur
BUG=skia:2281
R=bsalomon@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13735 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 22:53:20 +00:00
commit-bot@chromium.org
a477154cfc plumb API for analytic rrect blur
BUG=skia:2281
R=bsalomon@google.com, reed@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13733 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 21:42:06 +00:00
commit-bot@chromium.org
b5f3b35645 Revert of Add new module for distance field generation. (https://codereview.chromium.org/178543007/)
Reason for revert:
multiple compile errors

Original issue's description:
> Add new module for distance field generation.
>
> This improves the speed over the previous method by 10x+, and makes using distance fields practical.
>
> BUG=skia:2173
>
> Committed: http://code.google.com/p/skia/source/detail?r=13729

R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com
TBR=bsalomon@google.com, jvanverth@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2173

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13732 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 20:37:54 +00:00
reed@google.com
b93ba45b58 flag to make kClipToLayer_SaveFlag the default behavior
#define SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG to get the old behavior

The goal is to remove the feature of saveLayer that allows the canvas to draw outside of the top-most layer.

R=robertphillips@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13730 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 19:47:58 +00:00
commit-bot@chromium.org
bf99824083 Add new module for distance field generation.
This improves the speed over the previous method by 10x+, and makes using distance fields practical.

BUG=skia:2173
R=bsalomon@google.com, robertphillips@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13729 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 19:38:51 +00:00
commit-bot@chromium.org
d7e0fbef5d Pulling these out of other reviews so avoid code review clutter.
R=jvanverth@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13724 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 16:41:00 +00:00
commit-bot@chromium.org
dd58422b4b Use bitfield rather than distinct enum types for circular corners in RRectEffect.
BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13723 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 16:08:22 +00:00
commit-bot@chromium.org
8f58b85bfb remove legacy ifdef wrapping fast blur
BUG=skia:
R=robertphillips@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13722 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 16:05:57 +00:00
commit-bot@chromium.org
cac5fd597f Factory methods for heap-allocated SkImageFilter objects.
This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkImageFilter and its subclasses non-public
and instead provides factory methods for creating these objects on the heap. We
temporarily keep constructor of publicly visible classes public behind a flag.

BUG=skia:2187
R=scroggo@google.com, mtklein@chromium.org, reed@google.com, senorblanco@google.com, senorblanco@chromium.org, bsalomon@google.com, sugoi@chromium.org, zork@chromium.org

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13718 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 10:51:58 +00:00
commit-bot@chromium.org
b471a32460 Add API for GrContext to recommend rendertarget sample count
Add GrContext::getRecommendedSampleCount method that can be
used to determine which GPU backend and what exact sample count
is recommendeded for a particular render target at particular
dpi.

Make this initially recommend 4xMSAA for contexts which have
NVPR enabled if dpi is 250 or more, 16 if dpi is less than 250
and no MSAA for others.

BUG=chromium:347962
R=bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13717 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-10 07:40:03 +00:00
commit-bot@chromium.org
5c70cdca5e hide getTotalClip, so we can eventually remove it
hide getClipType, so we can eventually remove it

patch from issue 189443007

TBR=robertphilips@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13715 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-08 03:57:19 +00:00
skia.committer@gmail.com
e62513fb92 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13714 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-08 03:02:06 +00:00
commit-bot@chromium.org
e5a041c068 Implement the clip as 4 or fewer GrEffects when possible.
BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13710 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 19:43:43 +00:00
commit-bot@chromium.org
8c2ee59635 Once Chromium starts holding on to paths and we can actually reuse cached path data (e.g., masks & geometry) we will need a way to preserve that reuse in the skps. This CL begins adding that capability. More analysis & profiling needs to be done before it is always enabled.
When enabled it does make the disabled path de-duping test in the Canvas unit test pass.

BUG=skia:507
R=bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13709 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 18:42:15 +00:00
commit-bot@chromium.org
8016f79cfc This is just the first version and shows how I intend to orchestrate this. Future enhancements will:
track the portion of the bitmap required
track any resizing that might be required
actually preload something

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13704 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 15:53:01 +00:00
commit-bot@chromium.org
210a6aa8bd getFactory() must return a factory.
BUG=348821
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13702 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 14:52:09 +00:00
commit-bot@chromium.org
7fc2228795 Fix underlying issue causing crbug.com/348821.
SkDashPathEffect refuses to flatten itself if it thinks it's a no-op.  This
messes with the assumption that flattening a non-NULL effect and then
unflattening from those bytes produces a non-NULL effect.  I'd rather make that
assumption always be true than save a few bytes for rare nonsense path effects.

BUG=348821
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13701 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 14:43:00 +00:00
commit-bot@chromium.org
fe089b383a SSE2 implementation of S32A_D565_Opaque_Dither
Run benchmarks with command line option "--forceDither true --forceBlend
1", almost all the benchmarks exercised S32A_D565_Opaque_Dither can get
about 20%-70% performance improvement.
Here are the data on i7-3770:
                                                  before    after
verts                                            4314.81  3627.64  15.93%
constXTile_MM_filter_trans                       1434.22   432.82  69.82%
constXTile_CC_filter_trans_scale                 1440.17   437.00  69.66%
constXTile_RR_filter_trans                       1436.96   431.93  69.94%
constXTile_MM_trans_scale                        1436.33   435.77  69.66%
constXTile_CC_trans                              1433.12   431.36  69.90%
constXTile_RR_trans_scale                        1436.13   436.06  69.64%
constXTile_MM_filter                             1411.55   408.06  71.09%
constXTile_CC_filter_scale                       1416.68   414.18  70.76%
constXTile_RR_filter                             1429.46   409.81  71.33%
constXTile_MM_scale                              1415.00   412.56  70.84%
constXTile_CC                                    1410.32   408.36  71.04%
constXTile_RR_scale                              1413.26   413.16  70.77%
repeatTile_4444_A                                1922.01   879.03  54.27%
repeatTile_4444_A                                1430.68   818.34  42.80%
repeatTile_4444_X                                1817.43   816.63  55.07%
maskshader                                       5911.09  5895.46   0.26%
gradient_create_alpha                               4.41     4.41  -0.15%
gradient_conical_clamp_3color                   35298.71 27574.34  21.88%
gradient_conical_clamp_hicolor                  35262.15 27538.99  21.90%
gradient_conical_clamp                          35276.21 27599.80  21.76%
gradient_radial2_mirror                         20846.74 12969.39  37.79%
gradient_radial2_clamp_hicolor                  21848.12 13967.57  36.07%
gradient_radial2_clamp                          21829.95 13978.57  35.97%
bitmap_4444_A_scale_rotate_bicubic                105.31    87.13  17.26%
bitmap_4444_A_scale_bicubic                        73.69    47.76  35.20%
bitmap_4444_update_scale_rotate_bilerp            125.65    87.86  30.08%
bitmap_4444_update_volatile_scale_rotate_bilerp   125.50    87.65  30.16%
bitmap_4444_scale_rotate_bilerp                   124.46    87.91  29.37%
bitmap_4444_A_scale_rotate_bilerp                 105.09    87.27  16.96%
bitmap_4444_update_scale_bilerp                   106.78    63.28  40.74%
bitmap_4444_update_volatile_scale_bilerp          106.66    63.66  40.32%
bitmap_4444_scale_bilerp                          106.70    63.19  40.78%
bitmap_4444_A_scale_bilerp                         83.05    62.25  25.04%
bitmap_a8                                          98.11    52.76  46.22%
bitmap_a8_A                                        98.24    52.85  46.20%

BUG=
R=mtklein@google.com

Author: qiankun.miao@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13699 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 13:24:42 +00:00
commit-bot@chromium.org
275804782f SSE2 implementation of S32_D565_Opaque_Dither
Run benchmarks with command line option "--forceDither true". The result
shows that all benchmarks exercised S32_D565_Opaque_Dither benefit from
this SSE2 optimization. Here are the data on i7-3770:
                                                  before    after
constXTile_MM_filter                              900.93   217.75  75.83%
constXTile_CC_filter_scale                        907.59   225.65  75.14%
constXTile_RR_filter                              903.33   219.41  75.71%
constXTile_MM_scale                               902.45   221.46  75.46%
constXTile_CC                                     898.55   218.37  75.70%
constXTile_RR_scale                               902.69   222.35  75.37%
repeatTile_4444_X                                 938.53   240.49  74.38%
gradient_radial2_mirror                         16999.49 11540.39  32.11%
gradient_radial2_clamp_hicolor                  17943.38 12501.71  30.33%
gradient_radial2_clamp                          17816.36 12492.04  29.88%
bitmaprect_FF_filter_trans                         47.81    10.98  77.03%
bitmaprect_FF_nofilter_trans                       47.79    10.91  77.18%
bitmaprect_FF_filter_identity                      47.74    10.89  77.18%
bitmaprect_FF_nofilter_identity                    47.83    10.89  77.24%
bitmap_4444_update_scale_rotate_bilerp            100.45    76.84  23.50%
bitmap_4444_update_volatile_scale_rotate_bilerp   100.80    76.70  23.91%
bitmap_4444_scale_rotate_bilerp                   100.43    77.18  23.15%
bitmap_4444_update_scale_bilerp                    79.00    49.03  37.93%
bitmap_4444_update_volatile_scale_bilerp           78.90    48.87  38.06%
bitmap_4444_scale_bilerp                           78.92    48.81  38.16%
bitmap_4444_update                                 42.19    11.53  72.68%
bitmap_4444_update_volatile                        42.28    11.49  72.82%
bitmap_a8                                          60.37    29.75  50.72%
bitmap_4444                                        42.19    11.52  72.69%

BUG=
R=mtklein@google.com

Author: qiankun.miao@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13698 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 03:25:32 +00:00
commit-bot@chromium.org
4cd9e2169e Add SkCanvas::writePixels that takes info+pixels directly
add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals)

BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 03:25:16 +00:00
commit-bot@chromium.org
a5572e5bb2 Add a class to allocate small objects w/o extra calls to new.
Add SkSmallAllocator, a template for allocating small (as defined by the
instantiation) objects without extra calls to new. Add a helper macro to
make using it simple.

Remove SkTemplatesPriv.h, whose behavior is replaced by SkSmallAllocator.
The old SK_PLACEMENT_NEW had the following drawbacks:
- Easily confused with SkNEW_PLACEMENT.
- Requires passing around lots of void*s along with the storageSize.
- Requires using a separate class for deleting it.
- We had multiple ways Auto objects for deleting in different places.
- It always did a straight heap allocation on Windows, meaning Windows
  did not get any advantages from the confusing code.
The new SkSmallAllocator simplifies things:
- It is clear about what it does.
- It takes care of the deletion in one place that is automatically
  handled.

Further, the new class can be used to create more than one object. This
is in preparation for BUG=skia:1976, for which we would like to create
a new object without extra heap allocations. The plan is to create both
the blitter and the new object on the stack using the SkSmallAllocator.

Add a new test for SkSmallAllocator.

SkShader.h:
Move the private version of CreateBitmapShader to SkBitmapProcShader
(which already has the implementation) and remove the friend class
(which was only used to call this private function). This allows
SkSmallAllocator to reside in the private src/ directory.

SkBitmapProcShader:
Move CreateBitmapShader and the macro for the storage size here. With
the macro in a (private) header, the (private) headers with function
declarations (which now depend on the storage size used) can see the
macro.
Use SkSmallAllocator in CreateBitmapShader.
Change the macro to kBlitterStorageByteCount, since SkSmallAllocator
takes a byte count as its template parameter.

SkBlitter:
Use the SkSmallAllocator.
Remove Sk3DShader::fKillProc and SkAutoCallProc. Both of their
behaviors have been moved into SkSmallAllocator (SkAutoCallProc was
unnecessary anyway, because the only time we ever used it we also
called detach(), so its auto behavior never happened).
Create the Sk3DShader on the stack, if there's room.
Remove the helper version of Choose, which was unused.

SmallAllocatorTest:
Test for the new class.

The rest:
Use SkSmallAllocator.

BUG=skia:1976
R=reed@google.com, mtklein@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13696 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 03:24:41 +00:00
commit-bot@chromium.org
06e9752521 Add debug check of chunk size written to skp
R=mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13692 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 20:53:44 +00:00
commit-bot@chromium.org
e597e7b5c8 Remove MCRec.fNext
No longer used.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13690 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 19:56:58 +00:00
commit-bot@chromium.org
0438645c72 Actually, we wrote only size bytes.
BUG=skia:
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13688 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 19:23:51 +00:00
commit-bot@chromium.org
d10913b8a9 Avoid recomputing two consecutive identical 1D filters.
If the arguments to the X and Y filter computation are identical,
the results will be identical; copying is much faster than recomputing.

With a change like https://codereview.chromium.org/183763047/ applied
this speeds up BitmapScaleBench on Linux by around 10%.

BUG=skia:2236
R=humper@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13687 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 19:10:44 +00:00
commit-bot@chromium.org
490fb6b471 Add size_t bytesWritten() const to SkWStream.
BUG=skia:
R=reed@google.com, mtklein@google.com, robertphillips@google.com, bungeman@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13684 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 17:16:26 +00:00
rmistry@google.com
d7a9fcc61f Revert of Manually set fFilterValues in SkConvolutionFilter1D
Revert of https://codereview.chromium.org/184323003                             
                                                                                
Reason for revert:                                                              
Caused unexpected CompareGM failures-                                           
http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86_64-Debug/builds/461/steps/CompareGMs/logs/stdio
http://108.170.217.252:10117/builders/Test-Win7-ShuttleA-HD2000-x86_64-Release/builds/2062/steps/CompareGMs/logs/stdio
http://108.170.217.252:10117/builders/Test-ChromeOS-Alex-GMA3150-x86-Release/builds/1400/steps/CompareGMs/logs/stdio
                                                                                
TBR=                                                                            
NOTREECHECKS=True                                                             
NOTRY=True



git-svn-id: http://skia.googlecode.com/svn/trunk@13683 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 15:37:53 +00:00
commit-bot@chromium.org
fd5c9a6e04 Begin making SkPerlinNoiseShader const.
The overall goal is to make SkShader itself immutable (BUG=skia:1976).
The fields cannot yet be made constant, due to the constructor which
takes an SkReadBuffer. Other than that constructor, the fields are now
unchanged.

Remove setTileSize and initPaint. Merge initPaint with the constructor
of PaintingData, since it is only ever used on a new PaintingData.
Merge setTileSize with the SkPerlinNoiseShader constructor, its only
call site.

BUG=skia:1976
R=reed@google.com, sugoi@google.com, dominikg@chromium.org, senorblanco@google.com, senorblanco@chromium.org

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13682 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 15:13:53 +00:00
commit-bot@chromium.org
5b70e7e2df Manually set fFilterValues in SkConvolutionFilter1D.
Using fFilterValues.reset() or a loop of fFilterValues.push_back() is about 5x slower than calling fFilterValues.resize_back() and then looping using primitive [] and =.

This is only going to show up if you apply https://codereview.chromium.org/183763047/, where it yields about 2.5% speedup in the bitmap resize microbenchmarks on a Linux desktop. Ceteris paribus, it should actually improve rasterization time of drawBitmapRectToRect() with a resize by about 5% in Chromium.


BUG=skia:2258
R=humper@google.com, tomhudson@google.com

Author: tomhudson@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13681 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 14:57:46 +00:00
commit-bot@chromium.org
759cf48468 Now that the matching changes have landed in Chromium we can clean up the API on our side.
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13680 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 13:18:07 +00:00
skia.committer@gmail.com
06acb58074 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13679 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-06 03:02:32 +00:00
commit-bot@chromium.org
cabf4b2f36 Unify edge type enums across GrEffect subclasses that clip rendering to a geometry.
BUG=skia:
R=egdaniel@google.com, robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13674 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 18:27:43 +00:00
commit-bot@chromium.org
dcb8e54ffd This CL is motivated by the desire to make the skpinfo tool work a bit better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes.
R=bungeman@gmail.com, bungeman@google.com, reed@google.com, mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 18:25:20 +00:00
bungeman@google.com
8d79f963b6 Prevent SkBlockMemoryStream::skip from writing to low memory.
SkBlockMemoryStream::read was modeled on SkDynamicMemoryWStream::read.
However, SkDynamicMemoryWStream::read does not allow passing a NULL buffer
and SkBlockMemoryStream::read must correctly handle this case for skips.
In the current code, if a 'skip' crosses a block boundary, 'read' may
attempt to write to low memory.

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13671 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 16:26:14 +00:00
commit-bot@chromium.org
eef834f2be DM: read image files without an extra copy
BUG=skia:
R=halcanary@google.com, reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13669 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 15:37:11 +00:00
commit-bot@chromium.org
5e4112b33a Replace scaled bitmap if entry already exist in cache.
BUG=skia:2251
R=reed@google.com

Author: reveman@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13667 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 13:44:18 +00:00
skia.committer@gmail.com
f1f66c0c86 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13665 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 03:02:06 +00:00
commit-bot@chromium.org
fab349c0bf remove SK_SUPPORT_DEEPCOPYTO_CONFIG code -- no longer used
R=reed@google.com
TBR=bsalomon@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13664 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 02:34:58 +00:00
commit-bot@chromium.org
1f6cf695b3 Counterproposal to 182733007: Add iterator to SkTDynamicHash
BUG=skia:
R=egdaniel@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13663 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 01:00:50 +00:00
commit-bot@chromium.org
e492ac4fb6 Manual revert of https://code.google.com/p/skia/source/detail?r=13353 due to perf regression.
BUG=344020
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13662 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 22:37:29 +00:00
commit-bot@chromium.org
e494dbdec3 The motivation for this CL is to de-clutter SkPicture's beginRecording method.
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13658 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:08:57 +00:00
senorblanco@chromium.org
e09244d463 Apply the CTM to the offset in the slow SkOffsetImageFilter path.
This was being done in the fast path, but not the slow path.

Since I had to rebaseline the offsetimagefilter GM anyway (to accomodate
the new test case), I added a red border around the intersection
of the (transformed) crop rect and clip rect in each sample, beyond
which no pixels should be drawn.

Chrome bug: https://code.google.com/p/chromium/issues/detail?id=346362

BUG=skia:
R=sugoi@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13656 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 19:05:25 +00:00
commit-bot@chromium.org
fbde87f53d Add GM that directly tests GrRRectEffect and add inverse fill version of effect.
BUG=skia:
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13653 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 16:25:34 +00:00
skia.committer@gmail.com
ade9a3485e Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13651 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-04 03:02:32 +00:00
commit-bot@chromium.org
1643b2c9bc This adds cull rect visualization to the debugger's "mega" visualization mode.
R=fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13649 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 23:25:41 +00:00
commit-bot@chromium.org
5f6ac03b00 Don't emit declaration of gl_FragPos unless also changing the origin.
R=jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13648 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 23:25:26 +00:00
senorblanco@chromium.org
6aa6fec0e3 Cleanup patch to move all of SkImageFilterUtils into SkImageFilter.
This was a utility class that dates from before GPU code was allowed
in core. Now that it is, there's no reason not to have this
functionality in SkImageFilter.

Covered by existing tests.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13646 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 22:13:56 +00:00
commit-bot@chromium.org
6f4fb0f129 Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out.
Please see skbug:1057

rmistry for tools, gyp
mtklein for src\core & include\core

BUG=skia:1057
R=rmistry@google.com, mtklein@google.com, reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:18:39 +00:00
commit-bot@chromium.org
768ac85655 The new "mega" viz mode both adds visualization and forces all drawing to the visible canvas (by replacing the active saveLayers with saves).
R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13640 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 16:32:17 +00:00
senorblanco@chromium.org
47d98c8e85 Fix CTM scaling and clipping of SkRectShaderImageFilter.
Pass the CTM as part of the local matrix passed by
SkRectShaderImageFilter. Teach SkPerlinNoiseShader to respect the local
matrix. Embiggen imagefiltersscaled GM size to accommodate the new test
cases.

Note: will require rebaselines of imagefiltersscaled and imagefiltersclipped

R=sugoi@chromium.org
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13637 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 14:58:09 +00:00
commit-bot@chromium.org
c9b2c885be New approach for GPU font atlas
In the previous code, each GrTextStrike had exclusive access to one or more GrPlots in the texture atlas. This led to poor packing when only a few glyphs were used. This change allows GrTextStrikes to share GrPlots, thereby getting much better utilization of the entire texture.

BUG=skia:2224
R=robertphillips@google.com, bsalomon@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13636 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 14:30:25 +00:00
commit-bot@chromium.org
0bc406df48 Adding code to calculate Underline Thickness from Font Metrics, this will be useful when Skia is used with Blink/Chrome. Blink changes are uploaded with code change in patch https://codereview.chromium.org/147703002/
BUG=skia:
R=reed@android.com, edisonn@google.com, reed@google.com, mtklein@google.com, mtklein@chromium.org, bungeman@google.com

Author: h.joshi@samsung.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13635 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-01 20:12:26 +00:00
skia.committer@gmail.com
370a89980b Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-01 03:02:09 +00:00
commit-bot@chromium.org
ef57b7e653 DM: make GPU tasks multithreaded again. Big refactor.
The main meat of things is in SkThreadPool.  We can now give SkThreadPool a
type for each thread to create and destroy on its local stack.  It's TLS
without going through SkTLS.

I've split the DM tasks into CpuTasks that run on threads with no TLS, and
GpuTasks that run on threads with a thread local GrContextFactory.

The old CpuTask and GpuTask have been renamed to CpuGMTask and GpuGMTask.

Upshot: default run of out/Debug/dm goes from ~45 seconds to ~20 seconds.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13632 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 20:31:31 +00:00
commit-bot@chromium.org
f535561b3b Cleanup GrGLInterface after Chromium changes
Depends on landing https://codereview.chromium.org/143263014

R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13630 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 20:28:50 +00:00
robertphillips@google.com
8f90a892c5 add new onClip* methods to SkCanvas
https://codereview.chromium.org/183453002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13627 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 18:19:39 +00:00
reed@google.com
842292f10f remove SK_SUPPORT_LEGACY_LAYERDRAWLOOPER_PAINTFLAGS -- not needed
BUG=skia:
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13623 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 15:38:22 +00:00
robertphillips@google.com
03fc3b4f67 Revert of r13620 (add new onClip* methods to SkCanvas - https://codereview.chromium.org/183453002/) due to broken Chrome Canary and failing tests.
git-svn-id: http://skia.googlecode.com/svn/trunk@13622 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 15:28:02 +00:00
commit-bot@chromium.org
d85f32ca40 Make GrConvexPolyEffect support inverse fills and non-AA rects
BUG=skia:2151
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13621 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 14:43:26 +00:00
robertphillips@google.com
392c9be344 add new onClip* methods to SkCanvas
https://codereview.chromium.org/183453002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13620 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 14:35:45 +00:00
skia.committer@gmail.com
0e530754d3 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13619 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 03:02:05 +00:00
commit-bot@chromium.org
3107b6a85e add SkCanvas::NewRaster factory -- a very common use-case in chrome
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13617 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 20:32:51 +00:00
commit-bot@chromium.org
4fcc3ca411 Add GrSet class built on top of RedBlackTree
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13616 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 20:23:22 +00:00
commit-bot@chromium.org
210ae2a426 Culling API
*** SKP format breaking change ***

Adding a couple of culling primitives: pushCull(SkRect) & popCull().

These are currently only plumbed for SKP playback quickreject.

At record time, we perform a couple of optimizations to trim down the
number of redundant culls:

  * collapse empty pushCull/popCull pairs
  * skip pushCull/popCull pairs nested within an identical cull rect

Things still missing/to consider:

  * use an inlineable, simplified quickreject (Mike's old prototype)
  * debugger visualization for cull boxes
  * BBH integration: the initial prototype had some minimal BBH support,
    but since the optimizations required expensive rewinds and culling
    is expected to be a BBH alternative, it got dropped.

R=bsalomon@google.com, reed@google.com, robertphillips@google.com, caryclark@google.com, tomhudson@google.com, iancottrell@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13611 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 17:40:13 +00:00
commit-bot@chromium.org
6f954b956f Use SkTLazy to hold path in SkClipStack::Element
R=reed@google.com, robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13610 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 17:39:46 +00:00
reed@google.com
48f31bdbb3 try to deprecate fFlagsMask from SkLayerDrawLooper
We think we want to move around how flags/fields like linearText and strikeThru
are specified. SkPaint has helpers for nearly all of these, but LayerInfo in
the draw looper just exposes the raw bitfield.

On survey of chrome/android, it appears that no one uses those, so it may be
safe to just remove the feature entirely from the looper.

R=bungeman@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13607 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 14:27:44 +00:00
commit-bot@chromium.org
d957984c1e Factory methods for heap-allocated SkAnnotation objects.
This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkAnnotation non-public and instead
provides factory methods for creating these objects on the heap.

BUG=skia:2187
R=reed@google.com, mtklein@google.com, scroggo@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13605 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 11:47:36 +00:00
commit-bot@chromium.org
c530208ab0 Add point count to lua SkPath.
Add some scripts for classifying rrects and counting complex clip combinations.

R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13601 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 21:38:47 +00:00
commit-bot@chromium.org
5007aab81a Upstream changes from Android
R=scroggo@google.com, reed@google.com

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13600 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 21:35:17 +00:00
bsalomon@google.com
4ebe382188 Revert "Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)"
This reverts commit efded03a38d6147caaf2d951638d27fdd47eed64.

Fixes builds

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13599 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 20:22:32 +00:00
commit-bot@chromium.org
1caedbb216 Revert of Add getReducedClipStack to lua canvas (https://codereview.chromium.org/180283004/)
Reason for revert:
breaking a bunch of builds

Original issue's description:
> Add getReducedClipStack to lua canvas
>
> Committed: http://code.google.com/p/skia/source/detail?r=13594

R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13597 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 18:32:44 +00:00
commit-bot@chromium.org
a47ac2bcc2 Add getReducedClipStack to lua canvas
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13594 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 17:50:08 +00:00
commit-bot@chromium.org
f792a1b207 Builder class for SkLayerRasterizer.
Provide builder class to make SkLayerRasterizer immutable. We have to keep the
addLayer() methods for now because they are used in Chrome. They will be removed
once this changed has been rolled into Chrome.
An added benefit of this is that this class can only be allocated on the heap.

BUG=skia:2187
R=reed@google.com, scroggo@google.com, mtklein@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13590 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 13:27:37 +00:00
commit-bot@chromium.org
88a954335a Enable the SSSE3 files to be built for Android when SSSE3 is not present.
Committed: http://code.google.com/p/skia/source/detail?r=13547

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

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13583 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 18:14:08 +00:00
commit-bot@chromium.org
fe68eb6a40 ARM Skia NEON patches - 25 - S32A_D565_Opaque_Dither clean/bugfix/speed
BlitRow565: S32A_D565_Opaque_Dither: some improvements

    - Supports ARGB and ABGR
    - Less magic numbers
    - Reduced instruction count : 5-25% speedup
    - Fixed indentation, removed some commented and useless code

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13577 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 10:54:32 +00:00
skia.committer@gmail.com
90667ba5eb Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13576 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 03:05:18 +00:00
commit-bot@chromium.org
e8d9614cd1 This is intended to make it easier for us to be backwards compatible.
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13575 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 02:16:10 +00:00
commit-bot@chromium.org
d85b822616 Add some SkPath lua functions
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13572 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 21:59:29 +00:00
reed@google.com
754de5f65b add isClipEmpty() -- encourage clients to call this rather than checking clipFoo() results
BUG=skia:
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13568 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 19:38:20 +00:00
commit-bot@chromium.org
5cc25359c6 Add getClipStack method to lua SkCanvas
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13567 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 18:59:48 +00:00
commit-bot@chromium.org
3d305207bd Add DRRect to debugger
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13565 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 17:28:55 +00:00
commit-bot@chromium.org
6c5f1fd66c I believe this makes it clearer what is going on; namely:
saveLayers cause their enclosing MC state to become a prefix for their child canvas calls. In such cases we don't want to inadvertently close the nesting MC state but when we do (i.e., when the saveLayer's restore is seen) we want to also restore the nesting MC state to be the current one.

R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13564 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 17:24:15 +00:00
senorblanco@chromium.org
e74e08c1d0 Fix compile errors in legacy copyTo().
R=reed@google.com, reed

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13562 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 15:51:15 +00:00
senorblanco@chromium.org
89f077ced4 Fix saveLayer() clipping w/filters, GPU path.
Don't modify the clipstack in saveLayer() if the kClipToLayer_SaveFlag is
not set. Without this the GPU path will clip the offscreen to the layer's
bounds, even if the flag is not set.

R=robertphillips@google.com
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13561 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 15:16:42 +00:00
reed@google.com
e9336aa216 use colortypes instead of bitmap::config
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13558 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 13:13:26 +00:00
commit-bot@chromium.org
6ebfbf9968 Use vertex buffer objects instead of client side arrays in fixed-function codepaths
Pass vertices to the fixed-function shaders in vertex buffer object
stored at attribute 0. This is specified in OpenGL Compatibility
Profile Section 10.8.2 (Transferring Vertices With Vertex Attribute
Zero).

This makes future integration to Chromium command buffer better, since
the command buffer already has code for vertex buffer objects but not
vertex arrays.

Delete unused function pointers related to fixed-function codepaths.

R=bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13557 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 12:05:02 +00:00
commit-bot@chromium.org
39ce33a1fa SSE2 implementation of S32_D565_Opaque
Benchmarks hitting this path can benfit from this patch.
Here are the data:
                                    before      after
        gradient_radial2_mirror   10885.52   10849.48   0.33%
 gradient_radial2_clamp_hicolor   11819.69   11644.83   1.48%
         gradient_radial2_clamp   11816.10   11649.91   1.41%
     bitmaprect_FF_filter_trans       6.27       4.88  22.17%
   bitmaprect_FF_nofilter_trans       6.27       4.88  22.17%
  bitmaprect_FF_filter_identity       6.31       4.86  22.98%
bitmaprect_FF_nofilter_identity       6.25       4.86  22.24%
             bitmap_4444_update       6.26       5.05  19.33%
    bitmap_4444_update_volatile       6.21       5.06  18.52%
                    bitmap_4444       6.22       5.06  18.65%

BUG=
R=mtklein@google.com

Author: qiankun.miao@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13556 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 04:23:39 +00:00
skia.committer@gmail.com
86cbf99a51 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13555 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 03:01:55 +00:00
commit-bot@chromium.org
8a2ad3cae7 add new copyTo version to SkBitmap, which takes SkColorType
BUG=skia:
R=scroggo@google.com, halcanary@google.com, bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13553 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-23 03:59:35 +00:00
skia.committer@gmail.com
7911ade991 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13551 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-22 03:02:18 +00:00
commit-bot@chromium.org
7b4edb249b Revert of Enable the SSSE3 files to be built for Android when SSSE3 is not present. (https://codereview.chromium.org/169753004/)
Reason for revert:
Breaking the build.

Non-android machines are calling sk_throw().

Original issue's description:
> Enable the SSSE3 files to be built for Android when SSSE3 is not present.
>
> Committed: http://code.google.com/p/skia/source/detail?r=13547

R=reed@google.com, mtklein@google.com, djsollen@google.com
TBR=djsollen@google.com, mtklein@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13549 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 23:11:35 +00:00
commit-bot@chromium.org
cb3672ed7f Add effect-based clipping for circular "tab" style rrects.
BUG=skia:2181
R=jvanverth@google.com, robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13548 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 22:41:56 +00:00
commit-bot@chromium.org
32d58e662c Enable the SSSE3 files to be built for Android when SSSE3 is not present.
R=reed@google.com, mtklein@google.com

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13547 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 22:35:45 +00:00
commit-bot@chromium.org
283ce52572 Fix error on iOS native interface
NOTREECHECK=True
NOTRY=True
R=bsalomon@google.com
TBR=bsalomon@google.com
BUG=skia:

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13546 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 22:21:17 +00:00
commit-bot@chromium.org
4324c3ba70 Fix warnings on Ubuntu13
Turn off warnings when building libwebp.
Turn off warnings when building libjpeg.
Initialize some variables immediately.

NOTRY=True
NOTREECHECKS=True

BUG=skia:2213
BUG=skia:2214
R=bsalomon@google.com, halcanary@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13545 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 20:11:42 +00:00
commit-bot@chromium.org
032a52fd4c Use SkRRect to store rects in SkClipStack::Element
BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13544 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 20:09:13 +00:00
commit-bot@chromium.org
374ea4ee26 ARM Skia NEON patches - 12 - S32_Blend
Blitrow32: S32_Blend fix and little speed improvement

- the results are now exactly similar as the C code
- the speed has improved, especially for small values of count

+-------+-----------+------------+
| count | Cortex-A9 | Cortex-A15 |
+-------+-----------+------------+
| 1     | +30%      | +18%       |
+-------+-----------+------------+
| 2     | 0         | 0          |
+-------+-----------+------------+
| 4     | - <1%     | +14%       |
+-------+-----------+------------+
| > 4   | -0.5..+5% | -0.5..+4%  |
+-------+-----------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia:

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

R=djsollen@google.com, mtklein@google.com

Author: kevin.petit@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13543 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 19:49:17 +00:00
commit-bot@chromium.org
def6468dd2 Stub for conic section max curvature
BUG=skia:
R=reed@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13542 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 19:49:10 +00:00
commit-bot@chromium.org
b988276362 Fix for ANGLE interface error
NOTREECHECKS=True
NOTRY=True
R=bsalomon@google.com
TBR=bsalomon@google.com
BUG=skia:

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13541 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 19:46:21 +00:00
commit-bot@chromium.org
727a352f74 Factory methods for heap-allocated SkColorFilter objects.
This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkColorFilter and its subclasses non-public
and instead provides factory methods for creating these objects on the heap. We
temporarily keep constructor of publicly visible classes public behind a flag.

BUG=skia:2187
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13539 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 18:46:30 +00:00
commit-bot@chromium.org
a3baf3be0e Add hooks for GL_EXT_debug_marker in gpu
BUG=skia:
R=bsalomon@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13538 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 18:45:30 +00:00
commit-bot@chromium.org
aca1c01f3b Merge tomhudson and mtklein SkPaint shrinking approaches.
I think this is cherry picking the best parts of both our CLs.  We've got dirty bit tracking from Tom's, picture format stability from Mike's, etc.  Paints are typically 1/3 their original size when flattened in the dictionary.

bench_record on my desktop looks promising.  Generally, looks faster.  (Best in monospace.)
a/b   skp                               before  after
0.83  desk_techcrunch.skp               0.29    0.24
0.83  tabl_gamedeksiam.skp              0.52    0.43
0.87  desk_carsvg.skp                   0.4     0.35
0.87  desk_googlehome.skp               0.038   0.033
0.87  desk_pokemonwiki.skp              3.9     3.4
0.88  desk_fontwipe.skp                 0.0089  0.0078
0.88  desk_googlespreadsheet.skp        0.16    0.14
0.89  desk_jsfiddlebigcar.skp           0.027   0.024
0.89  desk_tigersvg.skp                 0.038   0.034
0.89  desk_weather.skp                  0.19    0.17
0.89  tabl_engadget.skp                 0.37    0.33
0.89  tabl_googleblog.skp               0.28    0.25
0.9   desk_facebook.skp                 0.2     0.18
0.91  desk_mapsvg.skp                   0.45    0.41
0.91  desk_youtube.skp                  0.22    0.2
0.92  desk_forecastio.skp               0.12    0.11
0.92  desk_googlespreadsheetdashed.skp  0.49    0.45
0.92  desk_gws.skp                      0.13    0.12
0.92  desk_pinterest.skp                0.037   0.034
0.92  desk_twitter.skp                  0.25    0.23
0.92  tabl_culturalsolutions.skp        0.26    0.24
0.92  tabl_gspro.skp                    0.072   0.066
0.92  tabl_mercurynews.skp              0.26    0.24
0.93  desk_booking.skp                  0.46    0.43
0.93  desk_chalkboard.skp               0.28    0.26
0.93  desk_linkedin.skp                 0.14    0.13
0.93  desk_mobilenews.skp               0.28    0.26
0.93  tabl_cuteoverload.skp             0.46    0.43
0.93  tabl_deviantart.skp               0.15    0.14
0.93  tabl_gmail.skp                    0.029   0.027
0.93  tabl_googlecalendar.skp           0.15    0.14
0.93  tabl_mlb.skp                      0.15    0.14
0.94  desk_blogger.skp                  0.18    0.17
0.94  desk_jsfiddlehumperclip.skp       0.034   0.032
0.94  desk_wordpress.skp                0.33    0.31
0.94  desk_wowwiki.skp                  0.94    0.88
0.94  desk_yahooanswers.skp             0.17    0.16
0.94  desk_youtubetvvideo.skp           0.017   0.016
0.94  tabl_sahadan.skp                  0.093   0.087
0.94  tabl_worldjournal.skp             0.35    0.33
0.95  desk_css3gradients.skp            0.21    0.2
0.95  desk_gmailthread.skp              0.19    0.18
0.95  tabl_cnet.skp                     0.42    0.4
0.95  tabl_mozilla.skp                  1.9     1.8
0.95  tabl_pravda.skp                   0.19    0.18
0.96  mobi_wikipedia.skp                0.55    0.53
0.96  tabl_cnn.skp                      0.48    0.46
0.96  tabl_nofolo.skp                   0.05    0.048
0.97  desk_googleplus.skp               0.29    0.28
0.97  tabl_frantzen.skp                 0.059   0.057
0.97  tabl_onlinewsj.skp                0.38    0.37
0.97  tabl_slashdot.skp                 0.1     0.097
0.97  tabl_vnexpress.skp                0.29    0.28
0.99  desk_amazon.skp                   0.088   0.087
1     desk_baidu.skp                    0.097   0.099
1     desk_ebay.skp                     0.18    0.18
1     desk_espn.skp                     0.24    0.24
1     desk_oldinboxapp.skp              0.026   0.026
1     desk_rectangletransition.skp      0.014   0.014
1     desk_samoasvg.skp                 0.23    0.24
1     desk_yahoogames.skp               0.029   0.029
1     desk_yahoosports.skp              0.0033  0.0033
1     desk_youtubetvbrowse.skp          0.01    0.01
1     tabl_androidpolice.skp            0.65    0.65
1     tabl_digg.skp                     0.33    0.33
1     tabl_hsfi.skp                     0.32    0.32
1     tabl_nytimes.skp                  0.22    0.22
1     tabl_techmeme.skp                 0.069   0.072
1     tabl_ukwsj.skp                    0.35    0.35
1.1   desk_sfgate.skp                   0.25    0.28


BUG=skia:2190,skia:2194

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

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

R=tomhudson@google.com, reed@google.com, mtklein@google.com, robertphillips@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13536 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 18:18:05 +00:00
commit-bot@chromium.org
e5280893f8 Hide GrRRectEffect class from header
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13535 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 17:52:29 +00:00
commit-bot@chromium.org
5b92499f8f Revert of ARM Skia NEON patches - 12 - S32_Blend (https://codereview.chromium.org/158973002/)
Reason for revert:
Breaking the build.

See http://108.170.219.164:10117/builders/Build-Ubuntu12-GCC-Arm7-Debug-Nexus4/builds/2966 (and others).

We are getting warnings that vsrc and vdst may be uninitialized. Please fix and resubmit.

Original issue's description:
> ARM Skia NEON patches - 12 - S32_Blend
>
> Blitrow32: S32_Blend fix and little speed improvement
>
> - the results are now exactly similar as the C code
> - the speed has improved, especially for small values of count
>
> +-------+-----------+------------+
> | count | Cortex-A9 | Cortex-A15 |
> +-------+-----------+------------+
> | 1     | +30%      | +18%       |
> +-------+-----------+------------+
> | 2     | 0         | 0          |
> +-------+-----------+------------+
> | 4     | - <1%     | +14%       |
> +-------+-----------+------------+
> | > 4   | -0.5..+5% | -0.5..+4%  |
> +-------+-----------+------------+
>
> Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13532

R=djsollen@google.com, mtklein@google.com, kevin.petit@arm.com
TBR=djsollen@google.com, kevin.petit@arm.com, mtklein@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13534 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 17:52:17 +00:00
robertphillips@google.com
fc4ded9f4a Fix saveLayer bugs in SkMatrixClipStateMgr
https://codereview.chromium.org/169283011/



git-svn-id: http://skia.googlecode.com/svn/trunk@13533 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 17:46:37 +00:00
commit-bot@chromium.org
dfff2737f8 ARM Skia NEON patches - 12 - S32_Blend
Blitrow32: S32_Blend fix and little speed improvement

- the results are now exactly similar as the C code
- the speed has improved, especially for small values of count

+-------+-----------+------------+
| count | Cortex-A9 | Cortex-A15 |
+-------+-----------+------------+
| 1     | +30%      | +18%       |
+-------+-----------+------------+
| 2     | 0         | 0          |
+-------+-----------+------------+
| 4     | - <1%     | +14%       |
+-------+-----------+------------+
| > 4   | -0.5..+5% | -0.5..+4%  |
+-------+-----------+------------+

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=skia:
R=djsollen@google.com, mtklein@google.com

Author: kevin.petit@arm.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13532 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 17:40:35 +00:00
commit-bot@chromium.org
197fea2d18 Potential fix for array bounds warning.
BUG=skia:2123
R=caryclark@google.com

Author: jvanverth@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13531 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 15:27:49 +00:00
commit-bot@chromium.org
ab5827354e override new virtual onDrawDRRect in util canvas subclasses
BUG=skia:
R=robertphillips@google.com, reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13529 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 12:20:45 +00:00
commit-bot@chromium.org
b39d5617f6 update for coding style, remove explicit floats
BUG=skia:
R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13528 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 12:17:34 +00:00
commit-bot@chromium.org
7c9d0f3104 Factory methods for heap-allocated SkMaskFilter objects.
This is part of an effort to ensure that all SkPaint effects can only be
allocated on the heap.

This patch makes the constructors of SkMaskFilter and its subclasses non-public
and instead provides factory methods for  creating these objects on the heap. We
temporarily keep constructor of publicly visible classes public behind a flag.

BUG=skia:2187
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13527 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 10:13:32 +00:00
commit-bot@chromium.org
0b45dc45d6 fix the visual difference of raster vs gpu -- inverse_paths
If a path has no verbs, it is empty. If a path has verbs, but both the width and height of the bounds are zero. the path is empty too. This situation happens when you add an empty rect or circle... , say a rect{x, y, width, height} = {100, 100, 0, 0}, to a path.

For 8888 config, drawPath() checked the bounds.
For gpu config, it doesn't.

BUG=skia:2176
R=reed@google.com, bsalomon@google.com, schenney@chromium.org

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13526 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 05:42:57 +00:00
skia.committer@gmail.com
25c7127c90 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13525 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 03:02:02 +00:00
commit-bot@chromium.org
ed9806f5c9 add SkCanvas::drawDRRect
BUG=skia:
R=bsalomon@google.com, robertphillips@google.com, humper@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13524 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-21 02:32:36 +00:00
commit-bot@chromium.org
0a097ea91c Fix bug in deferred decoding where we don't properly pass the unpremul option to the codec.
R=reed@google.com, scroggo@google.com

Author: djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13521 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 21:04:40 +00:00
reed@google.com
900ecf2f15 use colortype instead of config
patch from issue 172063004

BUG=skia:
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13520 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 20:55:37 +00:00