Commit Graph

3009 Commits

Author SHA1 Message Date
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
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
158001d6fc Windows build fix
git-svn-id: http://skia.googlecode.com/svn/trunk@13841 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 22:09:34 +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
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
reed@google.com
69e6463792 don't reference config() -- use colorType() instead
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13813 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 20:48:05 +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
13874c1ad8 keep kVector enum in legacy mode for getDeviceProperties
git-svn-id: http://skia.googlecode.com/svn/trunk@13801 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 12:32:07 +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
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
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
bungeman@google.com
9c28fa5579 Add comment for gcc compiler bug work-around for SK_COMPILE_ASSERT.
If this comment had existed previously, I could have avoided breaking
some bots.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13793 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 17:51:05 +00:00
bungeman@google.com
2f5820903e Add required parens for r13779.
git-svn-id: http://skia.googlecode.com/svn/trunk@13781 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-12 21:56: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
0714360591 Add SK_API to GrGLExtensions
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13574 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 02:14:57 +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
d5f032d46b Do not define SK_SUPPORT_DEEPCOPYTO_CONFIG in Skia.
Clean up our callers who depend on the deprecated function.

R=scroggo@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13566 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 18:51:43 +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
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
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
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
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
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
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
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
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
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
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
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
commit-bot@chromium.org
0a2bf90dcc Factory methods for heap-allocated SkPathEffect and SkXfermode 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 SkPathEffect, SkXfermode and
their subclasses non-public and instead provides factory methods for
creating these objects on the heap. We temporarily keep the constructors
of the following classes public to not break Chrome/Blink:

