History log of /external/skia/src/core/SkPicture.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8715d47e247bf890ee78af0774ae7e8698146b67 17-Feb-2016 msarett <msarett@google.com> Make SkPicture/SkImageGenerator default to SkCodec

Remove reference to SkImageDecoder from SkPicture. Make the default
InstallPixelRefProc passed to CreateFromStream use
SkImageGenerator::NewFromEncoded instead.

Make SkImageGenerator::NewFromEncoded create an SkCodecImageGenerator.
Remove the old version that used SkImageDecoder.

Remove all versions of lazy_decode_bitmap/LazyDecodeBitmap. The default
now behaves lazily.

Update all clients to use the default.

Move SkImageDecoderGenerator into KtxTest.cpp, and use it directly.

This is a rebased version of:
https://codereview.chromium.org/1671193002/

TBR=reed@google.com

BUG=skia:4691
BUG=skia:4290
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1699183004

Review URL: https://codereview.chromium.org/1699183004
/external/skia/src/core/SkPicture.cpp
1de415f2c33febbac668500afbbb0c9b120c125f 10-Feb-2016 kjlubick <kjlubick@google.com> Revert of Make SkPicture/SkImageGenerator default to SkCodec (patchset #7 id:120001 of https://codereview.chromium.org/1671193002/ )

Reason for revert:
Breaks Ubuntu and Mac CMAKE

Original issue's description:
> Make SkPicture/SkImageGenerator default to SkCodec
>
> Remove reference to SkImageDecoder from SkPicture. Make the default
> InstallPixelRefProc passed to CreateFromStream use
> SkImageGenerator::NewFromEncoded instead.
>
> Make SkImageGenerator::NewFromEncoded create an SkCodecImageGenerator.
> Remove the old version that used SkImageDecoder.
>
> Remove all versions of lazy_decode_bitmap/LazyDecodeBitmap. The default
> now behaves lazily.
>
> Update all clients to use the default.
>
> Move SkImageDecoderGenerator into KtxTest.cpp, and use it directly.
>
> BUG=skia:4691
> BUG=skia:4290
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1671193002
>
> Committed: https://skia.googlesource.com/skia/+/026388a01864c74208ad57d1ba4f711602d101c6

TBR=msarett@google.com,reed@google.com,scroggo@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4691

Review URL: https://codereview.chromium.org/1685963004
/external/skia/src/core/SkPicture.cpp
026388a01864c74208ad57d1ba4f711602d101c6 10-Feb-2016 scroggo <scroggo@google.com> Make SkPicture/SkImageGenerator default to SkCodec

Remove reference to SkImageDecoder from SkPicture. Make the default
InstallPixelRefProc passed to CreateFromStream use
SkImageGenerator::NewFromEncoded instead.

Make SkImageGenerator::NewFromEncoded create an SkCodecImageGenerator.
Remove the old version that used SkImageDecoder.

Remove all versions of lazy_decode_bitmap/LazyDecodeBitmap. The default
now behaves lazily.

Update all clients to use the default.

Move SkImageDecoderGenerator into KtxTest.cpp, and use it directly.

BUG=skia:4691
BUG=skia:4290
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1671193002

Review URL: https://codereview.chromium.org/1671193002
/external/skia/src/core/SkPicture.cpp
b906daf112416c1698a79cf51aa70fe11aa19d0a 29-Sep-2015 herb <herb@google.com> Have /src files use header directly.

BUG=skia:

Review URL: https://codereview.chromium.org/1373253003
/external/skia/src/core/SkPicture.cpp
e6e41a8a19976a822de36379db23184ff2f28601 28-Sep-2015 herb <herb@google.com> Move SkAtomics.h to private.

There are no API changes.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/1369333004
/external/skia/src/core/SkPicture.cpp
385fe4d4b62d7d1dd76116dd570df3290a2f487b 26-Aug-2015 halcanary <halcanary@google.com> Style Change: SkNEW->new; SkDELETE->delete
DOCS_PREVIEW= https://skia.org/?cl=1316123003

Review URL: https://codereview.chromium.org/1316123003
/external/skia/src/core/SkPicture.cpp
0c263fa9f80b9a20b6f6161a2e9a263c2c586a9b 18-Aug-2015 mtklein <mtklein@chromium.org> Deduplicate typefaces across sub-pictures

Old flow to serialize a picture:
1) serialize picture ops
2) serialize all sub pictures recursively
3) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go
4) serialize the factories and typefaces
5) serialize the bytes from 3)

This allows the data in step 5) to refer to the deduplicated factories and typefaces from step 4). But, each sub picture in step 2) is completely siloed, so they can't dedup with the parent picture or each other.

New flow:
1) serialize picture ops
2) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go
3) dummy-serialize sub pictures into /dev/null, with the effect of adding any new typefaces to our dedup set
4) serialize the factories and typefaces
5) serialize the bytes from 2)
6) serialize all sub pictures recursively, with perfect deduplication because of step 3).

Now all typefaces in the top-level picture and all sub pictures recursively should end up deduplicated in the top-level typeface set.

Decoding changes are similar: we just thread through the top-level typefaces to the sub pictures. What's convenient / surprising is that this new code correctly reads old pictures if we just have each picture prefer its local typeface set over the top-level one: old pictures always just use their own typefaces, and new pictures always use the top-level ones.

BUG=skia:4092

Review URL: https://codereview.chromium.org/1233953004
/external/skia/src/core/SkPicture.cpp
2ecc0005364fcd07ef8eec62521f4dbcadff675e 14-Jul-2015 fmalita <fmalita@chromium.org> Preserve SKP cullrects on deserialization

Let's not ignore the offset.

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

Review URL: https://codereview.chromium.org/1235953004
/external/skia/src/core/SkPicture.cpp
446ee67fda73b11281b8e28a68edec811347c0c5 16-Jun-2015 hendrikw <hendrikw@chromium.org> skia: Add runtime option to disable picture IO security precautions

Replaced the compile time file IO security setting with a runtime setting.

Unfortunately the setting is global.

Review URL: https://codereview.chromium.org/1183853003
/external/skia/src/core/SkPicture.cpp
9db912c2ac2ab53bc24f2d50a3e5a80162051dcc 19-May-2015 mtklein <mtklein@chromium.org> Sketch splitting SkPicture into an interface and SkBigPicture.

Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
- serialization and deserialization
- unique IDs

Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b

Latest blink_linux_rel:

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248

Committed: https://skia.googlesource.com/skia/+/15877b6eae33a9282458bdb904a6d00440eca0ec

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/62015

