Commit Graph

1797 Commits

Author SHA1 Message Date
commit-bot@chromium.org
e2cb12a82a First pass at GPU veto
As a short term solution this CL collects information during the recording process for use in suitableForGpuRasterization.

BUG=366495
R=bsalomon@google.com, reed@google.com, alokp@chromium.org

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14368 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:53:13 +00:00
commit-bot@chromium.org
915b972a81 Reland "Properly set alpha type in webp decode."
Also use the newer setConfig function.

Add a test to confirm that we set the alpha type properly.

Add some images with alpha for testing. (These images are also
beneficial for the compare_unpremul test, which was previously
not meaningful on 100% opaque images.)

All of the added images are in the public domain. They were
taken from https://developers.google.com/speed/webp/gallery2:

yellow_rose:
"Free Stock Photo in High Resolution - Yellow Rose 3 - Flowers"
Image Author: Jon Sullivan
This file is in the public domain.
http://www.public-domain-photos.com/free-stock-photos-4/flowers/yellow-rose-3.jpg

baby_tux:
"baby tux for my user page"
Image Author: Fizyplankton
This file is in the public domain.
http://www.minecraftwiki.net/images/8/85/Fizyplankton.png

NOTRY=true

TBR=halcanary@google.com

BUG=skia:2388

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14360 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 18:55:13 +00:00
commit-bot@chromium.org
76a3b2abd0 Remove support for inheriting the paint color from SkColorShader
BUG=skia:2453
R=reed@google.com, mtklein@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14355 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 16:54:46 +00:00
commit-bot@chromium.org
732bd66ac2 Rearrange SkRecord public API to fit better with cc/resources/picture
BUG=skia:2378
R=reed@google.com, danakj@chromium.org, enne@chromium.org, mtklein@google.com, robertphillips@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14351 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 15:22:55 +00:00
commit-bot@chromium.org
8f831f262f First step in pulling SkPicturePlayback & SkPictureRecord out of SkPicture
This CL begins the process of making SkPicturePlayback & SkPictureRecord independent of SkPicture. It just moves the PathHeap into SkPicture to get a feel for where all this is going to lead.

Some items of note:

SkTimedPicture (debugger/QT) should wind up being just an SkPicturePlayback-derived object.

All the flattening & unflattening should migrate out of SkPicturePlayback and into SkPicture.

SkPicture::initForPlayback should eventually become something just SkPictureRecorder::endRecording calls.

SkPicture is passed into SkPicturePlayback's & SkPictureRecord's constructors. SkPicturePlayback only
holds onto a "const SkPicture*". The SkPicturePlayback:: CreateFromStream & CreateFromBuffer methods pass a non-const
SkPicture* down the call stack.

BUG=skia:2315
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14341 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 22:35:42 +00:00
commit-bot@chromium.org
ea26a0e14f comment out SkDebugf (only needed for local testing)
TBR=mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14322 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 05:35:24 +00:00
commit-bot@chromium.org
88c3e279ab Refactor SkRecord opts, converting playback optimizations where possible.
This adds back two optimizations from SkPicture: drawPosText strength reduction to drawPosTextH, and pointless save-foo-restore blocks are noop'd away.

The small-T optimization in SkRecord gets in the way of implementing replace(), so I removed it.

Just to keep the API focused, I removed the methods on SkRecord that iterate over i for you; it's just as efficient to do it yourself, and all of the interesting code does its own custom iteration.

BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14300 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 16:57:20 +00:00
commit-bot@chromium.org
aec143824c Add asADash entry point into SkPathEffect to allow extracting Dash info from PathEffects
BUG=skia:
R=bsalomon@google.com, reed@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14297 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 15:21:18 +00:00
commit-bot@chromium.org
2c4e75cc3c Remove offset to SkMallocPixelRef::NewWithData - use SkData::NewSubset instead.
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14289 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 21:08:14 +00:00
commit-bot@chromium.org
855e88edfa Fixes for SkPictureShader.
Update comment in header to make it more clear that the picture
should be unaltered after creating the shader. We want our shaders
to be immutable, and this supports that.

Make the factory return NULL if the shader would have never drawn
anyway i.e. for a null picture or picture with no width/height.

Addresses comments I brought up in
https://codereview.chromium.org/221923007/#msg16.

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14288 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 19:33:12 +00:00
commit-bot@chromium.org
ad8ce572f6 anticipate more optimizations by renaming some files and methods
also, call the new SkRecordOptimize in bench_playback

BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14277 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 15:03:36 +00:00
reed@google.com
33a94e2ba7 remove unused fOverflowed from SkClampRange
TBR=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14260 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 19:36:22 +00:00
robertphillips@google.com
770963f23f Staging for cleanup of SkPicture-related headers
https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 18:04:41 +00:00
commit-bot@chromium.org
091a594dbc Reduce internal explicit SaveFlags usage.
Most of these are either redundant/defaults or (hopefully)
unnecessarily specific.

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14253 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 14:19:31 +00:00
skia.committer@gmail.com
60bd7519a9 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14252 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 03:03:54 +00:00
commit-bot@chromium.org
5fb2ce38b3 Staged removal of SkPicture-derived classes
This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

The only interesting bits are in SkPicture* and Sk*Picture.*

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:35:06 +00:00
reed@google.com
273a00d14f fix expected size in 32bit builds
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14240 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 16:14:26 +00:00
commit-bot@chromium.org
cc277b729b Orphan ProcXfermode, with an eye towards removing it
BUG=skia:
R=scroggo@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14238 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 15:19:32 +00:00
commit-bot@chromium.org
efaf53ba24 remove unused tests to fix new clang build
R=mtklein@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14237 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 15:18:21 +00:00
skia.committer@gmail.com
667b98d947 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14234 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 03:05:10 +00:00
commit-bot@chromium.org
45d86e7072 always store bitfields along with dirty in FlatteningTraits
This allows us to simplify lots of setters in SkPaint, which in the non-android case, could now be just assignments (and therefore inlineable).

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14229 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 20:48:10 +00:00
commit-bot@chromium.org
39426e2bcc read/write function_ptrs as just void*, and not as 'array of bytes'
BUG=skia:
R=mtklein@google.com, bungeman@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14224 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:24:08 +00:00
commit-bot@chromium.org
d393b17cf3 Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API
This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

BUG=skia:2315
R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:02:10 +00:00
commit-bot@chromium.org
85faf50875 remove legacy filter-flags, and store FilterLevel directly
BUG=skia:
R=robertphillips@google.com, humper@google.com, jvanverth@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14217 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 12:58:02 +00:00
commit-bot@chromium.org
12a0412a5d initialize bounds in this test
BUG=skia:
R=bungeman@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14204 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 18:00:57 +00:00
commit-bot@chromium.org
73cb15351f Make sure SkDrawLooper objects can only be allocated on the heap.
Make constructors of SkLayerDrawLooper and SkBlurDrawLooper non-public.
Remove addLayer* methods from SkLayerDrawLooper. SkLayerDrawLooper::Builder is
used to create new objects.
Provide factory method for creating SkBlurDrawLooper.

BUG=2141
R=scroggo@google.com, reed@google.com, djsollen@google.com

Author: dominikg@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14200 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 15:48:36 +00:00
commit-bot@chromium.org
653d51867c SkRecord bug fixes
Optional arguments to SkCanvas calls leaked refs (but not memory) because we
didn't destruct the optional objects (really, just SkPaint: other optional args
are all POD).  This adds Optional and PODArray, where Optional makes sure to
call the destructor.

I overlooked that SkPictureRecord really does call paint.computeFastBounds().
Do the same in SkRecordDraw.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14197 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 14:27:14 +00:00
skia.committer@gmail.com
a1ed7aec95 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14196 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-15 03:04:18 +00:00
commit-bot@chromium.org
4431e7757c Mike R: please sanity check SkPostConfig.h
Mike K: please sanity check Test.cpp and skia_test.cpp

Feel free to look at the rest, but I don't expect any in depth review of path ops innards.

Path Ops first iteration used QuickSort to order segments radiating from an intersection to compute the winding rule.

This revision uses a circular sort instead. Breaking out the circular sort into its own long-lived structure (SkOpAngle) allows doing less work and provides a home for caching additional sorting data.

The circle sort is more stable than the former sort, has a robust ordering and fewer exceptions. It finds unsortable ordering less often. It is less reliant on the initial curve  tangent, using convex hulls instead whenever it can.

Additional debug validation makes sure that the computed structures are self-consistent. A new visualization tool helps verify that the angle ordering is correct.

The 70+M tests pass with this change on Windows, Mac, Linux 32 and Linux 64 in debug and release.

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

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-14 17:08:59 +00:00
robertphillips@google.com
84b18c7e3e split SkPictureRecorder out of SkPicture
https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
commit-bot@chromium.org
f7efa502d6 Implement intra-frame cacheing in image filters.
When image filters are processed within Skia, they simply do
a blind recursion. This has the side-effect of turning the
DAG into a tree. I.e., nodes visited more than once during
the traversal will be processed more than once.

This change implements a very simple cacheing scheme: a
cache is created before traversing the DAG, and handed
into the processing traversal. Before recursing into a child
in SkImageFilter::filterImage(), the cache is checked for a
hit, and early-out is performed. Otherwise, the node is
processed, and its result bitmap and location (offset) are
cached, but only if it contains two or more children and
thus will be visited again during the traversal.

Currently, the child count is approximated with the
refcount. This is good enough in most cases (and exactly
correct for the Chrome use case). We could add an exact
child count to the image filter, but this will require
violating the immutability of image filters slightly in
order to bump the child count as nodes are connected. I
leave it up to the reviewer to decide which is better.

