History log of /external/skia/src/core/SkPicturePlayback.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
12c2198535759ee9aae91ec385e8e31e5dbc12d7 18-Jun-2014 egdaniel <egdaniel@google.com> Remove dashing from gpu veto

With new veto our new veto test results look like the following:
TP: true positive (picked to use gpu and gpu was faster)
I: inderminate, the raster time is withing 5% of gpu time

TP FP TN FN I

old 21 9 15 12 3
new 29 12 11 6 3

There are three skps that tend to move from TN -> FP, however
the absolute difference in their run times are not huge between
them. The largest being desk_booking which is about 7.1 raster
and 8.8 gpu. The other two skps are desk_yahooanswers and
desk_linkedin

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

Author: egdaniel@google.com

Review URL: https://codereview.chromium.org/334053005
/external/skia/src/core/SkPicturePlayback.cpp
e26e65e8f831f7a5626c92d11bbb8c2cec1f70de 12-Jun-2014 robertphillips <robertphillips@google.com> Remove SkPicture pointer from SkPicturePlayback

This CL simplifies the relationship between SkPicture and SkPicturePlayback by moving the path heap into SkPicturePlayback and removing SkPicturePlayback's SkPicture pointer.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/334493002
/external/skia/src/core/SkPicturePlayback.cpp
0bdbea75ff1a6f3c313c18cab0139728967cb93e 11-Jun-2014 robertphillips <robertphillips@google.com> Remove picture pre-allocation from SkPictureRecorder

This CL improves the separation of the SkPicture and SkPictureRecord classes. It delays creation of the SkPicture (in SkPictureRecorder) until recording is actually completed. To accomplish this the SkRecord-derived classes now get SkPathHeap and SkPictureContentInfo members that are absorbed by the SkPicture when it is constructed.

As an ancillary change, this CL also moves the SkPictureContentInfo object from SkPicture to SkPicturePlayback. This is intended to centralize all the data in the SkPicturePlayback object.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/324293004
/external/skia/src/core/SkPicturePlayback.cpp
9058d602d0303c4d601bea260929367a8be37f04 10-Jun-2014 robertphillips <robertphillips@google.com> Fix error revealed by Android unit test

The issue is/was that the original Picture/PictureRecorder that is being partially replayed is not guaranteed to issue any more commands before attempting to modify the existing data. Such modification is prohibited if there is a extant copy-on-write snapshot. Rather then further complicate the SkWriter32::snapshot capability for a dis-preferred use case, this CL simply copies the operation data.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/316063005
/external/skia/src/core/SkPicturePlayback.cpp
6de27127c4d50ef90b5435aefaeef47fa84b819d 10-Jun-2014 robertphillips <robertphillips@google.com> Remove unused 'deepCopy' parameter

This is split out of https://codereview.chromium.org/316063005/ for clarity. Keeping in mind that SkPicture::FakeEndRecording is now only called from SkPictureRecorder, its deepCopy parameter is no longer necessary. This is b.c., given the new Picture recording semantics (where SkPictures can no longer be actively recording), cloning for thread safety only happens when an SkPicturePlayback has already been allocated (i.e., it happens in the SkPicturePlayback copy constructor.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/324093003
/external/skia/src/core/SkPicturePlayback.cpp
9b14f26d0f3a974f3dd626c8354e1db1cfcd322f 04-Jun-2014 robertphillips <robertphillips@google.com> Alter SkCanvas::drawPicture (devirtualize, take const SkPicture, take pointer)

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613004
/external/skia/src/core/SkPicturePlayback.cpp
7ed173b1ebac84671fb0dc1b9bd323a5e6e63771 20-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> formalize named picture versions

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14807 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
821650655be1519039ae9a4a4c2e5873c02ba354 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Ensure playing back a picture always balances saves and restores

This "fixes" the legacy interface's possible creation of pictures with unbalanced save/restores.

The Android dox will need to be updated once/if this lands.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14772 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f97d65dc256111f1de6bbf3521c7cd3cf3e70f60 09-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix rendering artifacts in pull-saveLayers-forward mode

This CL fixes 2 bugs in the pre-rendering of saveLayers:

1) The drawBitmapRect call wasn't occurring in device space so could sometimes be double transformed

2) The BBH op skipping in SkPicturePlayback could sometimes mess up the SkPictureStateTree's state

It also reduces the number of layers that are pre-rendered when a BBH is not in use.

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14659 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
3d41c4add81e95784faa81f9a59b4a32b7cff082 08-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r14650 (Fix rendering artifacts in pull-saveLayers-forward mode - https://codereview.chromium.org/267293007) due to unit test failures




git-svn-id: http://skia.googlecode.com/svn/trunk@14654 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
7252f7ba4b729693db946d014c5af41413e2dd20 08-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix rendering artifacts in pull-saveLayers-forward mode

This CL fixes 2 bugs in the pre-rendering of saveLayers:

1) The drawBitmapRect call wasn't occurring in device space so could sometimes be double transformed

2) The BBH op skipping in SkPicturePlayback could sometimes mess up the SkPictureStateTree's state

It also reduces the number of layers that are pre-rendered when a BBH is not in use.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14650 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
b2c82c99f891e4e846e4959c811661bf68fa43d6 08-May-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14636 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
beb1af2f34b5c538fc08d849b132355160b4c93f 07-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at pre-rendering saveLayers for GPU