Review URL: https://codereview.chromium.org/1112523006
/external/skia/src/core/SkPicture.cpp
72743b165424efc4ef6f6614add9033ea1ef31db 18-May-2015 mtklein <mtklein@google.com> Revert of Sketch splitting SkPicture into an interface and SkBigPicture. (patchset #25 id:480001 of https://codereview.chromium.org/1112523006/)

Reason for revert:
win_chromium_compile_dbg_ng

FAILED: ninja -t msvc -e environment.x86 -- E:\b\build\goma/gomacc "E:\b\depot_tools\win_toolchain\vs2013_files\VC\bin\amd64_x86\cl.exe" /nologo /showIncludes /FC @obj\third_party\skia\src\core\skia.SkBitmapHeap.obj.rsp /c ..\..\third_party\skia\src\core\SkBitmapHeap.cpp /Foobj\third_party\skia\src\core\skia.SkBitmapHeap.obj /Fdobj\skia\skia.cc.pdb
e:\b\build\slave\win\build\src\third_party\skia\include\core\skpicture.h(176) : error C2487: 'CURRENT_PICTURE_VERSION' : member of dll interface class may not be declared with dll interface

Original issue's description:
> Sketch splitting SkPicture into an interface and SkBigPicture.
>
> Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
> These cover about 89% of draw calls from Blink SKPs,
> and about 25% of draw calls from our GMs.
>
> SkPicture handles:
> - serialization and deserialization
> - unique IDs
>
> Everything else is left to the subclasses:
> - playback(), cullRect()
> - hasBitmap(), hasText(), suitableForGPU(), etc.
> - LayerInfo / AccelData if applicable.
>
> The time to record a 1-op picture improves a good chunk
> (2 mallocs to 1), and the time to record a 0-op picture
> greatly improves (2 mallocs to none):
>
> picture_overhead_draw: 450ns -> 350ns
> picture_overhead_nodraw: 300ns -> 90ns
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b
>
> Latest blink_linux_rel:
>
> http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248
>
> Committed: https://skia.googlesource.com/skia/+/15877b6eae33a9282458bdb904a6d00440eca0ec

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

Review URL: https://codereview.chromium.org/1130283004
/external/skia/src/core/SkPicture.cpp
15877b6eae33a9282458bdb904a6d00440eca0ec 18-May-2015 mtklein <mtklein@chromium.org> Sketch splitting SkPicture into an interface and SkBigPicture.

Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
- serialization and deserialization
- unique IDs

Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b

Latest blink_linux_rel:

http://build.chromium.org/p/tryserver.blink/builders/linux_blink_rel/builds/61248

Review URL: https://codereview.chromium.org/1112523006
/external/skia/src/core/SkPicture.cpp
c30806f9f16e6400036fdc25842b73a9d2a41cb3 14-May-2015 mtklein <mtklein@chromium.org> Perform SkPicture analysis lazily.

I realized when writing the comment on https://crrev.com/1135363002/
that I'd really just sketched out the entire thing, so I couldn't help
but actually write up a working CL. How does this do for your benchmark?

BUG=chromium:487075

Review URL: https://codereview.chromium.org/1130123006
/external/skia/src/core/SkPicture.cpp
b7ed856fadae52401d3bbcac22cfc3391780ace8 08-May-2015 reed <reed@chromium.org> Revert of Sketch splitting SkPicture into an interface and SkBigPicture. (patchset #22 id:420001 of https://codereview.chromium.org/1112523006/)

Reason for revert:
speculative revert to fix failures in DEPS roll

Original issue's description:
> Sketch splitting SkPicture into an interface and SkBigPicture.
>
> Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
> These cover about 89% of draw calls from Blink SKPs,
> and about 25% of draw calls from our GMs.
>
> SkPicture handles:
> - serialization and deserialization
> - unique IDs
>
> Everything else is left to the subclasses:
> - playback(), cullRect()
> - hasBitmap(), hasText(), suitableForGPU(), etc.
> - LayerInfo / AccelData if applicable.
>
> The time to record a 1-op picture improves a good chunk
> (2 mallocs to 1), and the time to record a 0-op picture
> greatly improves (2 mallocs to none):
>
> picture_overhead_draw: 450ns -> 350ns
> picture_overhead_nodraw: 300ns -> 90ns
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/c92c129ff85b05a714bd1bf921c02d5e14651f8b

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

Review URL: https://codereview.chromium.org/1130333002
/external/skia/src/core/SkPicture.cpp
c92c129ff85b05a714bd1bf921c02d5e14651f8b 07-May-2015 mtklein <mtklein@chromium.org> Sketch splitting SkPicture into an interface and SkBigPicture.

Adds small pictures for drawRect(), drawTextBlob(), and drawPath().
These cover about 89% of draw calls from Blink SKPs,
and about 25% of draw calls from our GMs.

SkPicture handles:
- serialization and deserialization
- unique IDs

Everything else is left to the subclasses:
- playback(), cullRect()
- hasBitmap(), hasText(), suitableForGPU(), etc.
- LayerInfo / AccelData if applicable.

The time to record a 1-op picture improves a good chunk
(2 mallocs to 1), and the time to record a 0-op picture
greatly improves (2 mallocs to none):

picture_overhead_draw: 450ns -> 350ns
picture_overhead_nodraw: 300ns -> 90ns

BUG=skia:

Review URL: https://codereview.chromium.org/1112523006
/external/skia/src/core/SkPicture.cpp
2420e10d5a86da1964a05a749ab9bb625ae9f13e 29-Apr-2015 mtklein <mtklein@chromium.org> Straighten out SkPicture::AccelData APIs.

Must have been we needed them to be weird (mutable, const setter) before.
It doesn't look like that's necessary now... we can just pass it to the
constructor.

BUG=skia:

Review URL: https://codereview.chromium.org/1112833003
/external/skia/src/core/SkPicture.cpp
00c2af8b731085a7fe456e689b70f019a34ef7dd 27-Apr-2015 mtklein <mtklein@chromium.org> Reduce ref counting in SkPictureRecorder.

This may be a small help to slimming paint:

picture_overhead_draw 1.25us -> 1.22us 0.98x
picture_overhead_nodraw 318ns -> 276ns 0.87x

It certainly cannot hurt performance.

BUG=chromium:470553

TBR=reed@google.com
No public API changes.

Review URL: https://codereview.chromium.org/1098183003
/external/skia/src/core/SkPicture.cpp
de8667b81f2fed2fbecba68e751756a48df5e0dd 27-Apr-2015 jbroman <jbroman@chromium.org> Reduce sizeof(SkPicture::Analysis) from 24 bytes to 2 bytes.

This saves "up to" 22 bytes per SkPicture.

Due to alignment, this reduces sizeof(SkPicture):
- from 88 to 72 bytes on Linux x64
- from 68 to 48 bytes on Android
(with Chrome's build settings)

It also somewhat simplifies the GPU veto logic.

BUG=skia:

[mtklein] No public API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/1060863004
/external/skia/src/core/SkPicture.cpp
31d36b087168486228093f0322898953072f36f2 22-Apr-2015 senorblanco <senorblanco@chromium.org> Remove MSAA check from Ganesh veto (dashed paths are no longer slow).

R=egdaniel@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1098753004
/external/skia/src/core/SkPicture.cpp
98b8485a4cc911420e20af2670d21a5478a06264 22-Apr-2015 mtklein <mtklein@chromium.org> O(1) SkPictureUtils::ApproxBytesUsed()

Chrome wants to call this more often, and it's quite slow today.

Seems like this could be clearer if SkPictureUtils::ApproxBytesUsed() were SkPicture::approxBytesUsed().

BUG=chromium:471873

Review URL: https://codereview.chromium.org/1090943004
/external/skia/src/core/SkPicture.cpp
e35268ef4cdaa29600671cdf9d0ebb43b622d1a3 07-Apr-2015 mtklein <mtklein@chromium.org> Send SkPicture deletion message lazily.

If no one has read the picture's unique ID, there's no point invalidating it.

This is the same trick we pull with SkPixelRefs.

Before:
26M 1 1.49µs 1.6µs 1.77µs 6.25µs 42% picture_overhead_draw
13M 32 742ns 749ns 756ns 823ns 2% picture_overhead_nodraw

After:
26M 1 1.27µs 1.33µs 1.49µs 5.51µs 45% picture_overhead_draw
14M 43 677ns 680ns 681ns 701ns 1% picture_overhead_nodraw

BUG=skia:

Review URL: https://codereview.chromium.org/1061283002
/external/skia/src/core/SkPicture.cpp
98b0315ad6beb7dbc311fd365ffe5c24d7ef2d0f 26-Jan-2015 robertphillips <robertphillips@google.com> Alter gpu veto

This CL unifies the treatment of the dashed and concave paths.

Before:
TP 28 FP 15 TN 8 FN 3 IND 3

After:
TP 28 FP 18 TN 7 FN 2 IND 2

One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).

Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927

Review URL: https://codereview.chromium.org/875913002
/external/skia/src/core/SkPicture.cpp
65327efb5bf42b5b9acaa8198e6c5252b07b0ada 26-Jan-2015 robertphillips <robertphillips@google.com> Revert of Alter gpu veto (patchset #1 id:1 of https://codereview.chromium.org/875913002/)

Reason for revert:
Failing tests

Original issue's description:
> Alter gpu veto
>
> This CL unifies the treatment of the dashed and concave paths.
>
> Before:
> TP 28 FP 15 TN 8 FN 3 IND 3
>
> After:
> TP 28 FP 18 TN 7 FN 2 IND 2
>
> One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).
>
> Committed: https://skia.googlesource.com/skia/+/87a6a8e18c7d5bbc94f478b44c53dc0e0549f927

TBR=egdaniel@google.com,bsalomon@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/879483003
/external/skia/src/core/SkPicture.cpp
87a6a8e18c7d5bbc94f478b44c53dc0e0549f927 26-Jan-2015 robertphillips <robertphillips@google.com> Alter gpu veto

This CL unifies the treatment of the dashed and concave paths.

Before:
TP 28 FP 15 TN 8 FN 3 IND 3

After:
TP 28 FP 18 TN 7 FN 2 IND 2

One of the TrueNegatives that became a FalsePositive was the motivation use case (the Chromium busy spinner).

Review URL: https://codereview.chromium.org/875913002
/external/skia/src/core/SkPicture.cpp
783fe16b8ed1cd1cff34eacc33296874a32f293b 07-Jan-2015 robertphillips <robertphillips@google.com> Rename SkDrawPictureCallback to SkPicture::AbortCallback

Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c

Review URL: https://codereview.chromium.org/829983003
/external/skia/src/core/SkPicture.cpp
8ea6dabbb15ef276645b7a6ebab44a4a532ac990 07-Jan-2015 reed <reed@chromium.org> Revert of Rename SkDrawPictureCallback to SkPicture::AbortCallback (patchset #2 id:20001 of https://codereview.chromium.org/829983003/)

Reason for revert:
speculative revert to unblock DEPS roll

Original issue's description:
> Rename SkDrawPictureCallback to SkPicture::AbortCallback
>
> Committed: https://skia.googlesource.com/skia/+/7ef197255deb4e2fa64c03c7130d56ddf164e83c

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

Review URL: https://codereview.chromium.org/824013004
/external/skia/src/core/SkPicture.cpp
7ef197255deb4e2fa64c03c7130d56ddf164e83c 06-Jan-2015 robertphillips <robertphillips@google.com> Rename SkDrawPictureCallback to SkPicture::AbortCallback

Review URL: https://codereview.chromium.org/829983003
/external/skia/src/core/SkPicture.cpp
5e8b1688eeaa343848d255daee2b1fc26eb54f57 21-Dec-2014 reed <reed@chromium.org> remove dead SK_LEGACY_ENCODE_BITMAP flag

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/820903002
/external/skia/src/core/SkPicture.cpp
d55b59574854055fae275a5300a352d61978c8a6 19-Dec-2014 reed <reed@google.com> fix SK_LEGACY_ENCODE_BITMAP missing cast

BUG=skia:
TBR=
NOTRY=True
NOTREECHECKS=True

Review URL: https://codereview.chromium.org/815223002
/external/skia/src/core/SkPicture.cpp
53b9e2e0f29e5613f8d8d0eeb4a4b4d4a8a40e91 19-Dec-2014 reed <reed@google.com> add const to encodePixels pixel parameter

BUG=skia:

Review URL: https://codereview.chromium.org/788143007
/external/skia/src/core/SkPicture.cpp
895c43b28b27bb3124db3d32efd0c7219eb4a3cb 11-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Review URL: https://codereview.chromium.org/784643002
/external/skia/src/core/SkPicture.cpp
303044579913eacc177d4b28a674121725c565bb 09-Dec-2014 scroggo <scroggo@google.com> Revert of Replace EncodeBitmap with an interface. (patchset #12 id:210001 of https://codereview.chromium.org/784643002/)

Reason for revert:
Failing serialization tasks in DM:

http://build.chromium.org/p/client.skia/builders/Test-Win8-ShuttleA-GTX660-x86-Debug/builds/352/steps/dm/logs/stdio

Original issue's description:
> Replace EncodeBitmap with an interface.
>
> Gives more flexibility to the caller to decide whether to use the
> encoded data returned by refEncodedData().
>
> Provides an implementation that supports the old version of
> SkPicture::serialize().
>
> TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely
>
> BUG=skia:3190
>
> Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1
>
> Committed: https://skia.googlesource.com/skia/+/02b217f80b01a7dda8493422e5257c36a9ce8464

TBR=reed@google.com,rmistry@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:3190

Review URL: https://codereview.chromium.org/783393004
/external/skia/src/core/SkPicture.cpp
02b217f80b01a7dda8493422e5257c36a9ce8464 09-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1

Review URL: https://codereview.chromium.org/784643002
/external/skia/src/core/SkPicture.cpp
c0708cb7bcc22a6ad14fc3c2198d8e00d71c6754 09-Dec-2014 robertphillips <robertphillips@google.com> Revert of Replace EncodeBitmap with an interface. (patchset #11 id:190001 of https://codereview.chromium.org/784643002/)

Reason for revert:
Compilation is failing on some bots

Original issue's description:
> Replace EncodeBitmap with an interface.
>
> Gives more flexibility to the caller to decide whether to use the
> encoded data returned by refEncodedData().
>
> Provides an implementation that supports the old version of
> SkPicture::serialize().
>
> TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely
>
> BUG=skia:3190
>
> Committed: https://skia.googlesource.com/skia/+/0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1

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

Review URL: https://codereview.chromium.org/787833002
/external/skia/src/core/SkPicture.cpp
0c4aba6edb9900c597359dfa49d3ce4a41bc5dd1 09-Dec-2014 scroggo <scroggo@google.com> Replace EncodeBitmap with an interface.

Gives more flexibility to the caller to decide whether to use the
encoded data returned by refEncodedData().

Provides an implementation that supports the old version of
SkPicture::serialize().

TODO: Update Chrome, so we can remove SK_LEGACY_ENCODE_BITMAP entirely

BUG=skia:3190

Review URL: https://codereview.chromium.org/784643002
/external/skia/src/core/SkPicture.cpp
88fd0fbcccea615f2d2cd61a121ac9e3185adfe4 01-Dec-2014 mtklein <mtklein@chromium.org> Bump min picture version.

Chrome Stable is M39, which produces picture format v35:
https://chromium.googlesource.com/skia/+/chrome/m39/include/core/SkPicture.h

We don't need any code to deal with pictures older than v35.

(When M40 goes stable, we can step up to v37, the current latest version.)

BUG=skia:

Review URL: https://codereview.chromium.org/770703002
/external/skia/src/core/SkPicture.cpp
1bdfd3f4f09e47364f76d3f08177b1ce844ac786 24-Nov-2014 reed <reed@google.com> option to return drawable from recording

patch from issue 747033005 at patchset 80001 (http://crrev.com/747033005#ps80001)

BUG=skia:

Review URL: https://codereview.chromium.org/732653004
/external/skia/src/core/SkPicture.cpp
04c96950554b4e416755c5bc23022674518a6e8b 24-Nov-2014 mtklein <mtklein@chromium.org> Remove Picture deletion listeners.

Looks like we can just have ~SkPicture put the message on the bus directly.

BUG=skia:3144

Review URL: https://codereview.chromium.org/751663002
/external/skia/src/core/SkPicture.cpp
19ac76753ec9f71a8eb0b58cf0450fd4e59f2a7c 21-Nov-2014 mtklein <mtklein@chromium.org> SkPicture::SnapshotArray doesn't really stand to benefit from refcounting.

BUG=skia:

Review URL: https://codereview.chromium.org/748803005
/external/skia/src/core/SkPicture.cpp
b7ee349f108040fbd5cb71d891d5b74a1843b0bc 21-Nov-2014 mtklein <mtklein@chromium.org> SkData -> SkPicture::SnapshotArray

Restores type safety with all the same features.

(Also note, less code: 29 insertions, 50 deletions.)

BUG=skia:

Review URL: https://codereview.chromium.org/746553002
/external/skia/src/core/SkPicture.cpp
41d2c2e434d11e73f66c597913c29ea1fb3fa879 21-Nov-2014 reed <reed@google.com> simplify uniqueID code in picture

patch from issue 750003002 at patchset 1 (http://crrev.com/750003002#ps1)

BUG=skia:

Review URL: https://codereview.chromium.org/752573002
/external/skia/src/core/SkPicture.cpp
78e276889795454891cbba48ab11927968114953 19-Nov-2014 reed <reed@google.com> Allow pictures to have a full bounds

This reverts commit 7c4cdd2c5b7b6c71fa0e7612594f7885f2dbf264.

BUG=skia:

Review URL: https://codereview.chromium.org/738083002
/external/skia/src/core/SkPicture.cpp
7c4cdd2c5b7b6c71fa0e7612594f7885f2dbf264 19-Nov-2014 reed <reed@google.com> Revert of allow pictures to have a full bounds (patchset #3 id:40001 of https://codereview.chromium.org/736583004/)

Reason for revert:
needed to update legacy width() helpers

Original issue's description:
> allow pictures to have a full bounds
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/7e76bff26e7c74902841ca4f607eb0b24a833a4a

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

Review URL: https://codereview.chromium.org/722043005
/external/skia/src/core/SkPicture.cpp
7e76bff26e7c74902841ca4f607eb0b24a833a4a 19-Nov-2014 reed <reed@google.com> allow pictures to have a full bounds

BUG=skia:

Review URL: https://codereview.chromium.org/736583004
/external/skia/src/core/SkPicture.cpp
6be2aa9a251bf6022570a03140f956655b3ef1da 18-Nov-2014 reed <reed@google.com> wip for drawables

Idea:

1. in its mutable recording state, keep a table of drawables on the side, and store an index in the record list.

2. In "immediate-mode" draw, just call the clients drawable directly (need access to our private list to turn the stored index into a proc)

3. when we "snap", we replace the list of drawables with a list of (sub) pictures, and then during playback of the snapped picture, we invoke a private drawable which just calls "drawPicture" on the index'd subpicture.

Review URL: https://codereview.chromium.org/727363003
/external/skia/src/core/SkPicture.cpp
c6ad9eefa0f8d0c2ede9884b446c65dde9b04dd1 17-Nov-2014 mtklein <mtklein@chromium.org> More SkPicture cleanup
- move field declarations together and pack them a little tighter
- get rid of fData
- remove dead code in debugger, including unused SkPicturePlayback subclass

There are now no more long-lived SkPictureData! (Really, there never were,
but now we don't pretend to support them.)

BUG=skia:

No API changes.
TBR=reed@google.com

Review URL: https://codereview.chromium.org/725143002
/external/skia/src/core/SkPicture.cpp
81f71b6630a9b7398bf983689436cccdd8dd3ff7 11-Nov-2014 robertphillips <robertphillips@google.com> Change where layer hoisting data is gathered

This CL:
1) removes the EXPERIMENTAL_optimize on SkCanvas & SkDevice
2) moves the saveLayer gathering step to endRecording
3) Replaces GPUOptimize with SkRecordComputeLayers
4) Update bench_pictures & render_pictures to provide the new flag

#2 also necessitated moving the BBH computation (and record optimization) out of SkPicture's ctor (and into endRecording)

Review URL: https://codereview.chromium.org/718443002
/external/skia/src/core/SkPicture.cpp
f7007b023d03de0693a39cba45ecdcc63eb9950d 04-Nov-2014 jvanverth <jvanverth@google.com> Enable distance field path rendering in Chrome.

- Add stat tracking for df-renderable paths
- Modify GPU rasterization veto to account for df-renderable paths
- Remove #define hiding df paths from Chromium and Android

BUG=skia:2935

Review URL: https://codereview.chromium.org/685113003
/external/skia/src/core/SkPicture.cpp
4d52afef5cf90a2fed3bb69db71675c6450ab397 03-Nov-2014 robertphillips <robertphillips@google.com> Shrink saveLayer device bounds when it supplies an explicit bounds and has a complex paint

This CL shrinks the bound computed for saveLayers that possess both an explicit
bound and a complex paint (e.g., one that affects transparent black). In this
case the bound of the layer should be the clipped explicit bound rather then
the clip prior/after the saveLayer/restore block.

In the following the first bound is the currently computed bound
while the second is the new/desired one:

For a 100x100 picture

saveLayer (no bound, no paint) [ 0 0 100 100 ] [ 50 50 100 100 ]
setMatrix (translate 50, 50) [ 0 0 100 100 ] [ 50 50 100 100 ]
saveLayer (bound of 0, 0, 50, 50 - complex paint) [ 0 0 100 100 ] [ 50 50 100 100 ]
restore [ 0 0 100 100 ] [ 50 50 100 100 ]
restore [ 0 0 100 100 ] [ 50 50 100 100 ]

Review URL: https://codereview.chromium.org/696763002
/external/skia/src/core/SkPicture.cpp
8e12656096fceeed8b3cc4284d57dea04893b455 01-Oct-2014 mtklein <mtklein@chromium.org> Remove DEPRECATED_beginRecording().

This removes:
1) ability to record old pictures with SkPictureRecorder;
2) a couple tests specific to the old backend.

The functionality of DEPRECATED_beginRecording() now lives in
(private) SkPicture::Backport(), which is the only place we
need it now.

BUG=skia:
TBR=reed@google.com

Review URL: https://codereview.chromium.org/618303002
/external/skia/src/core/SkPicture.cpp
46616af01b412ea984a516fda1ed8ec08e689f29 30-Sep-2014 mtklein <mtklein@chromium.org> Strip old backend recording down to essentials

Feature-wise, this removes:
1) BBH support;
2) peephole optimizations;
3) record-time text op specializations;
4) the guarantee that SkPaints are flattened.