R=reed@google.com

Author: senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14160 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:57:00 +00:00
commit-bot@chromium.org
cae54f1f21 remove picture-backed surfaces
BUG=skia:
R=robertphillips@google.com, mtklein@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14159 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:34:35 +00:00
commit-bot@chromium.org
c4b21e6c03 Mark our territory with (C).
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14158 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 18:33:31 +00:00
commit-bot@chromium.org
28fcae2ec7 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
Want to reland the original CL.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, bensong@google.com
TBR=bensong@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14156 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 17:15:40 +00:00
commit-bot@chromium.org
96edc24598 Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
Chrome's side of define changes not easy to figure out quickly. Reverting this for DEPS roll for now.

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14149 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-11 13:47:30 +00:00
commit-bot@chromium.org
18fd2b923a Add a focused public API for src/record.
BUG=skia:2378
R=reed@google.com, robertphillips@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14146 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 23:30:59 +00:00
commit-bot@chromium.org
d923288e50 Revert of Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/234243002/)
Reason for revert:
fixes on the chrome side are landing (brettw), keep fingers crossed.

Original issue's description:
> Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
>
> Reason for revert:
> breaking the Chrome deps roll.
> http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio
>
> Original issue's description:
> > Rename kPMColor_SkColorType to kN32_SkColorType.
> >
> > The new name better represents what this flag means.
> >
> > BUG=skia:2384
> >
> > Committed: http://code.google.com/p/skia/source/detail?r=14117
>
> TBR=reed@google.com,scroggo@google.com
> NOTREECHECKS=true
> NOTRY=true
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14144

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14145 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:49:20 +00:00
commit-bot@chromium.org
757ebd20ef Revert of Rename kPMColor_SkColorType to kN32_SkColorType. (https://codereview.chromium.org/227433009/)
Reason for revert:
breaking the Chrome deps roll.
http://build.chromium.org/p/chromium.linux/builders/Linux%20GN%20%28dbg%29/builds/839/steps/compile/logs/stdio

Original issue's description:
> Rename kPMColor_SkColorType to kN32_SkColorType.
>
> The new name better represents what this flag means.
>
> BUG=skia:2384
>
> Committed: http://code.google.com/p/skia/source/detail?r=14117

R=reed@google.com, scroggo@google.com
TBR=reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2384

Author: bensong@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14144 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 22:36:34 +00:00
commit-bot@chromium.org
55c9b4e9f6 Cast int to float.
Get rid of warning->error.

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14140 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 21:09:33 +00:00
commit-bot@chromium.org
6573ce70e6 Create SkLayerRasterizer w/o destroying Builder.
Add a new method to SkLayerRasterizer::Builder that creates a new
SkLayerRasterizer without destroying the Builder. Necessary to
continue to support Android's API.

Also fix a bug where creating a Builder and never calling
detachRasterizer results in not calling the destructor for any SkPaints
in the Builder.

Add tests.

BUG=b/13729784
R=reed@google.com, dominikg@chromium.org

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14139 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 20:42:53 +00:00
commit-bot@chromium.org
ff2de7cb94 SkRecordDraw: don't bother clipping an empty clip down further
BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com, fmalita@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14126 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-10 02:26:33 +00:00
commit-bot@chromium.org
d9ce2be6b2 SkRecordDraw: skip draw ops when the clip is empty
- Adds tests for SkRecordDraw's two main features: cull- and clip- based skipping.
   - Adds full SkCanvas semantic mode to SkRecorder, so it can be used as a target for SkRecordDraw.

BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14124 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 23:30:28 +00:00
commit-bot@chromium.org
149e9a107c Rename kPMColor_SkColorType to kN32_SkColorType.
The new name better represents what this flag means.

BUG=skia:2384
R=reed@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14117 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 20:45:29 +00:00
skia.committer@gmail.com
e1d9443758 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14102 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-09 03:04:11 +00:00
commit-bot@chromium.org
506db0b7d2 SkRecord: make culling work if SkRecordAnnotateCullingPairs is called.
- Allow stateful functors; allow visit()/mutate() at a given index; add count().
  - Annotate cull push/pop pairs on the PushCull records.  (tested)
  - Use those annotations to skip ahead in SkRecordDraw.   (not yet tested beyond dm --skr)
  - Make SkRecordDraw a function, move its implementation to a .cpp.

BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14101 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 23:31:35 +00:00
commit-bot@chromium.org
9ffa52d98f More SkRecord TODOs:
- add basic test for SkRecorder
  - rejigger GYPs so that the include dir comes along with the dependency

BUG=skia:2378

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14100 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 21:01:17 +00:00
commit-bot@chromium.org
b73696262c More SkRecord TODOs:
- add basic test for SkRecorder
  - rejigger GYPs so that the include dir comes along with the dependency

BUG=skia:2378
R=fmalita@chromium.org, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14099 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 20:17:26 +00:00
commit-bot@chromium.org
066a28d2c1 Start on some unwritten SkRecord TODOs:
- add SK_OVERRIDE for SkCanvas methods in SkRecorder
  - start on unit tests, here just for SkRecord itself

BUG=skia:2378
R=fmalita@google.com, mtklein@google.com, fmalita@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14097 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 17:31:08 +00:00
reed@google.com
43c27586e8 WIP -- SkFont
BUG=skia:
R=bungeman@google.com, fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14090 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-08 15:04:29 +00:00
commit-bot@chromium.org
2b4e370a2f Convert SkPicture's generation ID to a unique ID
This CL addresses linger code review comments on r14037 (Add generation ID to SkPicture https://codereview.chromium.org/222683002/)

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14079 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 18:26:22 +00:00
commit-bot@chromium.org
cf2f00872c SkDiscardableMemoryPool to abstract class
Motivation - we want to keep our public headers small.

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

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14063 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-04 16:43:38 +00:00
commit-bot@chromium.org
d591b7513f Revert of Properly set alpha type in webp decode. (https://codereview.chromium.org/223893002/)
Reason for revert:
Breaks ImageDecoding tests on several platforms.

Original issue's description:
> Properly set alpha type in webp decode.
>
> Also use the newer setConfig function.
>
> Add a test to confirm that we set the alpha type properly.
>
> Add some images with alpha for testing. (These images are also beneficial for the compare_unpremul test, which was previously not meaningful on 100% opaque images.)
>
> All of the added images are in the public domain. They were taken from https://developers.google.com/speed/webp/gallery2:
>
> yellow_rose:
> "Free Stock Photo in High Resolution - Yellow Rose 3 - Flowers"
> Image Author: Jon Sullivan
> This file is in the public domain.
> http://www.public-domain-photos.com/free-stock-photos-4/flowers/yellow-rose-3.jpg
>
> baby_tux:
> "baby tux for my user page"
> Image Author: Fizyplankton
> This file is in the public domain.
> http://www.minecraftwiki.net/images/8/85/Fizyplankton.png
>
> NOTRY=true
>
> Committed: http://code.google.com/p/skia/source/detail?r=14054

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14055 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 21:47:15 +00:00
commit-bot@chromium.org
a455965d92 Properly set alpha type in webp decode.
Also use the newer setConfig function.

Add a test to confirm that we set the alpha type properly.

Add some images with alpha for testing. (These images are also beneficial for the compare_unpremul test, which was previously not meaningful on 100% opaque images.)

All of the added images are in the public domain. They were taken from https://developers.google.com/speed/webp/gallery2:

yellow_rose:
"Free Stock Photo in High Resolution - Yellow Rose 3 - Flowers"
Image Author: Jon Sullivan
This file is in the public domain.
http://www.public-domain-photos.com/free-stock-photos-4/flowers/yellow-rose-3.jpg

baby_tux:
"baby tux for my user page"
Image Author: Fizyplankton
This file is in the public domain.
http://www.minecraftwiki.net/images/8/85/Fizyplankton.png

NOTRY=true
R=halcanary@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14054 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 20:55:39 +00:00
skia.committer@gmail.com
a9157727f7 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@14039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 03:04:26 +00:00
robertphillips@google.com
d5500886a2 Add generation ID to SkPicture
https://codereview.chromium.org/222683002/



git-svn-id: http://skia.googlecode.com/svn/trunk@14037 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 23:51:13 +00:00
senorblanco@chromium.org
d5424a425b Fix matrix adjustment passed to filter processing.
When adjusting the CTM for filter use, we were subtracting off the
destination coordinates of the drawDevice() or drawSprite(). This is
not quite correct: we should subtract off the coordinates relative to
the device origin instead. This occurs when one filtered saveLayer() is
drawn inside another saveLayer(), both with non-zero origin.

This fixes layout test svg/batik/text/smallFonts.svg in Blink, and is
exercised by the provided unit test.

BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14029 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 19:20:05 +00:00
commit-bot@chromium.org
55bd940446 SkTDynamicHash: pick up GetKey(), Hash() from T by default.
This also has a somewhat obscure technical benefit: it removes the
requirement that GetKey() and Hash() must be functions with external
linkage, which is required when passing a function pointer to a
template.  A future CL that's run into this problem and the obvious
simplification are about 50/50 why I'm sending this CL.

BUG=skia:
DIFFBASE= https://codereview.chromium.org/222343002/
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14028 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 19:17:00 +00:00
commit-bot@chromium.org
158f64626f SkTDynamicHash: remove need for Equals(const T&, const Key&) param.
All implementations are relying on bool operator==(const Key&, const Key&)
anyway, which makes total sense, so just make that required.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14027 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 17:03:09 +00:00
senorblanco@chromium.org
ee845ae494 Fix SkXfermodeImageFilter when an input is cropped out.
If one of inputs to SkXfermodeImageFilter draws nothing, either due to
it being cropped out upstream, or within the filter itself, the filter
should still draw the other input, since otherwise the result will be incorrect.

For the GPU path, since we can't detect this case in
canFilterImageGPU() without recursing, we'll just drop to
the generic path if either input is empty, since we can't use the effect in that case anyway.

While we're at it, let's drop to the generic path if the
xfermode can't be expressed as an effect, since the code
here was doing a 2-pass render in that case anyway, which
is equivalent to what the (xfermode == NULL) case was doing
anyway.

R=bsalomon@google.com, sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14016 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 19:15:23 +00:00
commit-bot@chromium.org
35c03fbf10 Remove scaleToFit from DashPathEffect
BUG=skia:
R=reed@google.com, bsalomon@google.com, scroggo@google.com

Author: egdaniel@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13999 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-31 18:52:51 +00:00
commit-bot@chromium.org
0e9e6a3313 Roll back tests/TileGridTest.cpp back to where ASAN was happy.
Revert "Change tilegrid test to test it directly, rather than through SkPicture"
This reverts commit 7ae3bc7ffb.

Revert "Fix result order reliance"
This reverts commit be4825c873.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13981 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 17:57:14 +00:00
commit-bot@chromium.org
dad009be4a Making SkDeferredCanvas::silentFlush trigger a skippedPendingDrawCommands callback
The bug was preventing Canvas2DLayerBridge from properly tracking changes
in memory consumption that were triggered by calls to silentFlush.

BUG=344666
TEST=DeferredCanvas unit test
R=senorblanco@google.com, senorblanco@chromium.org

Author: junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13965 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-27 15:48:52 +00:00
reed@google.com
7111d463ce Revert "Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)"
This reverts commit 9a90bd16dc6756395c422adf0f24560d033ed9ea.

BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13939 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 16:20:24 +00:00
commit-bot@chromium.org
231f6b81c2 Revert of implement readPixels and writePixels natively, w/o using the (deprecated) (https://codereview.chromium.org/199733016/)
Reason for revert:
Android bots segfaulting in tests.

Original issue's description:
> implement readPixels and writePixels natively, w/o using the (deprecated)
> SkCanvas::Config8888 enum.
>
> Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."
>
> This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.
>
> Needs chrome to remove the READPIXELS guard from skia's .gyp
>
> Committed: https://code.google.com/p/skia/source/detail?r=13931

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13932 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 13:38:44 +00:00
reed@google.com
1121170477 implement readPixels and writePixels natively, w/o using the (deprecated)
SkCanvas::Config8888 enum.

Revert "Revert "hide Config8888 entirely". Broke a bunch of builds."

This reverts commit 763277ba157fef0f651004bb98a189e9f1ac730b.

Needs chrome to remove the READPIXELS guard from skia's .gyp

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13931 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-25 12:00:30 +00:00
commit-bot@chromium.org
e8807f49ed 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

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

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@13927 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 23:03:11 +00:00
senorblanco@chromium.org
28ae55de3c Fix Mac Debug clang build.
TBR=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13925 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 21:32:28 +00:00
senorblanco@chromium.org
09843fd5c1 Fix for crash on large image blur sigma values.
This was crashing on the GPU path, due to a failed texture allocation.
The belt-and-suspenders fix is to:

1) Limit the GPU path to only allocate up to maxTextureSize.
2) Limit both the raster and GPU paths to reasonable blur sizes (box blur
   kernel size of 1000, resulting in a sigma limit of 532).

R=bsalomon@google.com
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13923 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 20:50:59 +00:00
commit-bot@chromium.org
61c9b835d1 Manual memset to work around bogus compiler warning bug.
BUG=skia:2215
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13908 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-24 15:52:33 +00:00
bungeman@google.com
34ce63ca6b Fix incorrect assert in r13895.
git-svn-id: http://skia.googlecode.com/svn/trunk@13896 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 20:14:05 +00:00
bungeman@google.com
95ebd17cf4 Add removeShuffle to SkTArray and add SkTArray tests.
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13895 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 19:39:02 +00:00
skia.committer@gmail.com
99e5b524ce Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13889 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 03:02:42 +00:00
commit-bot@chromium.org
9206da6c9e Revert of SkPaint: eliminate some dead bytes in 64-bit build. (https://codereview.chromium.org/203203003/)
Reason for revert:
Huh, some Android tests are still failing despite the fix.  IntelRhB, Xoom... that's weird.

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
>
> Committed: http://code.google.com/p/skia/source/detail?r=13887

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13888 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 01:40:07 +00:00
commit-bot@chromium.org
f48182b161 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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13887 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 23:02:35 +00:00
bsalomon@google.com
180e36abf6 Revert "hide Config8888 entirely". Broke a bunch of builds.
This reverts commit fa11c49cc11a6c9ebafbf9c59e118917f9b3cc56.

Revert "Sanitizing source files in Housekeeper-Nightly" to make the above revert clean.

This reverts commit b5787422c8eb2a27a9576777597fd9e06784acdb.

TBR=reed@google.com
TBR=jcgregorio@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13872 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 13:26:45 +00:00
skia.committer@gmail.com
be41d38f1c Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13871 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-20 03:02:31 +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
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
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
commit-bot@chromium.org
af5346a39c Add reg test for http://crbug.com/348821
BUG=348821
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13852 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 17:38:34 +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
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
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
commit-bot@chromium.org
be4825c873 Fix result order reliance
The old tests presumed result order in a way was safe because SkPicture was sorting the paint calls.
This fixes the tests to not check result ordering, just presence

BUG=skia:
R=robertphillips@google.com

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13828 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 12:14:48 +00:00
commit-bot@chromium.org
7ae3bc7ffb Change tilegrid test to test it directly, rather than through SkPicture
This is necessary because it makes assumptions that picture will draw all the rects that match the grids, which may not hold if picture decides to improve the accuracy of the results.

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

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13827 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-17 10:51:44 +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
commit-bot@chromium.org
1e7ee999d4 fix a leak
R=sugoi@chromium.org, bungeman@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13814 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-14 21:22:22 +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
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
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
e5eee51211 fix memory leak introduced in 9e5f85e8
R=sugoi@chromium.org, robertphillips@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13786 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-13 16:18: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
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
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
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
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
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
8eb20cc112 remove code disabled from writePixels change
These tests were asserting that particular, non-documented, optimizations were taking place
in the deferreddevice. Theese particualr short-cuts are no longer possible given the change
to canvas' writepixels to always require a raw-pointer.

R=junov@google.com
TBR=junov@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13703 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-07 14:52:22 +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
5bee0543f0 Give PictureTest more verbose error messages.
Motivation: On an odd build system I'm testing, we're triggering these
errors.  More verbose test output will help me diagnose the errors.

R=robertphillips@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13678 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 20:59:45 +00:00
commit-bot@chromium.org
0b98f67b90 Fix FontMgrTest to allow for unnamed fonts.
Motivation: we are testing on a system without fonts and are falling
back on SkTypeface_Empty.

R=bungeman@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13675 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 19:41:10 +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
commit-bot@chromium.org
8ef51b975c remove deprecated use of bitmap config from tests
BUG=skia:
R=halcanary@google.com, reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13666 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 13:43:15 +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
085a6e476b Rename test files to end with Test.cpp.
DM builds all of {bench,gm,test}/*.cpp.  A Windows build warned us that we were
trying to link typeface.obj twice.  This must have something to do with there
existing gm/typeface.cpp and tests/Typeface.cpp.  To be safe, make sure tests
have a Test.cpp suffix to disambiguate.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13644 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-03 19:23:28 +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
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
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
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
skia.committer@gmail.com
4472301607 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13604 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-27 03:02:34 +00:00
commit-bot@chromium.org
40ac5e52b8 BlendTest: implicit casts -> explicit casts
BUG=skia:

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13602 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 21:40:07 +00:00
commit-bot@chromium.org
573f8485a6 BlendTest: implicit casts -> explicit casts
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13595 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 17:51:00 +00:00
commit-bot@chromium.org
0dc5bd149a Let DM run unit tests.
- refactor GYPs and a few flags
  - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
  - add a few more UI features to make DM more like tests

I believe this makes the program 'tests' obsolete.

It should be somewhat faster to run the two sets together than running the old binaries serially:
  - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
  - together: 27s (6m21s CPU)

Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.

Tested: out/Debug/tests && out/Debug/dm && echo ok
BUG=skia:

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

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13592 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-26 16:31:22 +00:00
commit-bot@chromium.org
7f428a941b Check in today's exhaustive blend experiments.
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13588 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 21:31:03 +00:00
commit-bot@chromium.org
79e13260cf Revert of Let DM run unit tests. (https://codereview.chromium.org/178273002/)
Reason for revert:
broke tests

Original issue's description:
> Let DM run unit tests.
>   - refactor GYPs and a few flags
>   - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
>   - add a few more UI features to make DM more like tests
>
> I believe this makes the program 'tests' obsolete.
>
> It should be somewhat faster to run the two sets together than running the old binaries serially:
>   - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
>   - together: 27s (6m21s CPU)
>
> Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.
>
> Tested: out/Debug/tests && out/Debug/dm && echo ok
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=13586

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13587 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 20:02:09 +00:00
commit-bot@chromium.org
6bd250a2a3 Let DM run unit tests.
- refactor GYPs and a few flags
  - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
  - add a few more UI features to make DM more like tests

I believe this makes the program 'tests' obsolete.

It should be somewhat faster to run the two sets together than running the old binaries serially:
  - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
  - together: 27s (6m21s CPU)

Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.

Tested: out/Debug/tests && out/Debug/dm && echo ok
BUG=skia:
R=reed@google.com, bsalomon@google.com, mtklein@google.com, tfarina@chromium.org

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13586 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-25 19:32:15 +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
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
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
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
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
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
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
skia.committer@gmail.com
c05d2859e1 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13508 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-20 03:01:56 +00:00
commit-bot@chromium.org
92da60cd63 This CL improves saveLayer handling in the SkMatrixClipStateMgr by:
1) no longer storing the clip skip offsets in the stack (since saveLayers can force multiple clip states to be open at one time)

2) writing out only the clips that are relative to the saveLayer's clip state

3) updates the testing harness to accept a save/restore bracketing a saveLayer/restore (since clips have to be applied to the saveLayer's result upon restore)

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13497 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-19 15:11:23 +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
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
1cb6d1a1fd Revert changes which were breaking the build.
Revert "Improve saveLayer handling in SkMatrixClipStateMgr"

This reverts commit f7d08ed626.

Revert "Compile fix for r13488 (Improve saveLayer handling in SkMatrixClipStateMgr)"

This reverts commit a48822f3eb.

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=True

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13490 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 18:13:34 +00:00
robertphillips@google.com
f7d08ed626 Improve saveLayer handling in SkMatrixClipStateMgr
https://codereview.chromium.org/164823003/



git-svn-id: http://skia.googlecode.com/svn/trunk@13488 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 17:28:52 +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
commit-bot@chromium.org
186c0ccac2 staticMethod -> StaticMethod
BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13485 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-18 16:15:05 +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
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
robertphillips@google.com
7fac718702 Fix valgrind suppressions (again)
https://codereview.chromium.org/166193003/



git-svn-id: http://skia.googlecode.com/svn/trunk@13449 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-14 14:08:05 +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
fa9e5fa42a replace setConfig+allocPixels with alloc-or-install-pixels
BUG=skia:
R=scroggo@google.com, halcanary@google.com, reed@google.com

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13442 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 22:00:04 +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
mike@reedtribe.org
deee496cd3 replace setConfig+allocPixels with single call
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13426 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 14:41:43 +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
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
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
dd31ac470b Fix valgrind suppressions
https://codereview.chromium.org/158493004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13403 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 15:23:21 +00:00
robertphillips@google.com
105a4a584c Collapse matrix & clip stack in PictureRecord
https://codereview.chromium.org/137093004/



git-svn-id: http://skia.googlecode.com/svn/trunk@13402 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 15:10:40 +00:00
commit-bot@chromium.org
afe38b16f0 Fix broken debug build
BUG=skia:
R=tomhudson@google.com

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13397 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 11:18:12 +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
mike@reedtribe.org
169a0ed50a SkBitmap now really stores SkImageInfo -- config is just a ruse
(edited) clone of https://codereview.chromium.org/159173004/

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13391 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 02:20:17 +00:00
commit-bot@chromium.org
7e90e8dbb9 fix minor error between kStroke_PathAsRect and kFill_PathAsRect in SkPath::asRect
R=caryclark@google.com, reed@google.com

Author: yunchao.he@intel.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13390 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-11 01:38:30 +00:00
commit-bot@chromium.org
6d254ee4ac Use SkToBool to fix a warning.
NOTRY=true
TBR=djsollen@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13389 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 22:46:08 +00:00
commit-bot@chromium.org
74b88b70b8 Allow buffered stream to work with an offset.
If the stream being buffered is buffered from somewhere other than
the start, the SkFrontBufferedStream needs to take that into account
when reporting its length.

R=djsollen@google.com, bungeman@google.com, reed@google.com

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13388 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 22:03:21 +00:00
commit-bot@chromium.org
50b393a768 SkPictureRecord: silently do nothing for non-drawable SkBitmaps.
BUG=skia:2135
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13386 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 18:29:10 +00:00
commit-bot@chromium.org
5e0995e4b3 Revert of Revert "Serialization of SkPictureImageFilter" (https://codereview.chromium.org/153583007/)
Reason for revert:
New SKPs with version20 are in Google Storage due to http://108.170.219.160:10117/builders/Housekeeper-Nightly-RecreateSKPs/builds/22

Original issue's description:
> Revert "Serialization of SkPictureImageFilter"
>
> This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.
>
> Revert "Sanitizing source files in Housekeeper-Nightly"
>
> This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.
>
> TBR=robertphillips@google.com,sugoi@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13356

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

Author: rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13357 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 12:20:04 +00:00
fmalita@google.com
7713c38dc0 Revert "Serialization of SkPictureImageFilter"
This reverts commit 227321b30106e57942929eb96fa5bc22544f6c9e.

Revert "Sanitizing source files in Housekeeper-Nightly"

This reverts commit baf28584b7636c01355f8d8d972e06aa7fb66d77.

TBR=robertphillips@google.com,sugoi@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13356 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 05:55:39 +00:00
skia.committer@gmail.com
c5acc6c827 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13355 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-07 03:02:05 +00:00
robertphillips@google.com
940e3bac13 Added newline at end of MatrixClipCollapseTest.cpp
git-svn-id: http://skia.googlecode.com/svn/trunk@13342 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 14:57:20 +00:00
robertphillips@google.com
1f71846e5c Add test harness for matrix/clip state collapsing
https://codereview.chromium.org/133003006/



git-svn-id: http://skia.googlecode.com/svn/trunk@13340 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 14:22:47 +00:00
reed@google.com
4f7c61583b add ways to peer into an image to get its pixels
BUG=skia:
R=bsalomon@google.com, scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13339 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 14:11:56 +00:00
reed@google.com
999da9c5e4 fix refcounting in SkImage::NewRasterData
git-svn-id: http://skia.googlecode.com/svn/trunk@13338 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-06 13:43:07 +00:00
senorblanco@chromium.org
0937335e6b Mid-air collision: fix constness for onFilterImage in new test.
TBR=fmalita
BUG=skia:

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13332 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 23:04:28 +00:00
senorblanco@chromium.org
5251e2b91a Fix a problem with scaled filters in tiled SkPicture playback.
The matrix used during filter application should be up-to-date, so that
the filter parameters can be scaled by the CTM (e.g., for hiDPI).
However, tiled playback defers setting of the matrix until after the
restore() call which draws the filter, which is too late. Moving the
setMatrix() ahead of the restore() sequence fixes the problem.

TEST=ImageFilterMatrixTest
R=junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13331 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 22:36:31 +00:00
commit-bot@chromium.org
8a13588b6f Stop discarding in frag shader when coverage is zero and stencil writes are enabled
This fixes the corruption in the NVPR images here:
http://108.170.217.252:10117/builders/Test-Win8-ShuttleA-GTX660-x86-Debug/builds/251/steps/CompareGMs/logs/stdio

caused by:

https://skia.googlesource.com/skia.git/+/65ee5f424cb4dabd453268902c00086605d77c1d

The stencil path step writes inside and outside the clip when the clip is implemented by
a coverage effect. The path cover step then doesn't write outside of the clip because the FS
discards. This leaves stencil values outside of the clip non-zero which messed up subsequent
path or clip draws to those samples.

R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13320 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 16:29:12 +00:00
reed@google.com
76f10a3bd9 remove SkCanvas::createCompatibleDevice, and add SkCanvas::newSurface
BUG=skia:
R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13319 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 15:32:21 +00:00
skia.committer@gmail.com
1dab403e44 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13316 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-05 03:01:48 +00:00
commit-bot@chromium.org
65ee5f424c Use GrConvexPolyEffect when clip is a single convex polygon
BUG=skia:2051

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

R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13306 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 17:49:48 +00:00
reed@google.com
d52a99703b fix int->scalar warning
git-svn-id: http://skia.googlecode.com/svn/trunk@13305 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 16:14:58 +00:00
reed@google.com
28183b4043 remove (unused by chrome) SkDeferredCanvas(device) factory signature
BUG=skia:
R=junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13302 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 15:34:10 +00:00
senorblanco@chromium.org
f4e1a7614d More bot whack-a-mole: fix Win build.
BUG=skia:
TBR=fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13295 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-04 00:28:46 +00:00
fmalita@google.com
ec7c35d015 Speculative build fix after r13292.
TBR=senorblanco@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13294 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 23:25:32 +00:00
senorblanco@chromium.org
58d1466c77 Fix skia_gpu=0 build.
BUG=skia:
TBR=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13293 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 22:36:39 +00:00
senorblanco@chromium.org
aba651c3f1 Fix image filter crop offsets for GPU path.
This is the GPU-side version of
https://codereview.chromium.org/112803004/.
Also factored the crop offset unit test into a function, so we can
call it with both CPU & GPU devices.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13292 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 22:22:16 +00:00
commit-bot@chromium.org
c22d139808 Initial QuadTree implementation
In an effort to find a faster bounding box hierarchy than the R-Tree, a QuadTree has been implemented here.
For now, the QuadTree construction is generally faster than the R-Tree and the queries are a bit slower, so overall, SKP local tests showed QuadTree performance similar to the R-Tree performance.

Tests and bench are included in this cl.

At this point, I'd like to be able to commit this in order to more easily use the bots to test multiple configurations and a larger number of SKPs. The R-Tree BBH is still used by default so this change shouldn't affect chromium.

BUG=skia:
R=junov@chromium.org, junov@google.com, senorblanco@google.com, senorblanco@chromium.org, reed@google.com, sugoi@google.com, fmalita@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13282 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-03 18:08:33 +00:00
robertphillips@google.com
7017288811 Fix valgrind issue in SkBase64Test.cpp
https://codereview.chromium.org/152153002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13276 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-01 15:45:23 +00:00
tfarina@chromium.org
bbff20855f Split GrUnitTests.cpp into two separate unit tests.
GrUnitTests is too generic. Instead we split this file between the two
APIs being tested there, GrTBSearch and GrBinHashKey.

BUG=None
TEST=tests -m GrTBSearchTest && tests -m GrBinHashKeyTest
R=brian@thesalomons.net, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13273 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 21:48:52 +00:00
commit-bot@chromium.org
e254310a55 add SkCanvas constructor that explicitly creates no_config with dimensions
BUG=skia:
R=scroggo@google.com, halcanary@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13272 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 19:42:58 +00:00
commit-bot@chromium.org
c6d3c444ca Have peek32 return uint32_t& to make it harder to look at more than 4 bytes.
BUG=skia:
R=reed@google.com, robertphillips@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13265 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 16:22:57 +00:00
commit-bot@chromium.org
6169f2b4da initial import of Chrome's trace_event into skia framework
This patch includes a modified version of Chrome's trace_event.h, which provides
tracing macros that can easily integrate into the about://tracing framework.

Currently the macros link to a default implementation of the (narrow) tracing
class SkDefaultEventTracer which does nothing; next step will be to have Chrome
subclass the SkEventTracer with a shim that bolts Skia's trace events to its own,
allowing Skia's trace events to show up in about://tracing.

I've verified that this file builds properly, and when I added a simple scoped
TRACE_EVENT0 to SkCanvas::drawRect, along with some debug prints in the NOP
implementation of tracing, I saw what I expected printed to the screen.

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

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13256 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 00:04:25 +00:00
tfarina@chromium.org
ceddfeb2af Port SkBase64 test to our test driver.
BUG=None
TESTS=tests --match SkBase64Test
R=mtklein@google.com, reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13254 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 22:51:42 +00:00
commit-bot@chromium.org
a2bd2d12ad Set write buffer flags only in SkWriteBuffer and SkFlatController constructors.
This is a baby step toward refactored (and faster in-process) typeface and flattenable factory encoding and decoding.  The sooner SkWriteBuffer knows its flags, the better.

Next steps will be to rearrange Sk{Read,Write}Buffer members into disjoint strategies to handle typefaces and flattenable factories: one for in-process, one for cross-process, one when validating.

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13253 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 22:16:32 +00:00
commit-bot@chromium.org
8b0e8ac5f5 Refactor read and write buffers.
Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer
a step each in the hierarchy.

What used to be this:

SkFlattenableWriteBuffer -> SkOrderedWriteBuffer
SkFlattenableReadBuffer  -> SkOrderedReadBuffer
SkFlattenableReadBuffer  -> SkValidatingReadBuffer

is now

SkWriteBuffer
SkReadBuffer -> SkValidatingReadBuffer

Benefits:
  - code is simpler, names are less wordy
  - the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed
  - write buffers are completely devirtualized, important for record speed

This refactoring was mostly mechanical.  You aren't going to find anything
interesting in files with less than 10 lines changed.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:58:24 +00:00
robertphillips@google.com
5fbccb35eb Suppress new valgrind complaint
https://codereview.chromium.org/144853006/



git-svn-id: http://skia.googlecode.com/svn/trunk@13244 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:51:29 +00:00
commit-bot@chromium.org
5a47b09fe8 Reland "Add --skip_cpu and --skip_gpu options to tests"
NOTRY=true

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

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13237 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 15:30:50 +00:00
tfarina@chromium.org
62c2ce8416 GrRedBlackTree test is GPU specific.
Wrapp the entire file/test in a SK_SUPPORT_GPU.

This should fix the tree breakage.

BUG=None
TEST=tests
TBR=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13234 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 00:28:54 +00:00
tfarina@chromium.org
68f3a3e0b0 Reland "Unwrap GrRedBlackTree unit test and use REPORTER_ASSERT()."
BUG=None
TEST=tests
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13233 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-29 23:56:40 +00:00
commit-bot@chromium.org
11ea96c62a tests: add --veryVerbose / -V
BUG=skia:
R=caryclark@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13226 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-28 21:15:42 +00:00
commit-bot@chromium.org
04bfdc39a7 Revert of Add --skip_cpu and --skip_gpu options to tests (https://codereview.chromium.org/144343004/)
Reason for revert:
Broke tests on Win7 and Mac

Original issue's description:
> Add --skip_cpu and --skip_gpu options to tests
>
> BUG=skia:2074
>
> Committed: http://code.google.com/p/skia/source/detail?r=13223

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

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13224 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-28 20:21:23 +00:00
commit-bot@chromium.org
5683acd909 Add --skip_cpu and --skip_gpu options to tests
BUG=skia:2074
R=djsollen@google.com, mtklein@google.com

Author: borenet@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13223 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-28 20:02:45 +00:00
commit-bot@chromium.org
01260b2dbc Revert of Unwrap GrRedBlackTree unit test and use REPORTER_ASSERT(). (https://codereview.chromium.org/147713002/)
Reason for revert:
broke http://108.170.217.252:10115/builders/Build-Mac10.8-Clang-x86_64-Release/builds/2908/steps/Retry_BuildTests/logs/stdio and other builders:

GrRedBlackTreeTest.cpp:24:36: error: use of undeclared identifier 'xi'


Original issue's description:
> Unwrap GrRedBlackTree unit test and use REPORTER_ASSERT().
>
> This fixes the mtklein's TODO in GrUnitTests.cpp.
>
> BUG=None
> TEST=out/Debug/tests
> R=mtklein@google.com, robertphillips@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=13208

R=mtklein@google.com, robertphillips@google.com, reed@google.com, tfarina@chromium.org
TBR=mtklein@google.com, reed@google.com, robertphillips@google.com, tfarina@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=None

Author: epoger@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13209 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-27 21:54:18 +00:00
tfarina@chromium.org
0fba15125b Unwrap GrRedBlackTree unit test and use REPORTER_ASSERT().
This fixes the mtklein's TODO in GrUnitTests.cpp.

BUG=None
TEST=out/Debug/tests
R=mtklein@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13208 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-27 21:40:14 +00:00
commit-bot@chromium.org
c2abd54eda add alternative to isRect named asRect
This defines yunchao's proposed interface in terms of
an existing implementation.

BUG=skia:
R=reed@google.com, yunchao.he@intel.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13183 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-25 16:54:31 +00:00
commit-bot@chromium.org
709ca75f03 SkOnce: add option to call another cleanup function once at exit.
Use this to clean up empty SkData and SkPathRef.

Current leaks:
  Leaked SkRefCntBase: 40
     Leaked SkFlattenable: 32
         Leaked SkPixelRef: 32
             Leaked SkMallocPixelRef: 32
     Leaked SkFontConfigInterface: 1
     Leaked SkWeakRefCnt: 1
         Leaked SkTypeface: 1
     Leaked SkFontMgr: 1
     Leaked SkDataTable: 3
     Leaked SkImage: 1
         Leaked ???: 1
     Leaked ???: 1

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

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13180 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 22:38:39 +00:00
tfarina@chromium.org
8f6884aab8 Cleanup: Sanitize the order of includes under tests/
Initially this was to make sure Test.h appeared after the Sk*.h includes.

Patch generated by the following command line:

$ ~/chromium/src/tools/sort-headers.py tests/*.cpp

BUG=None
TEST=tests
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13177 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 20:56:26 +00:00
commit-bot@chromium.org
d8ed85101e Turn NVPR on by default (but off in tools).
BUG=skia:2042

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

R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13176 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 20:49:44 +00:00
commit-bot@chromium.org
227c246731 Resolve a few memory leaks in tests.
Purge the global scaled image cache after use in tests.  The cache was
right to hold on to the pixels indefinitely, but this change makes it
easier to run down actual memory leaks.

Add SK_DECLARE_INST_COUNT to several classes.

BUG=skia:
R=reed@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 18:33:07 +00:00
halcanary@google.com
68c74884d0 Revert "Turn NVPR on by default (but off in tools)."
This reverts commit 83d81c96de.

Broke Windows build.  Autorevert didn't work.

TBR=bsalomon@google.com,robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
NOPRESUBMIT=true
BUG=skia:2042

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13169 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 16:04:09 +00:00
commit-bot@chromium.org
83d81c96de Turn NVPR on by default (but off in tools).
BUG=skia:2042
R=robertphillips@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13164 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 14:38:13 +00:00
commit-bot@chromium.org
6dda827913 add leaks flag to show unref'd insts
Leaks are shown optionally instead of always for tests, gm, and bench.
The current display does not show actual leaks necessarily, but
shows global objects that were not deleted when the test ended.
To enable the end-of-run leak display, pass --leaks or -l.

BUG=skia:
R=mtklein@google.com

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13151 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-23 17:21:19 +00:00
commit-bot@chromium.org
fed2ab6483 No deduping dictionaries for matrices and regions.
There's little benefit to deduping matrices and regions: they're infrequently
used, and doubly infrequently reused.  Their use-weighted byte cost is tiny.

There is some downside to deduping matrices and regions.  Even when they're not
used, we prepare dictionaries for deduping them for every picture.  Each of
these dictionaries costs 160 bytes, so two unused dictionaries make a big chunk
of the ~1100 bytes it takes to allocate an SkPictureRecord. (~330 come from
parent class SkCanvas, 768 from SkPictureRecord itself, here reduced to 448).

One side benefit of not deduping these guys is that the change weighs -140 lines of code.

It may go without saying, but this breaks the picture format.

Testing: out/Debug/tests && out/Debug/dm  (which runs all picture modes by default)

BUG=skia:1850
R=reed@google.com, bensong@google.com, robertphillips@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13149 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-23 15:16:05 +00:00
tfarina@chromium.org
58674817a7 Remove unnamed namespace usage from tests/
Skia preference is to use 'static' keyword rather than use unnamed
namespace.

BUG=None
TEST=tests
R=robertphillips@google.com, bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13138 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-21 23:39:22 +00:00
commit-bot@chromium.org
bd58febffb Speed up GrResourceCache add and lookup by using TDynamicHash
Speed up GrResourceCache add and lookup by using TDynamicHash instead
of GrTHashTable. GrTHashTable spends most of its time memmoving the
array elements while sorting after an add. Lookup is not particularly
fast either.

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

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13122 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-17 17:56:21 +00:00
commit-bot@chromium.org
9e90aed5de Rename GrGLBinding->GrGLStandard, no longer a bitfield
BUG=skia:2042
R=jvanverth@google.com

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13108 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-16 16:35:09 +00:00
commit-bot@chromium.org
c665804300 Move SkMessageBus::Get out of header, and retry crrev.com/106563002.
BUG=
R=bsalomon@google.com, kkinnunen@nvidia.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13104 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 23:09:01 +00:00
commit-bot@chromium.org
05ec2233e3 change isRect to return true for 3-sided rectangular paths
BUG=skia:
R=caryclark@google.com, yunchao.he@intel.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13092 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 18:00:57 +00:00
scroggo@google.com
5ccae2c5b1 Reland "Fix genID cloning bugs."
SkBitmap.cpp:
When copyTo calls readPixels, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a
bug where copying an SkBitmap representing the subset of an SkPixelRef
(which implements onReadPixels) would result in the copy sharing the
genID. (Thanks to r6710, this case can only happen using setPixelRef,
so the updated GpuBitmapCopyTest checks for that.)

Move some unnecessary NULL checks to asserts.

When copyTo performs a memcpy, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a bug
where copying an extracted SkBitmap with the same width as its original
SkPixelRef would incorrectly have the same genID.

Add a comment and assert in deepCopyTo, when cloning the genID, since
that case correctly clones it.

BitmapCopyTest.cpp:
Pull redundant work out of the inner loop (setting up the source bitmaps
and testing extractSubset). Create a new inner loop for extractSubset, to
test copying the result to each different config.

Extract a subset that has the same width as the original, to catch the
bug mentioned above.

Remove the reporter assert which checks for the resulting rowbytes.

Add checks to ensure that copying the extracted subset changes the genID.

GpuBitmapCopyTest:
Create an SkBitmap that shares an existing SkPixelRef, but only represents
a subset. This is to test the first call to cloneGenID in SkBitmap::copyTo.
In this case, the genID should NOT be copied, since only a portion of the
SkPixelRef was copied.

Also test deepCopy on this subset.

TestIndividualCopy now takes a parameter stating whether the genID should
change in the copy. It also does a read back using the appropriate subset.
It no longer differentiates between copyTo and deepCopyTo, since that
distinction was only necessary for copying from/to configs other than 8888
(which are no longer being tested), where copyTo did a read back in 8888 and
then drew the result to the desired config (resulting in an imperfect copy).

BUG=skia:1742

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

R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13090 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 16:56:52 +00:00
commit-bot@chromium.org
32678d9a45 use some helper Make functions to initialize SkImageInfo
BUG=
R=halcanary@google.com, scroggo@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13081 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-15 02:38:22 +00:00
commit-bot@chromium.org
e2eac8b2fd Move macros from TestClassDef.h to Test.h
Motivation: those macros don't make any sense without the definitions
in Test.h.

BUG=
R=mtklein@google.com

Author: halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13074 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 21:04:37 +00:00
commit-bot@chromium.org
19382421b9 Convert SkWriter32 to use an SkTDArray for its internal storage.
This reduces the allocation overhead of a null picture (create, beginRecording(), endRecording) from about 18K to about 1.9K.  (There's still lots more to prune.)

SkPictureFlat can exploit the fact that Writer32 is contiguous simplify its memory management.  The Writer32 itself becomes the scratch buffer.

Remove lots and lots of arbitrary magic numbers that were size guesses and minimum allocation sizes.  Keep your eyes open for the big obvious DUH why we save 16K per picture!  (Spoiler alert.  It's because that first save we issue in beginRecording() forces the old SkWriter32 to allocate 16K.)

Tests passing, DM passing.

bench --match writer: ~20% faster
null bench_record: ~30% faster
bench_record on buildbot .skps: ~3-6% slower, ranging 25% faster to 20% slower
bench_pictures on buildbot .skps: ~1-2% faster, ranging 13% faster to 28% slower

BUG=skia:1850
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13073 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 20:51:26 +00:00
skia.committer@gmail.com
2e9a7157ee Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13061 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 07:01:42 +00:00
commit-bot@chromium.org
e13af711d4 Revert of https://codereview.chromium.org/132643007/
Reason for revert: broken tests

TBR=
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13058 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:39:14 +00:00
reed@google.com
f0b56e7448 Revert "Revert of https://codereview.chromium.org/129423002/"
fixed new api references in unit tests

This reverts commit ffc0058e1fbcbd69617e1f41b2dce5b5765ff99e.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13057 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:28:50 +00:00
commit-bot@chromium.org
9b06ba4c91 Revert of https://codereview.chromium.org/129423002/
Reason for revert: broke tests (compile)

R=scroggo@google.com, halcanary@google.com
TBR=halcanary@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13056 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:23:48 +00:00
reed@google.com
dd9ea9262c add SkBitmap::installPixelRef()
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13055 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 20:17:58 +00:00
commit-bot@chromium.org
7a4b9fab28 Allocate memory in SkTDynamicHash on first use.
This eliminates any dynamic allocation for hash tables that are never used.
This helps SkPicture, where some tables (SkPaint) are almost always used, but
some rarely (SkMatrix) or never (SkRegion).

This also removes the (as yet unimportant) ability for the hash table to
shrink.  This makes resizing harder to reason about, so I'd like to leave it
out until we see a need.

BUG=skia:1850
R=tomhudson@chromium.org, reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13051 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 18:28:14 +00:00
reed@google.com
bf0001d047 remove remaining references to Sk64 (obsolete)
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13042 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 14:53:55 +00:00
robertphillips@google.com
0e4ce14e7f Fix for r13038
git-svn-id: http://skia.googlecode.com/svn/trunk@13039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:46:45 +00:00
robertphillips@google.com
56bf6e4bce Pull in Chromium's version of GatherPixelRefs
https://codereview.chromium.org/134473002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13038 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:33:26 +00:00
tfarina@chromium.org
4ee16bfaed Add a DEF_GPUTEST() macro.
This macro is similar to DEF_TEST() and simplifies the process of
setting up a GPU test.

BUG=skia:1952
TEST=tests
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13033 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 22:08:27 +00:00
bungeman@google.com
2dc54c94f0 Remove printfs from FontHostTest when font is not sfnt.
BUG=skia:2009
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13027 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 19:40:56 +00:00
commit-bot@chromium.org
5c6f1d4424 Revert of https://codereview.chromium.org/112113005/
Reason for revert: breaks unit tests

R=mtklein@google.com, bsalomon@google.com, reed@google.com, scroggo@google.com
TBR=bsalomon@google.com, mtklein@google.com, reed@google.com, scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:1742

Author: caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13024 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 18:28:23 +00:00
commit-bot@chromium.org
0f7e3470d6 Revert of https://codereview.chromium.org/106563002/
Reason for revert: There's a threading issue I don't quite understand yet.  Objects are being deleted after we check they're deleted.  Will try again.

R=kkinnunen@nvidia.com, kkinnunen@nvidia.com
TBR=kkinnunen@nvidia.com, kkinnunen@nvidia.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13023 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 17:58:47 +00:00
commit-bot@chromium.org
f2595e4186 Fix genID cloning bugs.
SkBitmap.cpp:
When copyTo calls readPixels, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a
bug where copying an SkBitmap representing the subset of an SkPixelRef
(which implements onReadPixels) would result in the copy sharing the
genID. (Thanks to r6710, this case can only happen using setPixelRef,
so the updated GpuBitmapCopyTest checks for that.)

Move some unnecessary NULL checks to asserts.

When copyTo performs a memcpy, only clone the genID if the resulting
SkPixelRef has the same dimensions as the original. This catches a bug
where copying an extracted SkBitmap with the same width as its original
SkPixelRef would incorrectly have the same genID.

Add a comment and assert in deepCopyTo, when cloning the genID, since
that case correctly clones it.

BitmapCopyTest.cpp:
Pull redundant work out of the inner loop (setting up the source bitmaps
and testing extractSubset). Create a new inner loop for extractSubset, to
test copying the result to each different config.

Extract a subset that has the same width as the original, to catch the
bug mentioned above.

Remove the reporter assert which checks for the resulting rowbytes.

Add checks to ensure that copying the extracted subset changes the genID.

GpuBitmapCopyTest:
Create an SkBitmap that shares an existing SkPixelRef, but only represents
a subset. This is to test the first call to cloneGenID in SkBitmap::copyTo.
In this case, the genID should NOT be copied, since only a portion of the
SkPixelRef was copied.

Also test deepCopy on this subset.

TestIndividualCopy now takes a parameter stating whether the genID should
change in the copy. It also does a read back using the appropriate subset.
It no longer differentiates between copyTo and deepCopyTo, since that
distinction was only necessary for copying from/to configs other than 8888
(which are no longer being tested), where copyTo did a read back in 8888 and
then drew the result to the desired config (resulting in an imperfect copy).

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

Author: scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13021 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 17:22:01 +00:00
commit-bot@chromium.org
2b8aacba52 Delete all invalidated resources with same key
Delete all invalidated resources with same key instead of deleting
just the first resource.

R=mtklein@google.com, kkinnunen@nvidia.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13019 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 16:39:20 +00:00
halcanary@google.com
a9325fa237 Add REPORTF test macro.
This macro replaces:
    SkString str;
    str.printf("Foo test Expected %d got %d", x, y);
    reporter->reportFailed(str);
with the shorter code:
    REPORTF(reporter, ("Foo test Expected %d got %d", x, y));

The new form also appends __FILE__:__LINE__ to the message before calling reportFailed().

BUG=
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13016 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 14:58:10 +00:00
skia.committer@gmail.com
856673a816 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@13008 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 07:08:11 +00:00
robertphillips@google.com
fe5824af29 Fix for Mac-specific compilation issue in r13000
git-svn-id: http://skia.googlecode.com/svn/trunk@13001 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 19:45:29 +00:00
robertphillips@google.com
ed9866cc8a Expand GatherPixelRefs unit test
https://codereview.chromium.org/132293002/



git-svn-id: http://skia.googlecode.com/svn/trunk@13000 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 19:20:45 +00:00
commit-bot@chromium.org
2b0f7c321c Convert Checksum test to DEF_TEST() macro.
BUG=None
TEST=tests
R=mtklein@google.com, bungeman@google.com

Author: tfarina@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12996 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 17:48:48 +00:00
reed@google.com
672588b684 change offset to xy for pixelref subsetting
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12958 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-08 15:42:01 +00:00
commit-bot@chromium.org
9109e188c7 Fix build warnings in SkAlphaThresholdFilter
BUG=None
R=bsalomon@google.com

Author: zork@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12937 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-07 16:04:01 +00:00
commit-bot@chromium.org
40eb3c1000 Add AlphaThreshold filter.
This is based on the Bitmap Alpha Threshold filter, and will be used by Chromium
to implement the window shape API.

R=bsalomon@chromium.org, wez@chromium.org, bsalomon@google.com, reed@google.com

Author: zork@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12935 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 23:41:14 +00:00
tfarina@chromium.org
452eecb443 Convert two more tests to DEF_TEST() macro.
Out of three, two were converted.

These tests were found with the following command line:

$ g grep "public Test"

BUG=None
TEST=ran tests executable fine.
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12905 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 12:43:53 +00:00
senorblanco@chromium.org
6776b82d46 Make SkImageFilter crop rects relative to the primitive origin, instead of relative to their parent's crop rect. This is required by SVG semantics, and is more sane anyway.
To do this, this patch changes the "offset/loc" parameter in filterImage() / onFilterImage() from an inout-param to an out-param only, so that the calling filter can know how much the input filter wants its result offset (and doesn't include the original primitive position). This offset can then be applied to the current filter's crop rect. (I've renamed the parameter "offset" in all cases to make this clear.) This makes the call sites in SkCanvas/SkGpuDevice responsible for applying the resulting offset to the primitive's position, which is actually a fairly small change.

This change also fixes SkTileImageFilter and SkOffsetImageFilter to correctly handle an input offset, which they weren't before. This required modifying the GM's, since they assumed the broken behaviour.

NOTE: this will require rebaselining the imagefiltersgraph test, since it has a new test case.

NOTE: this will "break" the Blink layout tests css3/filters/effect-reference-subregion-chained-hw.html and css3/filters/effect-reference-subregion-hw.html, but it actually makes them give correct results. It should be suppressed on the skia roll, and I'll rebaseline it.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12895 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 21:48:22 +00:00
reed@google.com
dcea5300dc assert in setPixelRef that the pr matches the bitmap's config
BUG=
R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12880 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 13:43:01 +00:00
skia.committer@gmail.com
862020763d Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12875 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 07:01:45 +00:00
commit-bot@chromium.org
07adb6359f Function pointers -> templates in SkPictureFlat.
These flatten/unflatten function pointers were driving me nuts when reading the
generated assembly for this code.  We don't need the flexibility of function
pointers here, so let's use templates to make it more manageable.  You'll
notice we get much better typing now on flatten/unflatten.

BUG=
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12873 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 22:20:49 +00:00
tfarina@chromium.org
78e7b4e1b9 Get rid of DEFINE_TESTCLASS_SHORT() macro.
Instead tests should be written using DEF_TEST() macro, which is much
nicer and simplifies the process of setting up an unit test.

BUG=None
TEST=skpskgr_test, pathops_unittest
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12870 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 21:45:03 +00:00
halcanary@google.com
1bed687f6b Add a release procedure to SkMallocPixelRef; remove SkDataPixelRef
This works in a way that is similar to SkData.

SkMallocPixelRef::NewWithProc

    Motivation: Chrome has a ETC1PixelRef which calls delete[] on the
    pixles on destruction.  There is no reason for them to almost
    duplicate our class, when we can provide them a more flexible
    class.  Example use:

      static void delete_uint8_proc(void* ptr, void*) {
        delete[] static_cast<uint8_t>(ptr);
      }
      SkPixelRef* new_delete_pixref(const SkImageInfo& info,
                                    SkColorTable* ctable) {
        size_t rb = info.minRowBytes();
        return SkMallocPixelRef::NewWithProc(
          info, rb, ctable,
          new uint8_t[info.getSafeSize(rb)],
          delete_uint8_proc, NULL);
      }

SkMallocPixelRef::NewWithData

	Motivation:  This allows up to eliminate SkDataPixelRef.  We
    modified SkImage_Raster to use MallocPixelRef rather than
    SkDataPixlRef.

Also:  Unit tests in tests/MallocPixelRefTest.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12861 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 17:29:28 +00:00
commit-bot@chromium.org
261c666682 Make tests output spin on the same line by default.
-v now gives a cleaned-up version of the existing output (every test timed, useless information removed)

Example output, default:
  [ 36/193] PathOpsCubicIntersectionOneOffTest
then later when finished...
  [193/193] BlurMaskFilter

Example output, -v:  (note, codereview is messing up my pretty spacing)
Skia UnitTests: --resourcePath resources SK_RELEASE SK_SCALAR_IS_FLOAT skia_arch_width=32
[  1/193]     0ms PathOpsSimplifyDontFailOneTest
[  2/193]     0ms PathOpsSimplifyFailOneTest
[  3/193]    30ms PathOpsSkpTest
[  4/193]    21ms PathOpsSimplifyFailTest
....
[182/193]  1026ms BlitRow
[183/193]   808ms AAClip
[184/193]  4333ms Math
[185/193]  5068ms PackBits
[186/193]  2265ms DrawText_DrawPosText
[187/193]  9163ms PathOpsRectsThreadedTest
[188/193]  5540ms GLPrograms
[189/193]     0ms GLInterfaceValidation
[190/193]     2ms DeferredCanvas
[191/193]     1ms ClipCache
[192/193]    30ms BlurMaskFilter
[193/193] 10396ms PathOpsOpCubicsThreadedTest
Finished 193 tests, 0 failures, 0 skipped.  (622610 internal tests)

BUG=
R=halcanary@google.com, mtklein@google.com, bungeman@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12860 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 16:19:53 +00:00
halcanary@google.com
3d50ea1b87 Add Options to SkDecodingImageGenerator, simplify API.
Motivation: We want to remove redundant classes from Skia.  To
that end we want to remove SkImageRef and its subclasses and
replace their uses with SkDiscardablePixelRef +
SkDecodingImageGenerator.  Since Android uses SkImageRef, we need
to make sure that SkDecodingImageGenerator allows all of the
settings that Android exposes in BitmapFactory.Options.

To that end, we have created an Options struct for the
SkDecodingImageGenerator which lets the client of the generator set
sample size, dithering, and bitmap config.

We have made the SkDecodingImageGenerator constructor private
and replaced the SkDecodingImageGenerator::Install functions
with a SkDecodingImageGenerator::Create functions (one for
SkData and one for SkStream) which now take a
SkDecodingImageGenerator::Options struct.

Also added a ImageDecoderOptions test which loops through a list
of sets of options and tries them on a set of 5 small encoded
images.

Also updated several users of SkDecodingImageGenerator::Install to
follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp,
and PictureTest.cpp, CachedDecodingPixelRefTest.cpp.

We also added a new ImprovedBitmapFactory Test which simulates the
exact function that Android will need to modify to use this,
installPixelRef() in BitmapFactory.

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

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12855 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 13:15:13 +00:00
skia.committer@gmail.com
f5e1f63461 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12849 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-31 07:01:36 +00:00
reed@google.com
4856964eae ComputeRowBytes must not overflow width when it shifts
BUG=
R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12848 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-30 19:21:22 +00:00
reed@google.com
57212f9469 Revert "Revert of https://codereview.chromium.org/113823003/"
This reverts commit 68b4b32066ea0ba9dbb5d326a836f8a54297b7aa.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12842 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-30 14:40:38 +00:00
commit-bot@chromium.org
4ad4ae907f Revert of https://codereview.chromium.org/113823003/
Reason for revert: need to update callsites in linux codecs

R=robertphillips@google.com
TBR=robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12841 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-30 14:24:37 +00:00
reed@google.com
a306d93cd7 remove Sk64 from public API, and start to remove usage internally
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12840 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-30 14:14:42 +00:00
halcanary@google.com
dedd44adea Fix Red/Blue decoding problem in WebP.
Added unit test with lossless webp data.

BUG=skia:1402

Will need to rebaseline webp expectations for some systems.

R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12803 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-20 16:35:22 +00:00
reed@google.com
01c41a556e Revert "Revert "begin to remove SkLONGLONG and wean Skia off of Sk64""
This reverts commit 15b986baf026a3da5e2cac8106a1b753df242c39.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12796 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-20 14:24:21 +00:00
reed@google.com
b1560445c6 Revert "begin to remove SkLONGLONG and wean Skia off of Sk64"
This reverts commit 784890196fdab96289f9389db43aca01f35db0f9.

Revert "use LL suffix for 64bit literal"

This reverts commit 9634295aff9bffd7a3875a0ca4a9b1a27d0793fc.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12790 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-19 22:28:48 +00:00
reed@google.com
8d7ed847be use LL suffix for 64bit literal
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12789 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-19 22:18:51 +00:00
reed@google.com
d6a301e9ad begin to remove SkLONGLONG and wean Skia off of Sk64
BUG=
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12788 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-19 21:54:27 +00:00
reed@google.com
1915fd09f3 remove unused SkFixed and SkFract functions
BUG=
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12767 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-19 14:22:03 +00:00
robertphillips@google.com
4fa237f2fb Yet another round of valgrind suppressions
https://codereview.chromium.org/116053004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12766 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-19 13:41:48 +00:00
tfarina@chromium.org
9f9d5829c2 Get rid of DEFINE_TESTCLASS() macro.
Remaining tests were rewrite to use DEF_TEST() macro instead. This fixes
the FIXME in TestClassDef.h

BUG=None
TEST=tests
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12760 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 22:15:12 +00:00
commit-bot@chromium.org
9cfa287bc7 Remove SkBitmapAlphaThresholdShader
R=bsalomon@google.com

Author: zork@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12759 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 21:58:53 +00:00
commit-bot@chromium.org
1ad518bf38 Revert of https://codereview.chromium.org/93703004/
Reason for revert: Test failures

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12747 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 18:33:15 +00:00
halcanary@google.com
d665dc4c10 Add Options to SkDecodingImageGenerator, simplify API.
Motivation: We want to remove redundant classes from Skia.  To
that end we want to remove SkImageRef and its subclasses and
replace their uses with SkDiscardablePixelRef +
SkDecodingImageGenerator.  Since Android uses SkImageRef, we need
to make sure that SkDecodingImageGenerator allows all of the
settings that Android exposes in BitmapFactory.Options.

To that end, we have created an Options struct for the
SkDecodingImageGenerator which lets the client of the generator set
sample size, dithering, and bitmap config.

We have made the SkDecodingImageGenerator constructor private
and replaced the SkDecodingImageGenerator::Install functions
with a SkDecodingImageGenerator::Create functions (one for
SkData and one for SkStream) which now take a
SkDecodingImageGenerator::Options struct.

Also added a ImageDecoderOptions test which loops through a list
of sets of options and tries them on a set of 5 small encoded
images.

Also updated several users of SkDecodingImageGenerator::Install to
follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp,
and PictureTest.cpp, CachedDecodingPixelRefTest.cpp.

We also added a new ImprovedBitmapFactory Test which simulates the
exact function that Android will need to modify to use this,
installPixelRef() in BitmapFactory.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12744 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 17:40:25 +00:00
robertphillips@google.com
45e01c36da Suppress questionable gpu errors
https://codereview.chromium.org/118283002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12743 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 17:28:55 +00:00
reed@google.com
e1ca705cac deprecate SkScalarRound (and its ilk), use SkScalarRound[ToInt,ToScalar]. #define SK_SUPPORT_DEPRECATED_SCALARROUND for legacy clients
BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12719 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-17 19:22:07 +00:00
reed@google.com
8f4d2306fa remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats
To keep the CL (slightly) managable, this does not make any changes to
existing macros (e.g. SkScalarMul). Just tackling #ifdef constructs this
time around.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12712 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-17 16:44:46 +00:00
skia.committer@gmail.com
96f5fa02e9 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12685 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-16 07:01:40 +00:00
tfarina@chromium.org
4f3c305a5b Fix some presubmit warnings.
I found this while running a modified version of v8's tools/presubmit.py
script.

samplecode/SampleImage.cpp does not end with a single new line.
samplecode/SampleImageDir.cpp does not end with a single new line.
src/ports/SkFontHost_sandbox_none.cpp does not end with a single new line.
tests/FlatDataTest.cpp does not end with a single new line.
tests/ImageCacheTest.cpp has trailing whitespaces in line 31.

* Removed three empty files.
* Add single new line to FlatDataTest.cpp
* Removed trailing whitespace in ImageCacheTest.cpp

BUG=None
TEST=None
R=bsalomon@google.com
TBR=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12684 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-14 15:12:48 +00:00
reed@google.com
bf790232f6 Update all callsites to use info for pixelrefs
#define SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR in chrome to keep old API signature (for now)

BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12677 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:45:58 +00:00
robertphillips@google.com
0efb21bd1c Improved SkPathRef interface security
https://codereview.chromium.org/115323004/



git-svn-id: http://skia.googlecode.com/svn/trunk@12676 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:36:25 +00:00
halcanary@google.com
2af6c1204d Fix win7 BitmapTest
BUG=
R=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12675 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:25:21 +00:00
halcanary@google.com
4428734907 Allow 0-width SkBitmap in setConfig.
Previously, SkBitmap::setConfig would allow zero height, but not zero
width.  This is changed for consistancy.

A unit test was added.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12673 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 18:29:51 +00:00
robertphillips@google.com
0daa1adb03 Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
https://codereview.chromium.org/112603003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 15:24:37 +00:00
reed@google.com
93b40594b7 Remvoe duplicate impl for SkImageInfo flattening
Add onNewLockPixels

This reverts commit bb8eff6a70c52b7644391cfd4f4d21bf7294a6bf.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12665 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 14:18:14 +00:00
robertphillips@google.com
6b8dbb668f Move segment mask from SkPath to SkPathRef
https://codereview.chromium.org/105083003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12660 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 23:03:51 +00:00
reed@google.com
1d0654f69d be sure to unlock the discardablememory before deleting it
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12658 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 22:37:32 +00:00
tfarina@chromium.org
e4fafb146e Use DEFINE_TESTCLASS_SHORT macro in tests.
The three version of DEFINE_TESTCLASS macro is deprecated and thus just
use the simple, short one.

BUG=None
TEST=out/Debug/tests
R=mtklein@google.com, bsalomon@google.com, robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12653 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 21:11:12 +00:00
reed@google.com
398337b3a5 Revert "remvoe duplicate impl for SkImageInfo flattening"
Reason: breaks chrome_mac_tests which still have non-imageinfo constructors

This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:22:39 +00:00
commit-bot@chromium.org
1236d8e37c [PDF] Fix bug in ToUnicode table generation for Type 3 fonts.
True glyphIDs where being using in the Type3 ToUnicode table instead of IDs of 1-255.  This causes poppler to complain about each entry.

BUG:skia:1565

R=bungeman@google.com

Author: vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12625 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:47:11 +00:00
reed@google.com
f3aead2829 remvoe duplicate impl for SkImageInfo flattening
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""""

This reverts commit eabd6b2ed4e494b323c08f32358f45950a0368c3.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12624 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:38:46 +00:00
reed@google.com
6a32add491 Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""""
This reverts commit d08eca87a0bef10112a211de540f89656a80b86a.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:19:10 +00:00
reed@google.com
6965a0a2df PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:04:56 +00:00
reed@google.com
772443a3e6 add more tests for discardable caches
BUG=
R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12618 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 15:30:24 +00:00
skia.committer@gmail.com
63ba319483 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12617 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 07:02:06 +00:00
halcanary@google.com
edd370f949 Sk_API for SkImageGenerator and SkInstallDiscardablePixelRef
Added SK_API to SkImageGenerator (already in include/).

Moved SkDiscardablePixelRef::Install to SkInstallDiscardablePixelRef,
added SK_API to that function, and moved declaration to
SkImageGenerator.h

This keeps the SkDiscardablePixelRef internal to Skia, but exposes a
method to install it into a bitmap.

Modifed tests that rely on this functio to use new version.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12612 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-10 21:11:12 +00:00
halcanary@google.com
bc55eec80e Implement SkAshmemDiscardableMemory
-   Implement ashmem-backed SkDiscardableMemory subclass:
    This class in only accesible via the SkDiscardableMemory::Create()
    function, which replaces the mock implementation in
    SkDiscardableMemory_none.cpp

-   Added SkDiscardableMemory_ashmem.cpp to the Android port of Skia
    Removed SkDiscardableMemory_none.cpp from the Android port.

-   Added DiscardableMemoryTest.
    Still needs work.

-   SkDiscardablePixelRef Bugfix:
    onLockPixels() now calls SkDELETE on the SkDiscardableMemory pointer
    when it fails to unlock.

-   Improved documentation inside ashmem.h

BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12608 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-10 18:33:07 +00:00
skia.committer@gmail.com
cf0803b46f Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@12590 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-10 07:02:03 +00:00
reed@google.com
e4eb122a61 support scaledimagecache instantiable using discardablememory
Add this to your build/gyp system to use discardable instead of malloc+budget

#define SK_USE_DISCARDABLE_SCALEDIMAGECACHE

R=halcanary@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12588 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-09 22:29:30 +00:00
reed@google.com
9230ea2971 make info real in SkPixelRef, and add bitmap::asImageInfo
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12586 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-09 22:01:03 +00:00