History log of /external/skia/src/core/SkPictureData.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
14583e11fd622c686993b741499060a6f3527055 16-Mar-2017 Mike Reed <reed@google.com> More SkVertices implementation work

- change virtuals to take const SkVertices*, as we do for TextBobs and Images
- override onDrawVerticesObject in recording canvases
- deserialize raw-vertices into SkVertices object

Possibly a follow-on would intercept the raw-form directly in canvas,
and remove the virtual, and only support the object form.

BUG=skia:6366

Change-Id: I57a932667ccb3b3b004beb802ac3ae6898e3c6e0
Reviewed-on: https://skia-review.googlesource.com/9633
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/core/SkPictureData.cpp
95e3c058ef633782f7549e9e1c2727d60dbc8ee5 11-Jan-2017 Hal Canary <halcanary@google.com> SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h

* SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).

* SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h

* "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"

Revert "Revert 'SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h'"
This reverts commit c456b73fef9589bbdc5eb83eaa83e53c357bb3da.

Change-Id: Ie2c1a17c20134b8ceab85a68b3ae3e61c24fbaab
Reviewed-on: https://skia-review.googlesource.com/6886
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
/external/skia/src/core/SkPictureData.cpp
c456b73fef9589bbdc5eb83eaa83e53c357bb3da 11-Jan-2017 Kevin Lubick <kjlubick@google.com> Revert "SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h"

This reverts commit a5494f117086d712855e4b6289c58c92d1549bcf.

Reason for revert: Broke Google3

Original change's description:
> SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h
>
> * SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).
>
> * SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h
>
> * "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"
>
> Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88
> Reviewed-on: https://skia-review.googlesource.com/4543
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Reviewed-by: Mike Reed <reed@google.com>
> Commit-Queue: Hal Canary <halcanary@google.com>
>

TBR=halcanary@google.com,bungeman@google.com,reed@google.com,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: Ie8bd176121c3ee83c110d66c0d0ac65e09bfc9c5
Reviewed-on: https://skia-review.googlesource.com/6884
Commit-Queue: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
/external/skia/src/core/SkPictureData.cpp
a5494f117086d712855e4b6289c58c92d1549bcf 10-Jan-2017 Hal Canary <halcanary@google.com> SkTypes.h : move SkAutoMalloc into SkAutoMalloc.h

* SkAutoFree moved to SkTemplates.h (now implmented with unique_ptr).

* SkAutoMalloc and SkAutoSMalloc moved to SkAutoMalloc.h

* "SkAutoFree X(sk_malloc_throw(N));" --> "SkAutoMalloc X(N);"

Change-Id: Idacd86ca09e22bf092422228599ae0d9bedded88
Reviewed-on: https://skia-review.googlesource.com/4543
Reviewed-by: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
/external/skia/src/core/SkPictureData.cpp
20dd31fed5f63d7d97719ce7f53755fa94086cfd 19-Dec-2016 Robert Phillips <robertphillips@google.com> Guard some uint32_t -> int cases in SkPictureData reading

Change-Id: I67e6a67a57bf83922d159083e359df1a8ce053c1
Reviewed-on: https://skia-review.googlesource.com/6275
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
/external/skia/src/core/SkPictureData.cpp
145dbcd165d9d27298eb8888bc240e2d06a95464 03-Nov-2016 Ben Wagner <bungeman@google.com> Remove SkAutoTDelete.

Replace with std::unique_ptr.

Change-Id: I5806cfbb30515fcb20e5e66ce13fb5f3b8728176
Reviewed-on: https://skia-review.googlesource.com/4381
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkPictureData.cpp
6bd5284415bd983b0628c4941dff5def40018f5a 27-Oct-2016 bungeman <bungeman@google.com> Remove SkAutoTUnref and SkAutoTDelete from public includes.

This also makes the required changed to src, tests, and tools. The few
public APIs modified by this change appear to be unused outside of Skia.

Removing these from the public API makes it easier to ensure users are
no longer using them.

This also updates GrGpu::wrapBackendXXX and the
::onWrapBackendXXX methods to clarify ownership.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2448593002

Review-Url: https://codereview.chromium.org/2448593002
/external/skia/src/core/SkPictureData.cpp
b3f543d955637c6e10d7109554b5a46c6e25291a 04-Oct-2016 Mike Reed <reed@google.com> ensure we always set the pictinfo.fVersion

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2932