This deletes the optimizations GM, which only exists to test the peepholes of
the old backend. SkRecord optimizations are unit tested, and if that ever fails we
can think about adding another GM like this, but they're different enough we'd
want to start from scratch anyway.

We need to keep the code that plays back the specialized text ops around for
a while for compatibility with existing .SKPs that have those ops recorded.

BUG=skia:

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot
R=robertphillips@google.com, reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/617953002
/external/skia/src/core/SkPicture.cpp
8de02f4bf3dfb6178132231d03caec9f9a5d0beb 30-Sep-2014 mtklein <mtklein@chromium.org> Clean up SK_PICTURE_USE_SK_RECORD and SK_PICTURE_OPTIMIZE_SK_RECORD.

This folds the code through as if they were defined, which is the explicit
state in both our build and Chrome's.

This leaves the EXPERIMENTAL_ and DEPRECATED_ hooks in to be cleaned up or
privatized later.

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/616033002
/external/skia/src/core/SkPicture.cpp
5bc760a6a6a61ff462a204e0c051ad6147760223 30-Sep-2014 mtklein <mtklein@chromium.org> Remove support for SkPicture::clone().

This folds SK_SUPPORT_LEGACY_PICTURE_CLONE through as undefined.

Chrome's not used clone() for a month or two, and we don't use it ourselves.
Don't think Android ever did.

CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/620533002
/external/skia/src/core/SkPicture.cpp
4fc5b8811e8c2a09fcbb3714e44697079f9ec692 15-Sep-2014 mtklein <mtklein@chromium.org> SkPicture::PathCounter is O(N^2) for pictures nested N deep. Fix that.

We've already done the analysis for child pictures. Don't do it again.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/573833002
/external/skia/src/core/SkPicture.cpp
81940de68893e6a643301f9930db630764729ea8 15-Sep-2014 mtklein <mtklein@chromium.org> Add flag to call SkRecordOptimize on new pictures.

As usual it's enabled by default in the Skia tree. Will flip in Chrome after this rolls.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/573773002
/external/skia/src/core/SkPicture.cpp
97bf60ff7f3dd7d6e782b706ec94efb2b414b27e 11-Sep-2014 mtklein <mtklein@chromium.org> Delay any SkRecordOptimize until after SkRecord has stuck.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/561993002
/external/skia/src/core/SkPicture.cpp
93f52a69443f9be16f4e98c21d1f6cf760a65f00 08-Sep-2014 mtklein <mtklein@chromium.org> Turn on the save-layer optimization.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/551853002
/external/skia/src/core/SkPicture.cpp
87c4138fae37ba6b7e4de7acc3fce19524d726ea 08-Sep-2014 mtklein <mtklein@chromium.org> Turn on all pixel-perfect SkRecord optimizations.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/550083006
/external/skia/src/core/SkPicture.cpp
49f085dddff10473b6ebf832a974288300224e60 05-Sep-2014 bsalomon <bsalomon@google.com> "NULL !=" = NULL

R=reed@google.com

Author: bsalomon@google.com

Review URL: https://codereview.chromium.org/544233002
/external/skia/src/core/SkPicture.cpp
c5ba71d2e5cd426def66fa49dcf003e5b2c98dc7 04-Sep-2014 robertphillips <robertphillips@google.com> Change SkPicture::draw to playback