SkXfermode
SkCornerPathEffect
SkDashPathEffect

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

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13519 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 20:40:19 +00:00
commit-bot@chromium.org
6285f4f766 Offer single-param version of deepCopyTo -- much easier to migrate to colortypes
BUG=skia:
R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13516 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 19:08:07 +00:00
robertphillips@google.com
ac5004682f Reverting r13496 (Merge tomhudson and mtklein SkPaint shrinking approaches) due to memory leaks
git-svn-id: http://skia.googlecode.com/svn/trunk@13509 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 13:08:17 +00:00
senorblanco@chromium.org
897b73f62c Fix CTM application in SkResizeImagefilter; implement bounds traversals.
SkResizeImageFilter resizes all the pixels from its input (subject to
the input's crop rect), but the offset to be applied was incorrect.
It should take the CTM into account, so that the origin of the resize is
the world space origin, unaffected by whatever clipping is applied.

New GM imageresizetiled exercises the behaviour under
impl-side-painting-like conditions, and existing GMs now have resize
cases added.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13506 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 22:10:12 +00:00
commit-bot@chromium.org
c2f7824436 Analytic rrect clip for cicular corners, radius >= 0.5
BUG=skia:2181
R=robertphillips@google.com, jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13498 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 15:18:05 +00:00
commit-bot@chromium.org
cf52f5b726 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

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13496 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 13:55:07 +00:00
commit-bot@chromium.org
b45c56e4b7 fix iOS build -- pass colortype, not config
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13494 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 23:32:05 +00:00
commit-bot@chromium.org
d281c9240c Add link to how to generate new SKPs when increasing the picture version
BUG=skia:2041
R=robertphillips@google.com, scroggo@google.com, reed@google.com, bsalomon@google.com

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13493 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 22:08:16 +00:00
commit-bot@chromium.org
ead1efb6ba Revert of Merge tomhudson and mtklein SkPaint shrinking approaches. (https://codereview.chromium.org/158913005/)
Reason for revert:
Breaking the build - see https://code.google.com/p/skia/issues/detail?id=2190

Original issue's description:
> 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:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13487

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13491 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 18:41:16 +00:00
commit-bot@chromium.org
d017542551 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:
R=tomhudson@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13487 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 17:25:25 +00:00
reed@google.com
8cb741c9da add param name w/ default arg to work around clang bug on mac 10.7
git-svn-id: http://skia.googlecode.com/svn/trunk@13486 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 16:40:42 +00:00
skia.committer@gmail.com
31acdeabce Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13483 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 03:01:51 +00:00
commit-bot@chromium.org
dac522589e replace SkBitmap::Config with SkColorType in gms
add helper installMaskPixels() to SkBitmap

BUG=skia:
R=halcanary@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13482 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-17 21:21:46 +00:00
bungeman@google.com
2c56cb858f Use factories instead of directly creating SkImageInfo.
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13480 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-17 17:02:17 +00:00
reed@google.com
87001ed1f6 fix style nit in drawIRect
git-svn-id: http://skia.googlecode.com/svn/trunk@13479 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-17 16:28:05 +00:00
commit-bot@chromium.org
403f8d7a05 still trying to kill setDevice: rename to setRootDevice (better name) and make private
BUG=skia:
COLLABORATOR=reed@google.com
R=bsalomon@google.com, scroggo@google.com, reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13476 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-17 15:24:26 +00:00
commit-bot@chromium.org
14e50ae2a1 Make canvas pass rrects along to clip stack
BUG=skia:2181
R=robertphillips@google.com, reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13470 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 23:35:31 +00:00
commit-bot@chromium.org
e24ad23ae6 use SkColorType instead of SkBitmap::Config in views/effects
R=scroggo@google.com, reed@google.com
TBR=scroggo

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13469 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 22:03:38 +00:00
commit-bot@chromium.org
9cb671a001 fix calling undef inline func build error
Fixes error introduced in https://code.google.com/p/skia/source/detail?r=13465

R=robertphillips@google.com
TBR=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13466 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 14:45:45 +00:00
commit-bot@chromium.org
e5b2af955b Store SkRRects in SkClipStack
BUG=skia:2181
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13465 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 13:25:24 +00:00
commit-bot@chromium.org
15a1405999 Change device factories to take SkImageInfo instead of SkBitmap::Config
patch from issue 167033002

BUG=skia:
R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13463 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-16 00:59:25 +00:00
skia.committer@gmail.com
a3b532743d Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13462 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-15 03:02:15 +00:00
commit-bot@chromium.org
9836bc3fdd When the CTM has perspective the back-project method in quickRejectY goes haywire.
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13460 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 19:52:18 +00:00
jvanverth@google.com
09321f5ff2 Remove deprecation of SkBaseDevice::config() so compile can proceed.
TBR:reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13455 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 16:39:10 +00:00
commit-bot@chromium.org
74ba2f62dc Builder class for SkLayerDrawLooper.
SkLayerDrawLooper provides methods like addLayer() to build up a linked list
of layers. Working towards making this class immutable, this patch introduces
the SkLayerDrawLooperBuilder class which is used to accumulate all the layers
first. Once all layers are in place, it creates a new SkLayerDrawLooper object
and hands over the list of layers to that object.

For now we keep the addLayer methods in SkLayerDrawLooper so we don't break
Chrome and Blink when this is landed. Once we've updated all users, we can
remove the methods.

BUG=skia:2141
R=reed@google.com, scroggo@google.com, mtklein@google.com, reed@chromium.org

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13448 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 10:06:42 +00:00
skia.committer@gmail.com
02d6f54616 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13447 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 03:02:05 +00:00
commit-bot@chromium.org
ca21a00c73 SkWriter32: throw in the SkTDArray towel.
I think it's looking more clear we don't have a clean way to use SkTDArray in
SkWriter32.  We can't give SkWriter32 meaningful control over SkTDArray's
reallocation without making moot SkTDArray's raison d'etre.

Let's just use an SkAutoTMalloc<uint8_t> instead.  It wants SkWriter32 to
control it.  Also, it's lower overhead: SkAutoTMalloc<uint8_t> is just a smart
poiter: no size or capacity stored.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13436 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 18:35:54 +00:00
commit-bot@chromium.org
c3bd8af6d5 add peekPixels to SkCanvas and SkSurface
fix reference to SkBaseDevice, which was only a problem in no-gpu build

This reverts commit 4fa44a6bf73891b21917fb90d02beef9143bffa3.

R=reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13432 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 17:14:46 +00:00
commit-bot@chromium.org
ea7d08e3bb Add unit test for unbalanced save and restores in pictures.
R=reed@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13430 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 16:00:51 +00:00
commit-bot@chromium.org
bda591c739 Revert of add peekPixels to SkCanvas and SkSurface (https://codereview.chromium.org/161733002/)
Reason for revert:
compile issues with gm/xfermodes3

Original issue's description:
> add peekPixels to SkCanvas and SkSurface
>
> clone of https://codereview.chromium.org/159723006/
>
> Committed: https://code.google.com/p/skia/source/detail?r=13427

R=jvanverth@google.com
NOTREECHECKS=true
NOTRY=true

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13428 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 15:29:03 +00:00
mike@reedtribe.org
b2d93a9122 add peekPixels to SkCanvas and SkSurface
clone of https://codereview.chromium.org/159723006/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13427 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 15:11:11 +00:00
commit-bot@chromium.org
5e1a7f2cc6 Revert of r13379 (Move fLastMoveToIndex from SkPath to SkPathRef - https://codereview.chromium.org/146913002/) due to image quality regression in Chromium. See crbug.com/343123 (Regression - UI issue observed for any "Notification infobars" in Chrome browser)
R=bsalomon@google.com
TBR=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13421 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 17:44:30 +00:00
reed@google.com
8441f0c697 remove width>=0 asserts, as clients rely on this (at least for testing)
git-svn-id: http://skia.googlecode.com/svn/trunk@13419 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 13:21:55 +00:00
skia.committer@gmail.com
877c44956d Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13418 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 03:02:04 +00:00
mike@reedtribe.org
6fe16a3db0 remove unused deviceconfig from SkShader
git-svn-id: http://skia.googlecode.com/svn/trunk@13417 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-12 01:28:30 +00:00
commit-bot@chromium.org
536ac5e20c Templetized SkWriter32 readTAt() & overwriteTAt()
Convert SkWriter32::{read,write}32At() to ::{read,overwrite}TAt<>() to allow
peeking/updating arbitrary records.


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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13416 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 22:38:51 +00:00
commit-bot@chromium.org
14747e58f8 Adding new 'extend' mode to SkPath::addPath
BUG=261727
R=reed@google.com, caryclark@google.com, schenney@chromium.org, robertphillips@google.com

Author: junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13415 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 21:16:29 +00:00
commit-bot@chromium.org
a87b21cd00 Reland SkWriter32 growth change with build fixes.
- SkSWriter32 resets itself with its stack block;
  - Track the full capacity of fInternal (which may be >size after a reset).

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13412 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 18:22:04 +00:00
commit-bot@chromium.org
61e96cd446 SkBitmap now really stores SkImageInfo -- config is just a ruse
BUG=skia:
R=scroggo@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13411 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 18:21:45 +00:00
robertphillips@google.com
e79f320ed6 Revert of r13384 (Stateful PathRenderer implementation)
https://codereview.chromium.org/142543007/



git-svn-id: http://skia.googlecode.com/svn/trunk@13409 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 16:30:21 +00:00
commit-bot@chromium.org
09f0ba7eb3 Revert of Change growth function for SkWriter32 (https://codereview.chromium.org/150663014/)
Reason for revert:
See https://codereview.chromium.org/152703007/.

Original issue's description:
> Change growth function for SkWriter32
>
> Add setCountExact to SkTDArray to allow external control of array growth.
> Use it to allow SkWriter to control the buffer growth pattern.
> Change buffer growth pattern to 1.5n+4096
>
> BUG=skia:2125
>
> Committed: http://code.google.com/p/skia/source/detail?r=13401

R=tomhudson@google.com, reed@google.com, iancottrell@google.com
TBR=iancottrell@google.com, reed@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2125

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13406 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 15:56:57 +00:00
commit-bot@chromium.org
93d5ffda58 Change growth function for SkWriter32
Add setCountExact to SkTDArray to allow external control of array growth.
Use it to allow SkWriter to control the buffer growth pattern.
Change buffer growth pattern to 1.5n+4096

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

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13401 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 15:07:26 +00:00
commit-bot@chromium.org
046f1f6ff4 Cleaner external buffer handling in SkWriter32
This unifies the internal and external buffer handling so that the difference only has to be noticed when growing.
Removing the branches from the common read and write cases gives a significant speedup.

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

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13396 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 10:17:02 +00:00
mike@reedtribe.org
1195a28892 Revert "SkBitmap now really stores SkImageInfo -- config is just a ruse"
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13395 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 03:24:02 +00:00
skia.committer@gmail.com
8ed6443e6c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13393 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 03:02:13 +00:00