Change-Id: I8864a60f629e0f68b7871e0c388b42f4b6d78dbe
Reviewed-on: https://skia-review.googlesource.com/2932
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkPictureData.cpp
a9ca05ca5e604b9ee18e9cce19b059085ca0e22c 11-Aug-2016 reed <reed@google.com> Deserialize pictures with custom image-deserializer

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2187613002

Review-Url: https://codereview.chromium.org/2187613002
/external/skia/src/core/SkPictureData.cpp
d5b88a3dc500c16fc56d472acad01e78d56ef14a 10-Aug-2016 reed <reed@google.com> remove support for serializing bitmaps in old format

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2230973002

Review-Url: https://codereview.chromium.org/2230973002
/external/skia/src/core/SkPictureData.cpp
13b9c95295f4c5732e34574789e721a6bc08f7b4 12-May-2016 bungeman <bungeman@google.com> Move SkTypeface to sk_sp.

Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1933393002

Review-Url: https://codereview.chromium.org/1933393002
/external/skia/src/core/SkPictureData.cpp
9a9a7b29e5e5916a7b6453cd124ca437f14b9da4 12-May-2016 scroggo <scroggo@google.com> Revert of Move SkTypeface to sk_sp. (patchset #5 id:80001 of https://codereview.chromium.org/1933393002/ )

Reason for revert:
fontmgr_iterAndroid failing to draw emoji. E.g. https://gold.skia.org/search2?blame=6296da736fbf40aae881650c239420f64e576c3f&unt=true&head=true&query=source_type%3Dgm

Original issue's description:
> Move SkTypeface to sk_sp.
>
> Committed: https://skia.googlesource.com/skia/+/6296da736fbf40aae881650c239420f64e576c3f

TBR=reed@google.com,fmalita@chromium.org,tomhudson@google.com,bungeman@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review-Url: https://codereview.chromium.org/1974783002
/external/skia/src/core/SkPictureData.cpp
6296da736fbf40aae881650c239420f64e576c3f 11-May-2016 bungeman <bungeman@google.com> Move SkTypeface to sk_sp.

Review-Url: https://codereview.chromium.org/1933393002
/external/skia/src/core/SkPictureData.cpp
fad98562d8f9db63839a8d902a301b174320f27f 04-May-2016 brianosman <brianosman@google.com> Prototype code that turns any/every flattenable into JSON

This makes inspecting things in SkDebugger far more useful - any filter
or other complex object on the paint is ultimately visible. You still
have to do some guess work to figure out what the fields actually mean,
but you can at least cross-reference with the code in flatten().

Screenshots:
Before: https://screenshot.googleplex.com/a6JM5HBBe6G.png
After : https://screenshot.googleplex.com/XQfr4YJ6mnH.png

Changes to public API are just removals and changes to make
some functions virtual.

TBR=reed@google.com

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

Review-Url: https://codereview.chromium.org/1920423002
/external/skia/src/core/SkPictureData.cpp
4d9ff62fa21326003cf5394cd1d16f4b4633102a 29-Apr-2016 mtklein <mtklein@chromium.org> Remove SkWriter32::contiguousArray().

This method requires SkWriter32 have a contiguous array.
It does, and I plan to keep it that way (last time we checked
it's faster), but this turns that feature back into an
implementation detail.

This feature is only used by another unused feature, deep copies of
ops arrays in SkPictureData. Kill that, kill this.

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

Depends on https://codereview.chromium.org/1936563002/

Only deleting API
TBR=reed@google.com

Review-Url: https://codereview.chromium.org/1932223003
/external/skia/src/core/SkPictureData.cpp
95416f477d2ca264f2fb065455e95778a2289a1d 27-Apr-2016 msarett <msarett@google.com> Enable flattening of SkRecordedDrawable

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

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

Review-Url: https://codereview.chromium.org/1913843002
/external/skia/src/core/SkPictureData.cpp
569b02151f399628b0c0c0ca825dfe7b6e2795e1 27-Apr-2016 mtklein <mtklein@google.com> Revert of Enable flattening of SkRecordedDrawable (patchset #8 id:140001 of https://codereview.chromium.org/1913843002/ )

Reason for revert:
Release mode bots appear to be crashing while loading .skp files in nanobench.

Original issue's description:
> Enable flattening of SkRecordedDrawable
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1913843002
>
> Committed: https://skia.googlesource.com/skia/+/d636950e8ecba89c0021ce4e76037c67aa6ee2cd

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

Review-Url: https://codereview.chromium.org/1923393002
/external/skia/src/core/SkPictureData.cpp
d636950e8ecba89c0021ce4e76037c67aa6ee2cd 27-Apr-2016 msarett <msarett@google.com> Enable flattening of SkRecordedDrawable

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

Review-Url: https://codereview.chromium.org/1913843002
/external/skia/src/core/SkPictureData.cpp
9d524f22bfde5dc3dc8f48e1be39bdebd3bb0304 29-Mar-2016 halcanary <halcanary@google.com> Style bikeshed - remove extraneous whitespace

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

Review URL: https://codereview.chromium.org/1842753002
/external/skia/src/core/SkPictureData.cpp
ca2622ba051829fed5f30facd74c5b41cd4b931c 18-Mar-2016 reed <reed@google.com> return pictures as sk_sp

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

Review URL: https://codereview.chromium.org/1811703002
/external/skia/src/core/SkPictureData.cpp
18300a3aa7cb6eb55d21bb0450dffa58b6fc062c 16-Mar-2016 mtklein <mtklein@chromium.org> detach -> release

The C++ standard library uses the name "release" for the operation we call "detach".

Rewriting each "detach(" to "release(" brings us a step closer to using standard library types directly (e.g. std::unique_ptr instead of SkAutoTDelete).

This was a fairly blind transformation. There may have been unintentional conversions in here, but it's probably for the best to have everything uniformly say "release".

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

Review URL: https://codereview.chromium.org/1809733002
/external/skia/src/core/SkPictureData.cpp
fde05114e6c4107b36e1aa571c64d31def40f613 11-Mar-2016 reed <reed@google.com> Make sp variants for SkData

Review URL: https://codereview.chromium.org/1779263003
/external/skia/src/core/SkPictureData.cpp
46895be9189f9d43f10fe5d57be6ca1eb1a795d2 21-Jan-2016 caryclark <caryclark@google.com> fix skp fuzz

R=kjlubick@google.com
BUG=skia:4816
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1617033002

Review URL: https://codereview.chromium.org/1617033002
/external/skia/src/core/SkPictureData.cpp
c2e2977014c4581aed5da435fc2b7eba38e777b6 30-Oct-2015 mtklein <mtklein@chromium.org> Dedup SkPaths by gen-ID when going to .skp

We're all set up to serialize and deserialze paths by an integer ID,
but we're just not deduping any paths (every path gets a new ID).

This turns on deduping. This should mean the number of paths in a
deserialized SkPicture are the same as when it was recorded.

No diffs:
https://gold.skia.org/search2?issue=1409373011&unt=true&query=source_type%3Dgm&master=false

BUG=skia:4527

Review URL: https://codereview.chromium.org/1409373011
/external/skia/src/core/SkPictureData.cpp
cd56f812e09fdd8f8322c5c28cbc4423a74b9a0a 14-Sep-2015 fmalita <fmalita@chromium.org> SkImageSource

Blink is migrating away from SkBitmaps, so we need an SkImage-based
SkImageFilter source. This is pretty much a 1-1 equivalent of
SkBitmapSource.

To avoid duplication, relocate the SkImage deserialization logic
from SkPictureData to SkReadBuffer.

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

Review URL: https://codereview.chromium.org/1343703005
/external/skia/src/core/SkPictureData.cpp
c3470340b6658dea7baa3ac90d3b716c0afd7051 04-Sep-2015 fmalita <fmalita@chromium.org> Handle zero-length encoded images gracefully during deserialization

Image encoding may fail during serialization, resulting in zero-length
encoded data in the SKP.

Instead of invalidating the stream (and preventing deserialization of
the whole picture) we can instantiate placeholder images.

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

Review URL: https://codereview.chromium.org/1308273011
/external/skia/src/core/SkPictureData.cpp
5ef194c31ae498166bd9c468993514c5267ea077 31-Aug-2015 caryclark <caryclark@google.com> Suppress embedding fonts when the skp's fonts match the OS fonts.

The million SKPs generated require >5T of storage. A good deal
of that are copies of system fonts.

Chrome built with
#DEFINE SK_WHITELIST_SERIALIZED_TYPEFACES
will omit the font data if the font matches a precomputed
checksum.

The captured SKP prepends sk_ to the names of fonts that
have their data omitted. The SKP consumer can either add
renamed fonts from the recording machine, or add

gDeserializeTypefaceDelegate = WhitelistDeserializeTypeface;

which strips the sk_ prefix when deserializing typefaces.

whitelist_typefaces --check
Computes the checksums of fallback
fonts and returns 0 if the checksums match the checked-in
file SkWhitelistChecksum.cpp.

whitelist_typefaces --generate
Writes an updated version of SkWhitelistChecksum.cpp.

(Added Mike since this modifies a public header)

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

Review URL: https://codereview.chromium.org/1317913005
/external/skia/src/core/SkPictureData.cpp
96fcdcc219d2a0d3579719b84b28bede76efba64 27-Aug-2015 halcanary <halcanary@google.com> Style Change: NULL->nullptr
DOCS_PREVIEW= https://skia.org/?cl=1316233002

Review URL: https://codereview.chromium.org/1316233002
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.cpp
5479d3b5690c274bb53c78333c7c4d41cd5f9137 29-Jul-2015 fmalita <fmalita@chromium.org> Double free in ~SkPictureData()

On subpicture parsing failures we clean up all fPictureRefs entries
*and* delete the array itself. But the destructor also deletes the
array => double free.

Alternatively, we can set fPictureCount to the number of successfully
parsed pictures such that the destructor handles all the cleanup.

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

Review URL: https://codereview.chromium.org/1264503011
/external/skia/src/core/SkPictureData.cpp
c21003507110363e43c672313d041cf37c83fad7 23-Jun-2015 reed <reed@google.com> add break statement -- lost during rewrite earlier

BUG=skia:
TBR=

Review URL: https://codereview.chromium.org/1193333004
/external/skia/src/core/SkPictureData.cpp
871872f3f247f6b699617f6d9ef50ef5da6fbe74 22-Jun-2015 reed <reed@google.com> change old picture serialization to really handle images

BUG=skia:3965

Review URL: https://codereview.chromium.org/1199473002
/external/skia/src/core/SkPictureData.cpp
d9591bb98c04aa6d66147d3776a8e4a7b0332771 10-Feb-2015 mtklein <mtklein@chromium.org> Switch font embedding to a compile-time flag, with a todo for runtime.

BUG=skia:3417

Review URL: https://codereview.chromium.org/910283002
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.cpp
1a4900e8be6086a824488dc98d4822e440815657 11-Dec-2014 mtklein <mtklein@chromium.org> Force embedding full font when serializing pictures.

We can't do this unconditionally or pipe will become stupidly slow.

DM's serialize mode fails subtly on Mac when we force embedding, so I've
#ifdef'd that away. Other platforms look fine.

BUG=skia:

Review URL: https://codereview.chromium.org/796523002
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.cpp
703d3c7093f1fb8a40a46d465d9dd5ae60a456d5 12-Nov-2014 mtklein <mtklein@chromium.org> Followup: remove unnecessary SkTRefArray

BUG=skia:

Review URL: https://codereview.chromium.org/719113004
/external/skia/src/core/SkPictureData.cpp
71a236370792416b367a7d2d6b8e471b06b331cd 12-Nov-2014 mtklein <mtklein@chromium.org> More cleanup: streamline paths and bitmaps.

SkBitmapHeap is still used---now exclusively---by pipe.

BUG=skia:

Review URL: https://codereview.chromium.org/715413002
/external/skia/src/core/SkPictureData.cpp
ac6a2f964ee9821df6a4a8f3c46796322a4c37b8 12-Nov-2014 reed <reed@google.com> detect bad bitmaps during deserialization

BUG=skia:3117

Review URL: https://codereview.chromium.org/718103002
/external/skia/src/core/SkPictureData.cpp
a74ce853c824c5ae30e219ddf46a61d91cc0ab2a 12-Nov-2014 mtklein <mtklein@chromium.org> Start stripping out complicated parts of SkPicture{Record,Data}.

First step: no more paint flattening or deduplication.

BUG=skia:

Review URL: https://codereview.chromium.org/723593002
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.cpp
587c5a2b8916b02c387e5e3369ad80589efe9ec1 25-Sep-2014 Mike Klein <mtklein@chromium.org> Seems that some of our compliers can't infer this type, though most can.

BUG=skia:

Review URL: https://codereview.chromium.org/603263002
/external/skia/src/core/SkPictureData.cpp
610a015fda84cd5d1e3f3f826bab393f1193bc0e 25-Sep-2014 mtklein <mtklein@chromium.org> Remove SkPaint dirty bits.

fDirtyBits is only used by SkPaint::FlatteningTraits, which in turn was
only used as a smaller, faster format to flatten paints in-memory to dedup
them in the old picture backend.

SkRecord obsoleted all this. Neither flatten()/unflatten() (disk format)
nor FlatteningTraits is used anywhere performance or size matters.

Here I revert the deduping code back to using the disk format for flattened paints.
We stil do have to flatten and unflatten paints while coverting from SkRecord
backend to the old backend, so we can't just delete this all yet, but any
faithful round trip flatten()/unflatten() pair will be fine, however slow.

NOTRY=true

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/604813003
/external/skia/src/core/SkPictureData.cpp
9594da111dc1c36c1912eb61207aaa54c17ea550 12-Sep-2014 reed <reed@google.com> use SkData::NewUninitialized

BUG=skia:
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/565803005
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.cpp
b7425173f96e93b090787e2386ba5f022b6c2869 26-Aug-2014 fmalita <fmalita@chromium.org> SkTextBlob plumbing

Add SkTextBlob serialization + drawTextBlob() overrides.

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

Author: fmalita@chromium.org

Review URL: https://codereview.chromium.org/499413002
/external/skia/src/core/SkPictureData.cpp
0ed4e863c0b8f8a9ca8182148bf9849e5b5bf2aa 18-Aug-2014 mtklein <mtklein@chromium.org> Stop sorting the results of SkBBH::search().

We only seem to need to sort with SkQuadTree, which is not actively used by
client code. So it's really just wasted work. SkQuadTree is interesting, but
I'd rather disable it than slow down the production code path.

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

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/471063004
/external/skia/src/core/SkPictureData.cpp
c019ec412ba2704bc6e2cdfd321ea06787ba415d 12-Aug-2014 robertphillips <robertphillips@google.com> Add layer counting to SkPictureRecord

This will be used for a SkPicture::suitableForOptimization entry point.

Committed: https://skia.googlesource.com/skia/+/4a2b2e8ed2e35171bf98bad68a69daaced11ec7c

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/464433002
/external/skia/src/core/SkPictureData.cpp
3b73e0163c03a2cb1ee9efa9fddb931751415026 12-Aug-2014 mtklein <mtklein@google.com> Revert of Add layer counting to SkPictureRecord (https://codereview.chromium.org/464433002/)

Reason for revert:
DM's all segfaulty

http://108.170.220.120:10117/builders/Test-Mac10.7-MacMini4.1-GeForce320M-x86_64-Debug/builds/3866/steps/RunDM/logs/stdio

Original issue's description:
> Add layer counting to SkPictureRecord
>
> This will be used for a SkPicture::suitableForOptimization entry point.
>
> Committed: https://skia.googlesource.com/skia/+/4a2b2e8ed2e35171bf98bad68a69daaced11ec7c

R=bsalomon@google.com, robertphillips@google.com
TBR=bsalomon@google.com, robertphillips@google.com
NOTREECHECKS=true
NOTRY=true

Author: mtklein@google.com

Review URL: https://codereview.chromium.org/452673003
/external/skia/src/core/SkPictureData.cpp
4a2b2e8ed2e35171bf98bad68a69daaced11ec7c 11-Aug-2014 robertphillips <robertphillips@google.com> Add layer counting to SkPictureRecord

This will be used for a SkPicture::suitableForOptimization entry point.

R=bsalomon@google.com

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/464433002
/external/skia/src/core/SkPictureData.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/SkPictureData.cpp
afdada2eabdef47a59e08c884b2beb1af3f31aa5 08-Aug-2014 hendrikw <hendrikw@chromium.org> Moved SkPictureContentInfo into its own file. It now tracks the number of skia
operations (maybe, I'm not 100% sure I'm doing this right yet) and the number
of text draws. I also moved some of the gpu logic out of SkPictureRecord and
into SkPictureContentInfo,

http://code.google.com/p/chromium/issues/detail?id=396908
http://code.google.com/p/chromium/issues/detail?id=397198
http://code.google.com/p/chromium/issues/detail?id=399728

BUG=396908
R=nduca@chromium.org, mtklein@chromium.org, robertphillips@google.com, mtklein@google.com

Author: hendrikw@chromium.org

Review URL: https://codereview.chromium.org/435093003
/external/skia/src/core/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.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/SkPictureData.cpp