R=reed@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/540963002
/external/skia/src/core/SkPicture.cpp
2ed8a75c284fd8e74912de67691acf97bfb7a7b7 03-Sep-2014 robertphillips <robertphillips@google.com> Remove use of EXPERIMENTAL_getActiveOps from layer hoisting code

This is getting in the way of switching to the SkRecord backend and is of questionable value.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/539693002
/external/skia/src/core/SkPicture.cpp
5ee785d9c7a39b9b8d3ae48b5da170dcef848e11 02-Sep-2014 djsollen <djsollen@google.com> Remove legacy (and also broken) SkPicture constructor.

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

Author: djsollen@google.com

Review URL: https://codereview.chromium.org/532703004
/external/skia/src/core/SkPicture.cpp
a8d7f0b13cd4c6d773fcf055fe17db75d260fa05 29-Aug-2014 robertphillips <robertphillips@google.com> Try out scalar picture sizes

This paves the way for removing the 'fTile' parameter from SkPictureShader (although that should be a different CL). If we like this we could also move to providing an entire cull SkRect.

R=reed@google.com, mtklein@google.com, fmalita@google.com, fmalita@chromium.org

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/513983002
/external/skia/src/core/SkPicture.cpp
533eb782edaa0b6fece6166d3001edf72ec39f11 27-Aug-2014 mtklein <mtklein@chromium.org> Convert BBH APIs to use SkRect.

Still TODO: convert internals of SkTileGrid.cpp and SkRTree.cpp to work in floats too.

NOTREECHECKS=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/511613002
/external/skia/src/core/SkPicture.cpp
c8c4b957288fd3114d60e3faa9bc95c4c15ca1f2 22-Aug-2014 mtklein <mtklein@google.com> Revert of Revert back to SkPictureData pictures. Huge perf regression. (patchset #1 of https://codereview.chromium.org/496603002/)

Reason for revert:
Try again now that we have --bbh on nanobench and it's looking decent.

Original issue's description:
> Revert back to SkPictureData pictures. Huge perf regression.
>
> http://skiaperf.com/#108
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4082d290eea2f70caa82120ff3bc4fbdccbf206c

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

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/496173002
/external/skia/src/core/SkPicture.cpp
c92e550d3656abaf83b134b158756b940d58a907 21-Aug-2014 mtklein <mtklein@chromium.org> Install a hook to swap between SkPicture backends with a single define.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/492023002
/external/skia/src/core/SkPicture.cpp
53fecfb15d254397ab03032b888daa9d15c487b6 21-Aug-2014 mtklein <mtklein@chromium.org> Our SkPicture::Analysis visitors should recurse into nested pictures.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/495793002
/external/skia/src/core/SkPicture.cpp
4082d290eea2f70caa82120ff3bc4fbdccbf206c 21-Aug-2014 mtklein <mtklein@chromium.org> Revert back to SkPictureData pictures. Huge perf regression.

http://skiaperf.com/#108

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/496603002
/external/skia/src/core/SkPicture.cpp
1b523babbe50df1894b10eb5a54fc9d0cf23723d 21-Aug-2014 mtklein <mtklein@chromium.org> Always read .skp files and other serialized pictures into SkRecord.

This should switch all our internal tools that aren't clever about it over to SkRecord pictures. (The clever tools know what they're doing.)

Also, deletes the old SkPicture::clone() path. return this or die.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/7b705bb17e09508e3761b54f59833b1ceb4ce9a6

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481743003
/external/skia/src/core/SkPicture.cpp
7b705bb17e09508e3761b54f59833b1ceb4ce9a6 20-Aug-2014 mtklein <mtklein@chromium.org> Always read .skp files and other serialized pictures into SkRecord.

This should switch all our internal tools that aren't clever about it over to SkRecord pictures. (The clever tools know what they're doing.)

Also, deletes the old SkPicture::clone() path. return this or die.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/481743003
/external/skia/src/core/SkPicture.cpp
c551d9fcae98ff7b9d56f315947e89a26632aeec 20-Aug-2014 mtklein <mtklein@chromium.org> Implement SkPicture::hasText() for SkRecord backend.

Plus, some small tweaks to the existing code surrounding it. Just proposals,
will undo whatever you don't like.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/494683003
/external/skia/src/core/SkPicture.cpp
3a0f27916712bb3226874aeaa268e30f565880de 20-Aug-2014 tomhudson <tomhudson@chromium.org> Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.

Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

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

Committed: https://skia.googlesource.com/skia/+/60c2a79cfa8ceebcbafc243407564dc71f5e3b4f

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
/external/skia/src/core/SkPicture.cpp
27dc17c2972421ce9c6331662fee6389b1e795a7 19-Aug-2014 Mike Klein <mtklein@google.com> Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702."

This reverts commit 60c2a79cfa8ceebcbafc243407564dc71f5e3b4f.

BUG=skia:

Review URL: https://codereview.chromium.org/481173003
/external/skia/src/core/SkPicture.cpp
60c2a79cfa8ceebcbafc243407564dc71f5e3b4f 19-Aug-2014 tomhudson <tomhudson@chromium.org> Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702.

Also unifies that flag and this one into a struct so they and others can be computed together. The struct is stored const to enforce lifetime expectations. Adds a few new cases to the unit test.

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

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/364823009
/external/skia/src/core/SkPicture.cpp
3e8232b6ef6b04290f0c280f88b38f8cd2c3f3ec 18-Aug-2014 mtklein <mtklein@chromium.org> Counterproposal for skirting the BBH when the query fully contains the picture.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/485703002
/external/skia/src/core/SkPicture.cpp
750ae26745d261183001a78d24251f6392e96b27 18-Aug-2014 ajuma <ajuma@chromium.org> Expose API for whether an SkPicture contains text

BUG=chromium:399728
R=reed@google.com, nduca@chromium.org

Author: ajuma@chromium.org

Review URL: https://codereview.chromium.org/478673002
/external/skia/src/core/SkPicture.cpp
5a246bb48708cfdbf5b63f8df7e2b09b3704cae4 15-Aug-2014 mtklein <mtklein@chromium.org> int SkPicture::approximateOpCount()

NOTREECHECKS=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/470333002
/external/skia/src/core/SkPicture.cpp
6162af8d4c05354a160f6aa44d9c4440721c892a 11-Aug-2014 robertphillips <robertphillips@google.com> Cleaning up SkPicture-related classes

R=mtklein@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/459043002
/external/skia/src/core/SkPicture.cpp
5ad6ee1b2ce54f8e59b9f5a337c688a98a4b0f2a 11-Aug-2014 mtklein <mtklein@chromium.org> Plumbing for using a BBH in SkRecordDraw.

For now this only creates a degenerate bounding box hierarchy where all ops
just have maximal bounds. I will flesh out FillBounds in future CL(s).

Not quite sure why QuadTree and TileGrid aren't drawing right---haven't even
looked at the diffs yet---so I've disabled those test modes for now. RTree
seems fine, so that'll at least get us coverage for all this new plumbing.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/454123003
/external/skia/src/core/SkPicture.cpp
3ba15ae3e13a6da0a9735fcc04166ed4d3ddcd67 06-Aug-2014 mtklein <mtklein@chromium.org> SkPicture: try to no-op away clone().

Will actually enable this by #defining SK_PICTURE_CLONE_NOOP in Chrome's SkUserConfig.h as a separate CL after this rolls in.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/447753003
/external/skia/src/core/SkPicture.cpp
d771f6bc273457bc7aa95938ac326dfbbf876e1a 22-Jul-2014 robertphillips <robertphillips@google.com> Add auto purging for SkPicture-related Ganesh resources (esp. layers)

This is intended to lower the bookkeeping burden for the Layer Caching feature. Cached layers are now automatically purged when a picture is deleted.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408923002
/external/skia/src/core/SkPicture.cpp
cfaeec446d06058cacef068b09f58ae2c78338fa 13-Jul-2014 Robert Phillips <robertphillips@google.com> Remove Skia's use of the default SkPicture constructor and multi-clone