https://codereview.chromium.org/261663003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14632 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
66ec1e4c6179915a50bea74fad4b8cc14e63a4cf 29-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Move setup of SkPictCopyInfo into SkPicture::clone

This refactoring seemed sufficiently fraught that I've broken it out of a larger patch to move fBitmapHeap out of SkPictureRecord/SkPicturePlayback and into SkPicture.

SkPicturePlayback's friending of SkPicture should be temporary and just allows SkPicture to access items that will be moving into it soon.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14440 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
a31eacb22e12a4223740e53ff5a11bd08340106e 28-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.

The current implementation relies on soon-to-be-deprecated
kClip_SaveFlag behavior. Updated to use default save flags
(kMatrixClip_SaveFlag) and stop assuming that the matrix survives
restore() calls.

R=junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14421 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
98c4e5229ce8ef78491fc9e5804f9936b6a2965f 25-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag. (https://codereview.chromium.org/246893005/)

Reason for revert:
https://code.google.com/p/chromium/issues/detail?id=366889

Original issue's description:
> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.
>
> The current implementation relies on soon-to-be-deprecated
> kClip_SaveFlag behavior. Updated to use default save flags
> (kMatrixClip_SaveFlag) and stop assuming that the matrix survives
> restore() calls.
>
> R=junov@chromium.org,robertphillips@chromium.org,reed@google.com
>
> Committed: http://code.google.com/p/skia/source/detail?r=14319

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

Author: bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14383 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
b0430d024572b1a5e5d7b80e406c668e975e3030 24-Apr-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@14346 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8f831f262f5e57665587cb3033860eea39fe1621 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
8798ae37dac4e28a8feb05ae4fae32c915d8cd8d 23-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor SkPictureStateTree::Iterator to avoid use of kClip_SaveFlag.

The current implementation relies on soon-to-be-deprecated
kClip_SaveFlag behavior. Updated to use default save flags
(kMatrixClip_SaveFlag) and stop assuming that the matrix survives
restore() calls.

R=junov@chromium.org, reed@google.com, robertphillips@chromium.org, robertphillips@google.com

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14319 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
dcecb168968ca136c7fb9e8b444bec56f19af70c 22-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix size_t/int warnings in pictures

BUG=skia:
R=robertphillips@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14302 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2cfa3200fda29279eba1240170c7e873d12f9d48 20-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix warnings around size_t/int
fix warnings around undeclared (non-static) functions

TBR=bsalomon@google.com

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14267 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f6a5afb66b661c884cd308577431b7abf025b182 14-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove currently unused code

This code is currently unused and is contrary to the way in which we seem to be moving towards accomplishing this (i.e., device-specific optimization passes).

This is a partial revert of r13704 (First version of bitmap use tracking in SkPictureRecord - https://codereview.chromium.org/187833003/)

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14179 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c3c67dfc73519910f173bd7b4da01b8583040096 11-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove dead code from SkPicturePlayback

This is from an earlier iteration of the pull-forward task before we switched to doing the majority of the work in SkGpuDevice.

R=jvanverth@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14162 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
e9085b1d0f37c76894e882c7a9ffb83bd952be5b 10-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> remove two more effects that are now immutable

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14142 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
0943f5f58abcff15c7583faafe44549b9a44f47a 28-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Thread picture version through to SkReadBuffer.

This will let code outside SkPicture* fork its read code based on the picture version.

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

Author: mtklein@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13984 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
75cf29be4d3bcda4ce4118facec574242d4cc106 24-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add new experimental API to SkPicture to get "id" of current op

When gathering information about a picture (in the new SkDevice::EXPERIMENTAL_optimize entry point) it is necessary to be able to correlate the gathered information with the command in the SkPicture (so the information can later be combined with the similarly indexed information from the BBH). This entry point exposes that information to friend classes.

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13919 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2002d881e80e0d56440ed2fc4da5f90bf2f0e0fb 19-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13855 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
70512af9dd7a6b2c0a3f5971fd6e103dc577a400 18-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
14bdd527eebb3616227ef37a9ed23bc450a8bb5a 18-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13836 due to Chromium cc_unittests failures

https://codereview.chromium.org/203333005/



git-svn-id: http://skia.googlecode.com/svn/trunk@13850 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
db0c8753775774aa3f67114491e26ac1be32f38e 18-Mar-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13845 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ecb745dba75dde72e5edde72e4b309120e66033b 17-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a means of extracting active operations from SkPicture

For the "pull forward" task I will be comparing the two cases:
analyze the whole skp and use the BBH information
analyze only the active portion of the skp

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13836 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
1c556dba153f880cad1f3e2996a320d61435f3c2 17-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r13831 (Add a means of extracting active operations from SkPicture) due to Mac compiler issue



git-svn-id: http://skia.googlecode.com/svn/trunk@13832 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
0b23f9e15f87363249cb66db2dd9918bc42d72ab 17-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a means of extracting active operations from SkPicture

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



git-svn-id: http://skia.googlecode.com/svn/trunk@13831 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c30dcb9b128887c7e16afe32fdf35105cc42380b 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
9e5f85e89d03a850d435fc951e74e9861a0c1bdd 12-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
d7e0fbef5d6c7c63b312a5ea1955a9802ad4302f 10-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Pulling these out of other reviews so avoid code review clutter.

R=jvanverth@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13724 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8016f79cfc6b4e9b34049ecbccdb65ee222d537a 07-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This is just the first version and shows how I intend to orchestrate this. Future enhancements will:

track the portion of the bitmap required
track any resizing that might be required
actually preload something

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13704 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
06e975252112eb5ca62ebacd484118a640c19168 06-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add debug check of chunk size written to skp

R=mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13692 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
dcb8e54ffdc9194744c0ec839969102bd0f582c6 05-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL is motivated by the desire to make the skpinfo tool work a bit better. The main concern is that the assumptions made w.r.t. written bytes may not be valid for all SkWStream sub-classes.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13673 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6f4fb0f1296422a44d5d0dac155d82595dc5ebec 03-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Generating the 1M skps frequently yields truncated skps. This tool is intended to help automate weeding these out.

Please see skbug:1057

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13643 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8f90a892c5130d4d26b5588e1ff151d01a40688a 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
03fc3b4f67a115e4a7945d173856a6c80b09311e 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
392c9be344549e809d0468abafdbeb6e32135bcd 28-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
210ae2a42613b9048e8e8c4096c5bf4fe2ddf838 27-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Culling API

*** SKP format breaking change ***

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

These are currently only plumbed for SKP playback quickreject.

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

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

Things still missing/to consider:

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

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

Author: fmalita@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13611 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
aca1c01f3b39a8159a0ca10ba740d9995027317b 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
ed9806f5c972513d4141c9d1b5a04ab78b3af4cb 21-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas::drawDRRect

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13524 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ac5004682fde163b09e5ee394cec1732c4d94541 20-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
cf52f5b7267a1f463d39d58cb6577030acca80df 19-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
ead1efb6ba14ecf9c1ef96814b1a5311dc4cc8fb 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
d01754255188acd45e119882d32ba50e5439c560 18-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
5e0995e4b36178e1e4465a9f50114ed39f038c27 07-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
7713c38dc0182c8f6a685dace5101c49301de00d 07-Feb-2014 fmalita@google.com <fmalita@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
4f6318d2e64c96fba955ea9154829aee37e155b8 07-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Serialization of SkPictureImageFilter

BUG=skia:

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

R=senorblanco@google.com, reed@google.com, mtklein@google.com, sugoi@google.com, senorblanco@chromium.org, robertphillips@google.com, scroggo@google.com

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13354 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8b4799a98b05d626432b11115b5c2f0e0bb1772d 06-Feb-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert of r13347 (Serialization of SkPictureImageFilter - https://codereview.chromium.org/138063005) due to bump in skp file format



git-svn-id: http://skia.googlecode.com/svn/trunk@13348 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
670b98ea5df48daef5d23e2bb7570d408207c333 06-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Serialization of SkPictureImageFilter

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

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13347 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
a2bd2d12ad9504583e9311404fcd82b40df49d30 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
8b0e8ac5f582de80356019406e2975079bf0829d 30-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
fed2ab648341ec153ad2af746a31d368963171e4 23-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
19382421b916aab00be7265815ba4e2690adf2c9 14-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
07adb6359fd137ccb633b2c64ee2287c8edfd701 02-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
85e143c33c214e54187aa28146aa7666961a0d17 30-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> reenable vertices gm, adding picture support

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12845 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
1915fd09f3b60eb907f5ab155e8379b589e2bae1 19-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> 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
/external/skia/src/core/SkPicturePlayback.cpp
11e055518a0cbe5329232a55fe2cd177e83836d8 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Code cleanup following recapture of skps

https://codereview.chromium.org/88233003/



git-svn-id: http://skia.googlecode.com/svn/trunk@12472 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
4faa869cdabbdcf4867118b4a1272296baaeeb52 05-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

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

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

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

Author: sugoi@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12130 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
12a23866fe18e800da1d361d000a359ea36696eb 04-Nov-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream."

This reverts commit 6bc22e8ef1ea70a1b58409aa21254358c50f149a.

git-svn-id: http://skia.googlecode.com/svn/trunk@12124 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
b48a59ae81a35642fe715a5cdd6fd758b652bff3 04-Nov-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

BUG=
R=reed@google.com

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12119 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
eb221268ab1067af7c48e04a75147d4bcca87191 04-Nov-2013 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r12114 due to https://code.google.com/p/skia/issues/detail?id=1794 ('Assertion failures on various buildbots as of r12114')



git-svn-id: http://skia.googlecode.com/svn/trunk@12115 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
305f78e8c18a26b7ead11758d6a4fa0519932cca 04-Nov-2013 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Checking structure sizes before reading them from memory to avoid overflowing the buffer's stream.

BUG=
R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12114 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
4469938e92d779dff05e745559e67907bbf21e78 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning""

This reverts commit 1e787c38fa71f2a21fd728f1b1d620b9b09b0d3d.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12057 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6fcbfcead5dc1b61fa5b4c139a1a3714e8c58091 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning"

This reverts commit 1d22c4aaf9d8f053f25194a1ed74b137bfb19497.

git-svn-id: http://skia.googlecode.com/svn/trunk@12056 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
081560e3abe25c4821b79ca1465f4dbd371c4b5c 31-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning

BUG=
R=robertphillips@google.com, senorblanco@chromium.org, vandebo@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12055 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
381010e5501a8d681f8f059486da74f4924f81e5 24-Oct-2013 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expose SkPicture::willPlayBackBitmaps()

This returns true if (1) the picture has finished recording and
(2) this picture or any picture drawn into it refers to any bitmaps.
It allows clients doing complicated manipulations of the picture to
early-out when there are no bitmaps present.

BUG=303281
R=reed@google.com



git-svn-id: http://skia.googlecode.com/svn/trunk@11935 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
fb6deed66c20f86c86c105f41dbbf3f3c4a47e4c 10-Oct-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make explicit the requirement that all colorfilters are reentrant-safe

BUG=
R=mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11705 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
86490573b5cba554a27637e22485455a7b133de7 04-Oct-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> commit to xfermode objects being immutable

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

Author: reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
12705329d0807863d4d80cac0f02e543c26f24a1 01-Oct-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow creating a picture from skp to fail.

Replace the current constructor for creating an
SkPicturePlayback to a factory. In the factory,
check for incorrect data that would result in an invalid
playback. If the playback is invalid, return NULL, and
return NULL from SkPicture's factory as well.

Update SkTimedPicture(Playback) as well.

BUG=skia:1672
R=caryclark@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11554 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
31acc11977815402e4ef2681350f8559285bec97 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix name of "bleed" flag

https://codereview.chromium.org/22812014/



git-svn-id: http://skia.googlecode.com/svn/trunk@10805 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
7475811143e190e172bf83d13c4bdba85704b604 17-Aug-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@10790 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
eed779d866e1e239bfb9ebc6a225b7345a41adf9 16-Aug-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This CL plumbs in the drawBitmapRectToRect "bleed" flag and makes it live on the simplest GPU path.

R=bsalomon@google.com, reed@google.com, edisonn@google.com, scroggo@google.com, jvanverth@google.com, mtklein@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10765 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f1754ec69131801c1a6ed3c704501a9400bbf324 28-Jun-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Replace SkPicture(SkStream) constructors with a factory.

SkPicture:
Remove the constructors which take an SkStream as an argument. Rather
than having to check a variable for success, the factory will return
NULL on failure.
Add a protected function for determining if an SkStream is an SKP
to share code with SkTimedPicture.
In the factory, check for a NULL SkStream.
Use a default decoder (from BUG:
https://code.google.com/p/skia/issues/detail?id=1325)

SkDebuggerGUI:
Call SkPicture::CreateFromStream when necessary.
Write a factory for creating SkTimedPictures and use it.

Use the factory throughout tools.

Add include/lazy to utils and effects gyp include_dirs so SkPicture.h
can reference SkImageDecoder.h which references SkBitmapFactory.h (in
include/lazy).

Changes code Chromium uses, so this will require a temporary Skia
and then a change to Chromium to use the new Skia code.

TODO: Create a decoder that does nothing to be used by pinspect,
lua pictures, etc, and allow it to not assert in SkOrderedReadBuffer.

R=reed@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9822 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
0a4805e33f8ddb445a2fd061462e715e1707f049 29-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at Comment API

https://codereview.chromium.org/13957009/



git-svn-id: http://skia.googlecode.com/svn/trunk@9310 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6d9c92b2f6e5be64dd5dd98e44d672877e4c9fbc 23-May-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove offsetcanvas from debugger

https://codereview.chromium.org/15746003/



git-svn-id: http://skia.googlecode.com/svn/trunk@9253 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
74babdfce524f478b9177834fe51d0394e42de6a 20-May-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkDrawPictureCallback optional parameter to drawPicture(), which can abort the picture drawing.

R=bsalomon@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9197 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2983ddd4b57a05e3262fe2c1964a34f1717a5a1c 07-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Allow supporting 1 older PICTURE_VERSION."

This reverts commit deb9d6990ef2d153230340d960d86b0966f261e1.

That change was just to allow us to bump the PICTURE_VERSION
without changing the SKPs to the new one. Since it is not
entirely reliable, I am removing it.

R=rmistry@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9035 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
0cb7df97185d5fc8780e225c912e2bc99a26aa8d 30-Apr-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow supporting 1 older PICTURE_VERSION.

Allows https://codereview.chromium.org/14230022/ to be submitted
without breaking bench_pictures and render_pictures.

After DEPS roll and SKP capture, this will be reverted.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8918 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
73c0abc2affdd5703f66c777e1cb3199179f3a09 22-Apr-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Catch failures to SkTypeface::Deserialize() and use the default in that case.

This fixes cros bots, who are (for whatever reason) failing to deserialize one
of their fonts during picture-deserialization.



git-svn-id: http://skia.googlecode.com/svn/trunk@8796 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
4b32bd53c63b245707822ae83e3215863303bf43 15-Mar-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing SkPicture command pattern optimizations to make them work correctly with bounding box hierarchies

BUG=https://code.google.com/p/chromium/issues/detail?id=180645
TEST=render_pictures -r <skp_dir> --validate --bbh <grid|rtree> --mode tile 256 256

Author: junov@chromium.org

Reviewed By: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@8171 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
12d588a7f28e18f87f5f9a6eb57fc1f5137a8d28 25-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove bogus ability for creating an SkPicturePlayback to fail.

Change SkPicturePlayback::parseBufferTag to return void, since
it can never return false.

Change SkPicturePlayback::parseStreamTag to return void, since
the only way it can return false is if parseBufferTag returns
false, or if creating a sub picture failed, both of which are
nonsensical.

Due to the above, there is no reason for creating an
SkPicturePlayback to fail, so remove the isValid parameter.

Update subclasses in SkDebuggerGUI.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7844 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
32ef131f5279da0850f865dece4935aeddddb40a 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove SkSerializationHelpers.

Move the function definition for EncodeBitmap to SkPicture,
where InstallPixelRefProc has already moved (and where it is
relevant).

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7837 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f8d7d2731318cdf510ab68e6b3f5ec68ab22c8e2 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Create SkLazyPixelRef which performs lazy decoding.

The new pixel ref behaves similarly to SkImageRef, with some key differences:
It does not depend on the images project.
It requires an SkImageCache, which handles allocation and caching of the pixel
memory.
It takes a function signature for decoding which decodes into already allocated
pixel memory rather than into an SkBitmap.

Add two implementations of SkImageCache: SkLruImageCache and SkAshmemImageCache.

Replace SkSerializationHelpers::DecodeBitmap with SkPicture::InstallPixelRefProc,
and update sites that referenced it.

SkBitmapFactory now sets the pixel ref to a new object of the new
class SkLazyPixelRef, provided it has an SkImageCache for caching.

Provide an option to do lazy decodes in render_pictures and bench_pictures.

SkPicture:
Eliminate the default parameters in the constructor.
If a proc for decoding bitmaps is installed, use it to decode any encoded
data in subpictures.
When parsing deserializing subpictures, check for success.
When serializing subpictures, pass the picture's bitmap encoder to the
subpicture's call to serialize.

Update BitmapFactoryTest to test its new behavior.

BUG=https://code.google.com/p/skia/issues/detail?id=1008
BUG=https://code.google.com/p/skia/issues/detail?id=1009

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7835 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c4dc831f7be430dc8a7d68fd9eb84bfda8a1c519 22-Feb-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix a warning on Android.

Only define/use haveBuffer in debug mode, since it's only used for
assertions.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7824 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ce8343d7dde40e509317708de239be1fa72b28f9 16-Feb-2013 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@7755 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
87fbbd30b2b7b3cead6b9c78764af306988501ff 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> non-SK_DEVELOPER-mode patch for r7752

unreviewed



git-svn-id: http://skia.googlecode.com/svn/trunk@7753 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
e4ce5b82627d7ef7cab34b808ff88dc208aef7bc 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add NOOP "command" to picture format

https://codereview.appspot.com/7343044/



git-svn-id: http://skia.googlecode.com/svn/trunk@7752 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2ca1aaaa442290b8262e1ca3ec64ebe46a191211 15-Feb-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Now store chunk size in skp file format

https://codereview.appspot.com/7308087/



git-svn-id: http://skia.googlecode.com/svn/trunk@7747 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
d9b0f480be398cb37c447605109c419e8314cf61 01-Feb-2013 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Only support SkPicture abort for Android due to the fragility of the existing API

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

git-svn-id: http://skia.googlecode.com/svn/trunk@7515 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
94f20dc89a55483ba63db01829332065e6e1b2ac 28-Jan-2013 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fixing crash in cloning empty SkPicture object

BUG=https://code.google.com/p/chromium/issues/detail?id=172062
TEST=Pictures unit test, test_clone_empty
Review URL: https://codereview.appspot.com/7223048

git-svn-id: http://skia.googlecode.com/svn/trunk@7430 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
3f7137250c8558dedd1f08ed2e5f61d3665c19cb 17-Jan-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Switch debugger profiling stubs over to being guarded by SK_DEVELOPER

https://codereview.appspot.com/7134053/



git-svn-id: http://skia.googlecode.com/svn/trunk@7246 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
5f74cf8c49701f514b69dc6f1a8b5c0ffd78af0a 17-Dec-2012 sugoi@google.com <sugoi@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Follow up on the previous patch :
- Moved the SkStrokeRec class in its own file
- Replaced SkStroke by SkStrokeRec in Ganesh
- Moved path stroking to the Ganesh level in some cases (everytime it isn't required to do it directly in SkGpuDevice). PathEffect and MaskFilter still require path stroking at the SkGpuDevice for now.
- Renamed static functions in SkPath with proper names

* No functionality shold have changed with this patch. This is a step towards enabling Ganesh Path Renderers to decide whether or not to stroke the path rather than always receiving the stroked path as an input argument.

BUG=chromium:135111
TEST=Try path rendering tests from the gm
Review URL: https://codereview.appspot.com/6946072

git-svn-id: http://skia.googlecode.com/svn/trunk@6861 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
4ed0fb768409bf97b79899c3990d8c15f5e9d784 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 6766, thereby re-landing 6762-6763 now that the bots are ready



git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
25c1408c3da9ca90509b84f21a1161ef40052bd1 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 6762-6763, since those require new skps to be generated, and we can't
do that immediately right now... will re-submit when we can.



git-svn-id: http://skia.googlecode.com/svn/trunk@6766 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
68d61ed83ec7b6e98e9623c2f5c9e7b1a32d25bb 12-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> make RRect and Oval first-class drawing primitives in SkCanvas.
add RRect as a first-class clip primitive.
Review URL: https://codereview.appspot.com/6923058

git-svn-id: http://skia.googlecode.com/svn/trunk@6762 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6f9286202831dd807daf9b1e39271da8f390210e 10-Dec-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When cloning picture, use a bitmap heap to avoid flattening bitmaps.

When cloning a picture, the paints are reflattened. Use a bitmap
heap so the bitmaps do not get unnecessarily get flattened as well.

For br.337, this speeds up bench_pictures timing the clone
operation (not yet checked in, but currently timing making five
clones) from around 180 ms to around 24ms.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@6740 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
dee54be428017a81f13519291a03baac11d61602 10-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> optimize for paints that don't require deep copy during clone
Review URL: https://codereview.appspot.com/6903062

git-svn-id: http://skia.googlecode.com/svn/trunk@6739 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
5f97114fd28e03e8c4c1c22c924d383b45cdced1 07-Dec-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make debugger profiling honor deleted commands

https://codereview.appspot.com/6906043/



git-svn-id: http://skia.googlecode.com/svn/trunk@6713 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c52295f9ddc5592260b8adfce3d2778d4a21c9f2 07-Dec-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> mark bitmaps as immutable as we deserialize them into picture-playback
Review URL: https://codereview.appspot.com/6900045

git-svn-id: http://skia.googlecode.com/svn/trunk@6703 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6f6dfb4e8c0e71ff75c63b27c1a3ca71d1e36bbb 13-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added profiling stubs to SkPicturePlayback

https://codereview.appspot.com/6851044/



git-svn-id: http://skia.googlecode.com/svn/trunk@6397 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
5a7c6be72b940dde8ff6ad2485a09aecd56a2660 04-Oct-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add the ability to provide function pointers to SkPicture serialization
and deserialization for encoding and decoding bitmaps.

Remove kForceFlattenBitmapPixels_Flag, which is no longer used.

When an SkOrderedReadBuffer needs to read a bitmap, if it does not
have an image decoder, use a dummy bitmap.

In GM, add a tolerance option for color differences, used when
testing picture serialization, so it can assume two images are the
same even though PNG encoding/decoding may have resulted in small
differences.

Create dummy implementations for SkImageDecoder and SkImageEncoder
functions in SkImageDecoder_empty so that a project that does not
want to include the images project it can still build.

Allow ports to build without images project.

In Mac's image encoder, copy 4444 to 8888 before encoding.

Add SkWriter32::reservePad, to provide a pointer to write non 4 byte
aligned data, padded with zeroes.

In bench_ and render_ pictures, pass decode function to SkPicture
creation from a stream.

BUG=https://code.google.com/p/skia/issues/detail?id=842

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5818 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
7112173c3c4cd1b1e7da8cdf971d71f01dd91299 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-re-land 5578

will follow w/ new .skp files to keep the waterfall green (I hope)



git-svn-id: http://skia.googlecode.com/svn/trunk@5584 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
10f9f4a844c8d5260c0a02df94b940b6abf66b0d 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5580



git-svn-id: http://skia.googlecode.com/svn/trunk@5581 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
eab16dea1ce249dc8e4dc635cd76b6b1b7d0cc98 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> re-land 5578 w/ pipe fix



git-svn-id: http://skia.googlecode.com/svn/trunk@5580 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c75c36a14b5dcc0dd5a82651d41792278cb27326 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> revert 5578 -- broke pipe



git-svn-id: http://skia.googlecode.com/svn/trunk@5579 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f1ab723033a186dc53434104a636c2dfac5fc863 18-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Change drawBitmapRect to take a float-src-rect instead of integer-src-rect. This
allows the client more control over the scaling. Because of virtual overrides
and wanting to keep the old call-sites up and running, this CL renames the
virtual entry-point to drawBitmapRectToRect, and downgrades drawBitmapRect to
a non-virtual helper function.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5578 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
d614c6a4e059bd9ea5b882ca845e886a82aeff5c 14-Sep-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> For a picture playback with nothing written, use an empty SkData.

This prevents crashing when attempting to access fOpData.

BUG=https://code.google.com/p/skia/issues/detail?id=870

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5550 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
1c6307e36fd96894bd11727c995f9cf9991a7be1 14-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix some nits from http://codereview.appspot.com/6506103/

git-svn-id: http://skia.googlecode.com/svn/trunk@5547 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
1d225f2b3352bb8f24661f62d2bd1cc7386a2f86 14-Sep-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Periodic_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5539 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8515e79a7699922e0f95f93e8cc11d4c88657c58 13-Sep-2012 rileya@google.com <rileya@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add R-Tree record flag to SkPicture, plus some cleanup/fixes in associated classes.
Review URL: https://codereview.appspot.com/6506103

git-svn-id: http://skia.googlecode.com/svn/trunk@5537 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
b4c2819671757044857ec477156699163025a353 06-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Record the initial matrix when we begin picture-playback, and concat with
that if we see a setMatrix command. In this way we can respect the caller's
overall playback matrix environment.
Review URL: https://codereview.appspot.com/6495092

git-svn-id: http://skia.googlecode.com/svn/trunk@5409 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
a27096b4740775ae141fd0abaf456d706065c5ee 30-Aug-2012 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Skia_Nightly_House_Keeping

git-svn-id: http://skia.googlecode.com/svn/trunk@5346 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c9ab987efcb7e8b69237d565f73c28c137610232 29-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement multi-threaded picture playback via cloning.

The CL adds SkPicture.clone() which produces a thread-safe copy by
creating a shallow copy of the thread-safe data within the picture and
a deep copy of the data that is not (e.g. SkPaint). This implementation
re-flattens the paints when cloning instead of retaining the flattened
paints from the recording process.

Changes were also needed to various classes to ensure thread safety

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5335 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
fbfcd5602128ec010c82cb733c9cdc0a3254f9f3 23-Aug-2012 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)

This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
3b3e895df6f8ee0f33010367c215944cd16a8334 16-Aug-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove EdgeType enum. Unimportant distinction, and removing speeds up quickReject
Review URL: https://codereview.appspot.com/6448161

git-svn-id: http://skia.googlecode.com/svn/trunk@5140 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
21830d90096d2dccc4168d99a427e78035ce942a 07-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor Bitmap Storage for SkPicture using SkPipe's design.

Refactor Picture and Pipe bitmap storage into common data structure

Update SkFlattenable buffers to be more modular.

This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4994 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
c73dd5c6880739f26216f198c757028fd28df1a4 07-Aug-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update SkFlattenable buffers to be more modular.

This CL is an effort to stage the conversion to named
parameters for all SkFlattenable commands. This particular
stage only does the following two things...

1. Move flattenable buffers from SkFlattenable.h into
their own header.
2. Update and Add new read write methods for better clarity
and convenience.

BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
1554360a9511d996e1618d19c163c810ef3f128c 02-Aug-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Store more behavior of SkFlatDictionary in SkFlatController.

Code refactoring for simplicity.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4929 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f4cc18726b52a76ba18c07a6490851c4a5e38835 23-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkTRefArray to share readonly data between pictures
Review URL: https://codereview.appspot.com/6351121

git-svn-id: http://skia.googlecode.com/svn/trunk@4720 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ddf98a88340a7e453eef4e3c236c82a5766a5f01 21-Jul-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use SkData to share between record and playback
use SkReader32 on the stack, as a step towards thread-reentrant playback



git-svn-id: http://skia.googlecode.com/svn/trunk@4711 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
4e6dfa51525e174d79cb88800d8e5f2c88291270 16-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding bracketing save/restore calls to SkPicture at record time and
preparing tests for enforcing save/restore balancing constraints on SkPicture

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4618 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
9fa4d0cca9b27d4ffb510096b37a69d78f88dfc6 09-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding sanity checks on restore offsets in SkPicturePlayback::draw

Review URL: http://codereview.appspot.com/6382044/
BUG=http://code.google.com/p/chromium/issues/detail?id=133432



git-svn-id: http://skia.googlecode.com/svn/trunk@4496 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
34342f6f5127122ecc32166dcffa7f3d2a45c387 25-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> export flags on the state of the world when a picture was serialized.
e.g. don't read/write functionptrs in that case (sizeof may be different for one)
Review URL: https://codereview.appspot.com/6331050

git-svn-id: http://skia.googlecode.com/svn/trunk@4318 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6756209ee0a0103d395ac908edbdcf5268b920da 22-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expand header in serialized pictures
Make chunk/tag reading allow for optional and (somewhat) out-of-order chunks.
Return empty picture instead of throwing on error
Review URL: https://codereview.appspot.com/6329049

git-svn-id: http://skia.googlecode.com/svn/trunk@4308 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ed38495c7cf5bdeb2843b6f1f090579fbefe497d 22-Jun-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add PictInfo chunk to serialized pictures
Review URL: https://codereview.appspot.com/6325048

git-svn-id: http://skia.googlecode.com/svn/trunk@4302 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
d2700eec7eb2e26beb206b88a0f0b6f3c5f49118 30-May-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactor dictionaries for use by entities other than just SkPicture
Review URL: https://codereview.appspot.com/6101043

git-svn-id: http://skia.googlecode.com/svn/trunk@4077 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2d8c757f5c169108a9557de1c95d17790cc31eed 18-Apr-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Remove unecessary virtual calls by having SkPicture use SkReader32 directly.
Review URL: https://codereview.appspot.com/6048046

git-svn-id: http://skia.googlecode.com/svn/trunk@3722 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2b2ede3e713065e1bac461787b0aafb03eaf871f 12-Apr-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Decouple the SkFlattenable from SkReader32/SkWriter32.

The current impl for SkFlattenable read/write buffers is
that they extend from SkReader32 and SkWriter32, but that
dependency must be abstract if we are to add any other
serialization format.
Review URL: https://codereview.appspot.com/5999045

git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
5efe0cb04961ef98fbe520ee732fbe50b4195ad3 10-Apr-2012 tomhudson@google.com <tomhudson@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Clean up more Visual Studio warnings, including apparent bug in Arithmetic mode.



git-svn-id: http://skia.googlecode.com/svn/trunk@3645 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
9efd9a048aebaa6681afb76b18e1a7dd642078d3 30-Jan-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> extend fastbounds impls to include maskfilters and drawloopers. This allows
us to perform quick-rejects when drawing objects with shadows (esp. text).
WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the
shadow layer.



git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
83ab49556ffc83fd3b2c1142db264362d21e6b19 11-Nov-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> record doAA param for clipRect and clipPath in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@2669 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
56c69773aea56c6c6bd47bc7e7970dd081205184 08-Nov-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Update files to use SK_BUILD_FOR_ANDROID.

This CL also removes any unecessary references to
the ANDROID definition.
Review URL: http://codereview.appspot.com/5354049

git-svn-id: http://skia.googlecode.com/svn/trunk@2629 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
a5adf5385dc6958bda4dad47f59c1c45bd98c627 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use templated skipT() for skipping structs within a reader



git-svn-id: http://skia.googlecode.com/svn/trunk@2238 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f0b5e1190af9807a027c0adba2f1380663c8e910 07-Sep-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add drawBitmapNine to canvas
will add to device soon I think



git-svn-id: http://skia.googlecode.com/svn/trunk@2233 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
45482d1d2b97de185df137a1db40cbe5a62313a5 29-Aug-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> fix pictures to not skip-over clip ops that might expand the clip



git-svn-id: http://skia.googlecode.com/svn/trunk@2187 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976e 28-Jul-2011 epoger@google.com <epoger@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Automatic update of all copyright notices to reflect new license terms.

I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
90751c57886406279e3aef7a57e72af35b3e77cf 27-Jul-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> use safeunref on typefaces, since Deserialize might return NULL.



git-svn-id: http://skia.googlecode.com/svn/trunk@1969 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
5667afc5cb4a8cd15a27667f222b6d9c94d61c38 27-Jun-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove drawShape from canvas api



git-svn-id: http://skia.googlecode.com/svn/trunk@1723 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
e9e08cc7b29f97ee9e823e68c3daf0f55c84b21a 29-Apr-2011 mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> rename SkPtrRecorder and related wrappers to SkPtrSet, since that is the pattern
is it providing. Also add a templated wrapper to handle typecasting of ptr types.



git-svn-id: http://skia.googlecode.com/svn/trunk@1214 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
f5dbe2f00f853c6a1719924bdd0c33335a53423a 15-Apr-2011 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Upstream android changes.

reviewed by: reed


git-svn-id: http://skia.googlecode.com/svn/trunk@1134 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
2a98181f048c11f21f52fbd99f803f5fd6118261 14-Apr-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add SkCanvas::clear(SkColor color) to call the new virtual clear on device.



git-svn-id: http://skia.googlecode.com/svn/trunk@1131 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
82065d667f64e232bcde2ad849756a6096fcbe6f 07-Feb-2011 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites with
SkSafeRef() and SkSafeUnref().

This is basically a bug waiting to happen. An optimizing compiler can remove
checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on
precisely this check...

void SkRefCnt::safeRef() {
if (this) {
this->ref();
}
}

Since a compiler might skip the if-clause, it breaks the intention of this
method, hence its removal.

static inline void SkSafeRef(SkRefCnt* obj) {
if (obj) {
obj->ref();
}
}

This form is not ignored by an optimizing compile, so we use it instead.




git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
cb60844b34766aad4151df5e87c144d4a57e9abe 04-Dec-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add drawData() to canvas, to record data blobs



git-svn-id: http://skia.googlecode.com/svn/trunk@452 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
e18f9dff7a1827c79e7c6fd938157c2fedd47d13 07-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> initialize fShapeCount in init()



git-svn-id: http://skia.googlecode.com/svn/trunk@252 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8433b5db1a0f94cd92d2606817d5374ab899b87a 03-Jul-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> more checks for null shapes in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@249 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
0ad336f8c6f6f0325eee309c9cd501ea432cc33e 29-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shape flatten so they work properly in pictures
add flatten/unflatten to matrix



git-svn-id: http://skia.googlecode.com/svn/trunk@242 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
09b84a00f79979142fbcfd691ccaeb5e5600922d 26-Jun-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add shape recording to pictuures (sans serialization)



git-svn-id: http://skia.googlecode.com/svn/trunk@240 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
04225dcdec5a01bc9889b7fb03e7aceb87fccc6e 20-Mar-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> build with -Wall
fix associated warnings (at least on gcc 4.0.1)



git-svn-id: http://skia.googlecode.com/svn/trunk@129 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
ae814c809e1c4e02a1876c39065775c8c7d00f96 13-Feb-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> add picture-record option to speedup complex clips
remove hack that stopped picture-playback from culling on clipPath() result



git-svn-id: http://skia.googlecode.com/svn/trunk@92 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
6e073b9e2b70d6bbf8a06050fff1364827204f08 06-Jan-2009 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove defines for strcasecmp (issue #5)
support setMatrix in pictures



git-svn-id: http://skia.googlecode.com/svn/trunk@53 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp
8a1c16ff38322f0210116fa7293eb8817c7e477e 17-Dec-2008 reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81> grab from latest android



git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicturePlayback.cpp