This cannot be landed until (Chrome: Switch to one-at-a-time SkPicture::clone interface - https://codereview.chromium.org/380323002/) has landed.

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

Review URL: https://codereview.chromium.org/388833003
/external/skia/src/core/SkPicture.cpp
dd528967fc3eea54c8d10937b0100192d0722f4e 13-Jul-2014 robertphillips <robertphillips@google.com> Remove SkPicture copy constructor

Given where we're heading with SkPicture why would you need to make a copy?

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381133002
/external/skia/src/core/SkPicture.cpp
ffc75efc1a4c231286c773ff090ec84fc16e9422 11-Jul-2014 robertphillips <robertphillips@google.com> Revert of Add alternate SkPicture::clone (https://codereview.chromium.org/381193002/)

Reason for revert:
Going to try to just remove the many-at-once clone interface

Original issue's description:
> Add alternate SkPicture::clone
>
> This adds an alternate version of SkPicture::clone for two reasons:
>
> 1) Chromium uses the SkPicture copy constructor to unpack the pictures from the old-style clone interface (and I would like to remove the copy ctor)
>
> 2) This is part of the long term plan to wean Chrome off of cloning. Once pictures are thread safe we will switch the new SkPicture::clone call to just return 'this'. From there it is a small step to removing clone entirely.
>
> Note that the two versions of clone() is temporary. Once this is landed (and rolled) I will land a Chrome-side patch to remove their use of the old interface (Use new SkPicture::clone interface - https://codereview.chromium.org/380323002/)
>
> Committed: https://skia.googlesource.com/skia/+/e372e78223a8ce916d276d6e0420d552fb0267e9

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/386933004
/external/skia/src/core/SkPicture.cpp
e372e78223a8ce916d276d6e0420d552fb0267e9 10-Jul-2014 robertphillips <robertphillips@google.com> Add alternate SkPicture::clone

This adds an alternate version of SkPicture::clone for two reasons:

1) Chromium uses the SkPicture copy constructor to unpack the pictures from the old-style clone interface (and I would like to remove the copy ctor)

2) This is part of the long term plan to wean Chrome off of cloning. Once pictures are thread safe we will switch the new SkPicture::clone call to just return 'this'. From there it is a small step to removing clone entirely.

Note that the two versions of clone() is temporary. Once this is landed (and rolled) I will land a Chrome-side patch to remove their use of the old interface (Use new SkPicture::clone interface - https://codereview.chromium.org/380323002/)

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/381193002
/external/skia/src/core/SkPicture.cpp
6142609b22814283210f79d698182b651a93136c 10-Jul-2014 robertphillips <robertphillips@google.com> Cleanup SkPicture* classes a bit

This is an attempt to reduce the number of friends the various SkPicture* classes have.
Probably the only controversial part is making getBitmap, getPath, getPicture and getPaint
public on SkPictureData (and adding a new initIterator entry point).

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/384753004
/external/skia/src/core/SkPicture.cpp
3afef1f75f710b8f183113cdc5188416f7d01f28 08-Jul-2014 robertphillips <robertphillips@google.com> Clean up a bit after SkPictureData/SkPicturePlayback split

This CL begins setting up the SkPicturePlayback split by simplifying the class and componentizing it a bit. It:
fuses SkPictureData::OperationList into SkPicture::OperationList
adds a handleOp method to SkPicturePlayback that can be reused by derived classes
removes a couple debugging tools (ENABLE_TIME_DRAW & SPEW_CLIP_SKIPPING)

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/378703002
/external/skia/src/core/SkPicture.cpp
ce4dd3de38cd7c29bf5b9d8a8efb55c08ec9be47 07-Jul-2014 robertphillips <robertphillips@google.com> Split SkPicturePlayback out of SkPictureData

This splits the playback functionality out of SkPictureData. The old SkPictureData::draw method is pulled out along
with its supporting functions as verbatim as possible. Some follow on CLs will be required to:

re-enable profiling in the debugger (and remove the vestiges of SkTimedPicture)
re-enable display of command offsets in the picture (this should probably wait until we've switched to SkRecord though)
Clean up CachedOperationList (maybe fuse with SkPicture::OperationList)
Split SkPicturePlayback into a base class and two derived classes
Implement parallel version of GatherGPUInfo for SkRecord

Landing this is blocked on removing Android's use of the abortPlayback entry point.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/377623002
/external/skia/src/core/SkPicture.cpp
d930511ee73bf0ddc8bdf570ec23a17dd3e19709 05-Jul-2014 tomhudson <tomhudson@chromium.org> Linear-time implementation of willPlaybackBitmaps(), computed & cached
on construction in SkPicture. Unit test.

Template trickery thanks to mtklein@.

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

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/366443002
/external/skia/src/core/SkPicture.cpp
db539905bb3af7bd05839a7d2558e97d5cb51ca2 01-Jul-2014 robertphillips <robertphillips@google.com> Rename SkPicturePlayback to SkPictureData

This is in preparation for splitting the playback portion of the new SkPictureData class into a new SkPicturePlayback class.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/362773002
/external/skia/src/core/SkPicture.cpp
d3e474e20c6f0f24ddb6b2643e92975d60190daa 27-Jun-2014 mtklein <mtklein@chromium.org> Deprecate SkPicture::clone().

Chrome will need -DSK_SUPPORT_LEGACY_PICTURE_CLONE.

This removes the modes from our tools that use clone(). No
bots run these. DM used clone() in a way that we can just
share the picture now.

I plan to bring back the ability to test multithreaded
picture rendering soon.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/338633011
/external/skia/src/core/SkPicture.cpp
7373456679b809d4e7649a438f0fe5b59257e4e5 24-Jun-2014 mtklein <mtklein@chromium.org> Support serialization in SkRecord-backed SkPictures.

Update DM to test SkRecord through SkPictureRecorder API.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/345553003
/external/skia/src/core/SkPicture.cpp
40684ba95f8b99e3e690efe2cc857251a5f4ad6b 24-Jun-2014 mtklein <mtklein@chromium.org> Prune some dead code from SkPicture.cpp.

There's no path that makes playback != fPlayback.get() anymore.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/352643002
/external/skia/src/core/SkPicture.cpp
c11530ea73b2a2fcb431df0f5c1887d08ac9113c 24-Jun-2014 Mike Klein <mtklein@google.com> Tick off some TODOs:

- support fRecord in copy constructor
- support SkDrawPictureCallback

Moved SkDrawPictureCallback to its own header so
SkRecordDraw can include it without pulling in all of
SkPicture.

Adding an SkAutoSaveRestore to SkRecordDraw was the easiest
way to match the balance guarantees of the callback, and
probably not a bad idea in general. Updated its tests.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349973008
/external/skia/src/core/SkPicture.cpp
6fc763e3c2b1e539510cb18ece8b97e183099ab1 23-Jun-2014 Mike Klein <mtklein@google.com> No one uses SkPicture::swap.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/349313004
/external/skia/src/core/SkPicture.cpp
744fb7313f31069e9eceeca4c0ff33dbe2fe1737 23-Jun-2014 Mike Klein <mtklein@google.com> Enable basic drawing with SkRecord-based pictures.

I've tagged all the functions in SkPicture.cpp is // fRecord TODO or // fRecord
OK, depending on whether or not they're totally broken when used from an
SkRecord-based picture. Obviously next steps are to eliminate all the TODOs,
then clean up the notes.

I converted SkPicture over to smart pointers too. It's particularly helpful
that the smart pointers initialize to NULL by default.

For now I've got all the SkRecord-based code jammed in at the bottom of the file. I figure it'll help me keep things straight for a bit, then we can rearrange later.

BUG=skia:
R=robertphillips@google.com

Review URL: https://codereview.chromium.org/333823007
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
643b8bd6617e333f7a970a57ad9166f3d6675d1a 08-Jun-2014 robertphillips <robertphillips@google.com> First pass at splitting out SkPictureRecord from SkPicture

This patch begins the process of splitting apart SkPicture, SkPicturePlayback and SkPictureRecord.

This is still a bit messy. In a follow up CL I hope to delay the creation of SkPictureRecorder's SkPicture until endRecording time.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/318763004
/external/skia/src/core/SkPicture.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/SkPicture.cpp
dcf9ab14a194be0cbea896e1dc44a2a04106a38b 03-Jun-2014 robertphillips <robertphillips@google.com> Remove legacy picture recording

This is unblocked now that Android no longer uses the old interface.

This is just the first step in cleaning this up. Future CLs will constify SkPicture access in SkCanvas and split up the SkPicture/SkPicturePlayback/SkPictureRecord trio.

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

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/313613002
/external/skia/src/core/SkPicture.cpp
173a5c544be92a09cd8f7eae0e1d50da114e2bc0 02-Jun-2014 humper <humper@google.com> invert comparison sense for reason return

BUG=skia:
R=bsalomon@google.com

Author: humper@google.com

Review URL: https://codereview.chromium.org/313433003
/external/skia/src/core/SkPicture.cpp
a1ff26a64a0cfc337a321e6e923684bfdcadc2ec 30-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add a way for the gpu veto to report back the reason why it said no

BUG=2334
R=bsalomon@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@15012 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
2ee3c2ce6499cb7ce15b59420dd4514ad01d0318 19-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add choke point for performing a fake endRecording

My goal here was to add a single location where we could patch up the created PicturePlayback. Unfortunately, the complexity of the recording process (e.g., the BBH) makes this quite complex.

I will investigate altering the behavior of SkPicturePlayback to account for a potentially unbalanced set of saves/saveLayers.

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14773 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
0205aba7d5e8802d2a3ef55d999f5aa41db3adc9 06-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Infrastructure changes to support pull-saveLayers-forward task

This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/).

It mainly:

Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it)
Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it)
Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize)
Adds new fields to SaveLayerInfo that are needed to pull forward layers

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

R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14586 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
300c6060c855cf607accaed969238b928833623d 05-May-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r14571 (Infrastructure changes to support pull saveLayers forward task - https://codereview.chromium.org/266203003) due to breaking Android unit tests



git-svn-id: http://skia.googlecode.com/svn/trunk@14578 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
6b392b6111fad269437517494b14be484cd762f6 05-May-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Infrastructure changes to support pull-saveLayers-forward task

This is split out of (First pass at pre-rendering saveLayers for GPU - https://codereview.chromium.org/261663003/).

It mainly:

Moves NeedsDeepCopy to somewhere more accessible (so GrPictureUtils.cpp can use it)
Moves ComputeAccelDataKey somewhere more accessible (so GPUPicture test can use it)
Adds unit test for picture saveLayer analysis (done in EXPERIMENTAL_optimize)
Adds new fields to SaveLayerInfo that are needed to pull forward layers

R=bsalomon@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14571 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
eeaeafebdeec2c546134b741ab8b3c6b7c5190ab 30-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@14453 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
e2cb12a82ad924f7b134a9459b190213485c6a50 24-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> First pass at GPU veto

As a short term solution this CL collects information during the recording process for use in suitableForGpuRasterization.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14368 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
c822bb3d4ba6704d1496f35b2bde45e152976647 24-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix for r14341 Chrome build error

https://codereview.chromium.org/252393003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14345 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
770963f23f4fc313db0fa3bac18b1b8aafb55f17 18-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Staging for cleanup of SkPicture-related headers

https://codereview.chromium.org/243173002



git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
60bd7519a9db4ddddd95e490f93165e5676f90f5 18-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@14252 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
5fb2ce38b3dcb8e60e9e112df23c9d42456d7069 18-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Staged removal of SkPicture-derived classes

This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).

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

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
d393b17cf3427bd6f6255f8670067d9aa529e409 16-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API


This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
84b18c7e3e042bf206e1ace3d1b6ea5bb929fe51 13-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> split SkPictureRecorder out of SkPicture

https://codereview.chromium.org/214953003/



git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
2b4e370a2fe00168838e43f5a78ccc3b371609f5 07-Apr-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Convert SkPicture's generation ID to a unique ID

This CL addresses linger code review comments on r14037 (Add generation ID to SkPicture https://codereview.chromium.org/222683002/)

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@14079 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
d5500886a29a20733c559c0167a6ae9946704de2 03-Apr-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Add generation ID to SkPicture

https://codereview.chromium.org/222683002/



git-svn-id: http://skia.googlecode.com/svn/trunk@14037 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.cpp
1c30818f66454f46b978d6c806f658850ef4157c 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> fix non-gpu build

BUG=
R=bungeman@google.com
TBR=bungeman@google.com

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13868 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
eb9547c1d6a7bcc02778a7d26b7d05283c4074fa 19-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> stub for ganesh veto

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

Author: humper@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13866 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
eb849e5fd10cbe00cbc31307ba97fd9efca0b41b 17-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@13825 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
145d1c0fdcef63991d7f910cc067a653a8aa2c4c 16-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Proposed SkCanvas API for preLoading textures to VRAM v2.0

This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

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

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13822 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
5ed01d1f8fa3fa38105c252929f02dd7603271e3 14-Mar-2014 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r13810 (Proposed SkCanvas API for preLoading textures to VRAM v2.0)



git-svn-id: http://skia.googlecode.com/svn/trunk@13811 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
1ab85c8719ef46a8f2de9912b3f84f387bddf0d1 14-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Proposed SkCanvas API for preLoading textures to VRAM v2.0

This is an update to (Proposed SkCanvas API for preLoading textures to VRAM - https://codereview.chromium.org/192853002/). It takes into account in-person feedback on the initial proposal. The main feedback was to land this closer to where we will ultimately wind up with the reordered rendering capability (and don't have an SkCanvas entry point (yet)).

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13810 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
e494dbdec36f0ffa4affeac1c3f405b58ac41220 04-Mar-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> The motivation for this CL is to de-clutter SkPicture's beginRecording method.

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13658 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
e8d9614cd187c7a2aa474f9ca7aac208ded71400 25-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> This is intended to make it easier for us to be backwards compatible.

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

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13575 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
19fafef9784fe7c644540ffd0ee9f6da1914a038 17-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> change PictureRecord (and its private subclasses) to take size instead of device

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

Author: reed@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13477 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
550db50db324a6487904ec268d86e9abe68a4d70 14-Feb-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup unref and null

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

Author: iancottrell@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13457 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.cpp
c5acc6c827993602eded2d5b53fdbe29a372b4c4 07-Feb-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@13355 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
8f4d2306fa866a26f9448048ff63f692b2ba43aa 17-Dec-2013 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove SK_SCALAR_IS_[FLOAT,FIXED] and assume floats

To keep the CL (slightly) managable, this does not make any changes to
existing macros (e.g. SkScalarMul). Just tackling #ifdef constructs this
time around.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12712 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
ab1c13864df34aecfd4840ea7d1e4f8730b44f4e 05-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Fix compilation with SK_ENABLE_INST_COUNT=1

Add INHERITED declarations to class declarations that prevent
compilation with the flag.

Remove SK_DEFINE_INST_COUNT from all class implementations. Instead,
use function-local static variables in the reference count helper
classes to create the global instances to store the needed info. The
accessor functions are defined inline in the helper classes, so
definitions are not needed. The initialization point of the variables
should be as well defined as previously.

Remove SK_DECLARE_INST_COUNT_TEMPLATE and use SK_DECLARE_INST_COUNT
instead. This avoids possible future compilation errors further.

For SK_ENABLE_INST_COUNT=0 compilation, add an empty static member
function to all classes that use SK_DECLARE_INST_COUNT and
SK_DECLARE_INST_COUNT_ROOT macros. The function ensures that classes
contain public INHERITED typedef. This member function seems to be
compiled away. This shouĺd ensure that part of the compilation errors
are caught earlier.

Also adds DSK_DECLARE_INST_COUNT to few SkPDFDict subclasses.

R=robertphillips@google.com, richardlin@chromium.org, bsalomon@google.com

Author: kkinnunen@nvidia.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12501 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
466310dbd3073add2ec934e336c30deaaf702eae 03-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move fIsOval from SkPath to SkPathRef

https://codereview.chromium.org/89123002/



git-svn-id: http://skia.googlecode.com/svn/trunk@12463 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
d6bab0238655dbab24dfe92bd0b16b464310a8c7 02-Dec-2013 rmistry@google.com <rmistry@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12427

git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
5b39f5ba9c339d1e4dae391fee9ec1396feec180 02-Dec-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@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
6300f4d1f3bd2e1a4d991ab28e843bcc3d4a4691 26-Nov-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Add 'skiapict' magic bytes to SkPicture format.

Testing: out/Debug/tests && out/Release/gm --replay --serialize


BUG=
R=fmalita@google.com, reed@google.com, fmalita@chromium.org

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@12391 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.cpp
ca0c8389e2fd1c7f528869beb77a6c8587d59f29 26-Sep-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Move bound and isFinite into pathref

https://codereview.chromium.org/24350006/



git-svn-id: http://skia.googlecode.com/svn/trunk@11467 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
8c902126a90f37b6a038a78488c6215fa0c34b7d 30-Aug-2013 sglez@google.com <sglez@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> R-Tree -- Don't sort draw commands unless specified.
We expect Webkit and Bink to give us draw commands in a reasonable x,y order.
We can maintain correctness and get a 17% recording speedup for the R-Tree by
not sorting in x and y when bulk-loading.

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

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

git-svn-id: http://skia.googlecode.com/svn/trunk@11037 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
1f2f338e23789f3eef168dcbd8171a28820ba6c1 29-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split SkDevice into SkBaseDevice and SkBitmapDevice

https://codereview.chromium.org/22978012/



git-svn-id: http://skia.googlecode.com/svn/trunk@10995 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
7ce661d19c5cf4484305a1b20c44bd111f129847 27-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Blur refactoring

https://codereview.chromium.org/21835004/



git-svn-id: http://skia.googlecode.com/svn/trunk@10936 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
9b051a375ba6d6b61cea98f35834cd032aaa5347 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert r10830 (Split SkDevice out of SkRasterDevice) until we can get Chromium ready.



git-svn-id: http://skia.googlecode.com/svn/trunk@10835 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
3055b700189afdd02486ed8f2279cea1d8897243 20-Aug-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Split SkDevice out of SkBitmapDevice

https://codereview.chromium.org/22978012/



git-svn-id: http://skia.googlecode.com/svn/trunk@10830 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.cpp
faa5ae456d184202993a5dbe782a3a95acc25326 23-Jul-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Turn on -Wall -Wextra on Mac, and fix all the warnings that crop up for /usr/bin/g++ and Clang 3.3.
BUG=
R=bungeman@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10255 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
056dab300d3649763f30f799bc55038d124acad1 08-Jul-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Temporary change to keep chrome happy."

Now that chrome has https://chromiumcodereview.appspot.com/18078003/,
this is no longer needed.

Fully switched over to using CreateFromStream!

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9911 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
0e0180a176b22fe0b6f8015aa234b8571242f761 28-Jun-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Temporary change to keep chrome happy.

Add back in a version of the constructor taking a stream so that
chrome can build until we switch chrome to using the factory.

Will be reverted once chrome switches to using the factory.

R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9823 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
24287c15d6c80560fc023b7924ff0bc41ad7f587 24-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert "Patch to prevent chromium breakage until the DEPS."

This reverts commit d2a284728d30082d46b02c39d916294c6d36e11f.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9275 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
edef4aa8d84f9d0cfa49e9b7c761bb986af63142 21-May-2013 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Patch to prevent chromium breakage until the DEPS.

Once https://codereview.chromium.org/15489004/ is submitted to
Skia, a DEPS roll into chrome will break due to a change in the
API. A long term fix for chrome to use the new API is at
https://codereview.chromium.org/15496006/, but since it depends
on the earlier Skia change, this patch fills in the gap.

Will be reverted once https://codereview.chromium.org/15496006/
is submitted to chrome.

R=djsollen@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9228 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
e16efc1882ab34a0bb3ae361a2d37f840044cf87 26-Jan-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@7406 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
9a5b570e5cbf907fabd69a5ffef94ef135e4066f 13-Nov-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Allow SkPicture-derived classes install their own SkPicturePlayback-derived object

https://codereview.appspot.com/6851048/



git-svn-id: http://skia.googlecode.com/svn/trunk@6405 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
de1390db929c770405b6bb98b983d4e81fb74882 02-Nov-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> When cloning into an SkPicture, clear its data.

Prevents a memory leak if the caller clones into an SkPicture
that already has a playback or record.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@6282 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
760f2d95dd22efce0066b663421aa604812c447f 02-Nov-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@6258 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
35ac048e357aefa6289485c8f6a50fadce23c0d2 01-Nov-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Refactoring RTree integration to support SkBBoxHierarchy polymorphism in SkPicture.
This moves the rtree creation into a virtual method.
Review URL: https://codereview.appspot.com/6811057

git-svn-id: http://skia.googlecode.com/svn/trunk@6242 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
5cd3656ed3676730b296722812f5924d06d0cc98 09-Oct-2012 scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Make SkPictures valid regardless of SK_SUPPORT_HINTING_SCALE_FACTOR.

When the build flag is not set, read/write dummy values
so that the creator of an SKP file need not have the same
support/lack of support of the feature as the reader.

Will separately update the checked in skps to the new version when checking in.

BUG=http://code.google.com/p/skia/issues/detail?id=922

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

git-svn-id: http://skia.googlecode.com/svn/trunk@5869 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.cpp
d86e7ab6044e4aba017cb126a26dd378eec9fcba 27-Sep-2012 reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> remove call to setBitmapDevice (deprecated).
Review URL: https://codereview.appspot.com/6569070

git-svn-id: http://skia.googlecode.com/svn/trunk@5715 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
66bcbd12bf075145e0c38f3e36c9f13e65f5e10e 17-Sep-2012 borenet@google.com <borenet@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Check for invalid SkPictures

- Remove hasRecorded() since nobody uses it.
- Add "success" boolean to SkPicture stream constructor
- Track failures in render_pictures and bench_pictures
Review URL: https://codereview.appspot.com/6493105

git-svn-id: http://skia.googlecode.com/svn/trunk@5573 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
01ec2eb42e9c64f8d06afd51f80c055710147141 17-Aug-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Added Serialization of SkPath's bound

http://codereview.appspot.com/6458143/



git-svn-id: http://skia.googlecode.com/svn/trunk@5143 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
7dade42e6f2e35dd27b4090fd7894322d755d4db 27-Jul-2012 djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Always store pixels of mutable bitmaps when recording a SkPicture.

Prior to this CL mutable bitmaps only saved a copy of their pixels
if a flag was set at recording time. That flag has been removed
and the default behavior when recording a mutable bitmap is to
make a copy of it's pixels. This is the only way to ensure that
the pixels are not manipulated before we playback their contents.

However, enabling this behavior breaks the recording of extracted
bitmaps in SkPicture. This is because we currently cache bitmaps
within a picture based only on their pixelRef. This results in
false positive cache hit when drawing an extracted bitmap as it
shares a pixelRef with its orginating bitmap. Therefore we must
update the index of the bitmap cache to be both the pixelRef AND
the size and offset of the bitmap using those pixels.

BUG=
TEST=extractbitmap.cpp

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

git-svn-id: http://skia.googlecode.com/svn/trunk@4809 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
a6c9e0e02be390d36b80f4872c628edb3594208e 12-Jul-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Cleanup restore offsets at end of SkPicture recording

Review URL: http://codereview.appspot.com/6355099/
TEST=skia unit test CanvasTest, test step TwoClipOps
BUG=https://code.google.com/p/chromium/issues/detail?id=133432



git-svn-id: http://skia.googlecode.com/svn/trunk@4577 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp
15e9d3e66e161ce23df30bc13f8a0c87d196b463 21-Jun-2012 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Expanded distribution of instance counting

http://codereview.appspot.com/6300114/



git-svn-id: http://skia.googlecode.com/svn/trunk@4291 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
7aa876bfbf0cf6f2a9d19bd4669ae50658f20821 21-Jun-2012 bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Record pixel ref's gen ID in picture

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



git-svn-id: http://skia.googlecode.com/svn/trunk@4289 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.cpp
4866cc0afb7571309d9fdecb221d919f663054c0 01-Jun-2012 junov@chromium.org <junov@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Adding option to serialize mutable bitmaps in SkPicture

BUG=http://code.google.com/p/chromium/issues/detail?id=115654
REVIEW=http://codereview.appspot.com/6221066/



git-svn-id: http://skia.googlecode.com/svn/trunk@4130 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/core/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.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/SkPicture.cpp