scroggo
3030445799
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
2014-12-09 08:27:37 -08:00
scroggo
02b217f80b
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
2014-12-09 07:44:36 -08:00
robertphillips
c0708cb7bc
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
2014-12-09 05:35:07 -08:00
scroggo
0c4aba6edb
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
2014-12-09 05:23:12 -08:00
robertphillips
01d6e5f462
Use variable length key (rather than accumulated matrix) as save layer hoisting key
...
Adding the rendering canvas' CTM to the layer hoisting key (i.e., Add support for hoisting layers in pictures drawn with a matrix - https://codereview.chromium.org/748853002/ ) has increased the cache miss rate due to accumulated floating point error. This CL fixes part of the issue by using the chain of operation indices leading to each saveLayer as the key. The canvas' CTM must still form part of the key but should be less subject to accumulated error.
BUG=skia:2315
Review URL: https://codereview.chromium.org/753253002
2014-12-01 09:09:27 -08:00
reed
1bdfd3f4f0
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
2014-11-24 14:41:51 -08:00
reed
90d0ff013b
add some debugging to SkNVRefCnt
...
BUG=skia:
Review URL: https://codereview.chromium.org/745383003
2014-11-24 12:02:31 -08:00
mtklein
04c9695055
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
2014-11-24 08:20:58 -08:00
mtklein
08d1fccf6e
Add SkNVRefCnt, prune down SkPicture's size
...
SkNVRefCnt is a variant of SkRefCnt that's Not Virtual, so weighs 4 bytes
instead of 8 or 16. There's only benefit to doing this if the deriving class
does not otherwise need a vtable, e.g. SkPicture.
I've stripped out some cruft from SkPicture, rearranged fields to pack tightly,
and added compile asserts for the sizes of SkPicture, SkRecord, and
SkVarAlloc.
BUG=skia:3144
Review URL: https://codereview.chromium.org/741793002
2014-11-20 09:18:32 -08:00
tomhudson
158fcaa031
Implement SkPicture::bytesUsed() for SkRecord backend
...
BUG=chromium:230419
R=mtklein@google.com ,reed@google.com
Review URL: https://codereview.chromium.org/490253003
2014-11-19 10:41:14 -08:00
reed
78e2768897
Allow pictures to have a full bounds
...
This reverts commit 7c4cdd2c5b
.
BUG=skia:
Review URL: https://codereview.chromium.org/738083002
2014-11-19 08:04:34 -08:00
reed
7c4cdd2c5b
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
2014-11-19 07:17:17 -08:00
reed
7e76bff26e
allow pictures to have a full bounds
...
BUG=skia:
Review URL: https://codereview.chromium.org/736583004
2014-11-19 06:59:41 -08:00
robertphillips
8236591547
Rename GrAccelData to SkLayerInfo and move it to src/core
...
Review URL: https://codereview.chromium.org/719133002
2014-11-12 09:32:34 -08:00
robertphillips
4e8e3421aa
Move SkRecordComputeLayers and CollectLayers into SkRecordDraw.cpp
...
Rather then exposing parts of FillBounds (as in Expose FillBounds to allow GrPictureUtils::CollectLayers to be layered on top of it - https://codereview.chromium.org/698643002/ ), this CL moves CollectLayers into SkRecordDraw.cpp to accomplish the layering.
Review URL: https://codereview.chromium.org/716913003
2014-11-12 06:46:08 -08:00
robertphillips
81f71b6630
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
2014-11-11 04:54:49 -08:00
jvanverth
d86b07a8ff
Fix PictureTest for new GPU veto
...
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/702733002
2014-11-04 08:50:16 -08:00
robertphillips
d8aa7b74c8
Upgrade GPUOptimize
...
This will be a bit hairy to review.
The FillBounds and CollectLayers code has diverged significantly resulting in the rendering path seeing different bounds than the hoisting path. This CL merges the FillBounds changes into CollectLayers. A follow on CL will, hopefully, find a way to layer CollectLayers on top of FillBounds.
The only code in CollectLayers that is different from FillBounds is bracketed by "LAYER HOISTING" comments.
NOTREECHECKS=true
Review URL: https://codereview.chromium.org/685263004
2014-10-30 16:45:02 -07:00
junov
a41d3c33bc
Make RTree handle the case where the playback canvas has empty clip bounds
...
BUG=skia:3074
Review URL: https://codereview.chromium.org/678303004
2014-10-30 11:44:20 -07:00
mtklein
4477c3c0e6
Cut down SkBBH API more.
...
- The expected case is now a single bulk-load insert() call instead of N;
- reserve() and flushDeferredInserts() can fold into insert() now;
- SkBBH subclasses may take ownership of the bounds
This appears to be a performance no-op on both my Mac and N5. I guess
even the simplest indirect branch predictor ("same as last time") can predict
the repeated virtual calls to SkBBH::insert() perfectly.
BUG=skia:
Review URL: https://codereview.chromium.org/670213002
2014-10-27 10:27:10 -07:00
robertphillips
9e6835da41
Track nested picture xform state for layer hoisting
...
The accumulated matrix state of any enclosing SkPictures must be stored separate from the picture-local CTM. Any setMatrix calls inside a layer need to replace the picture-local CTM but concatenate with the enclosing SkPicture transform state (and the transform state needed to translate the layer to the correct location in the cached GrTexture).
Review URL: https://codereview.chromium.org/639863005
2014-10-22 05:33:52 -07:00
robertphillips
3aac6e0848
Add clip to layer cache
...
This CL adds the clip region to the GPU layer hoisting image cache. It also switches back to the old caching behavior of using the entire CTM in the cache key rather then just the upper 2x2. This latter change is to focus more on hoisting rather then caching.
It also includes 2 smaller fixes:
a) layer's that have an image filter are no longer atlased (b.c. doing so complicates applying the image filter)
b) the result of clipping the layer's bounds to the current clip is used as the hoisted layer's size. This reduces the amount of pixels drawn to match a normal (non-hoisted) draw pass.
Review URL: https://codereview.chromium.org/640773004
2014-10-20 08:52:40 -07:00
robertphillips
232f6b0f90
Remove unused SaveLayerInfo::fValid field
...
Minor code cleanup
Review URL: https://codereview.chromium.org/643713002
2014-10-09 16:43:42 -07:00
mtklein
208d1704c2
Add SkBBoxHierarchy::reserve() as an optional size hint.
...
I want to play around with how SkTileGrid stores its tiles. Having a
cap on the number of insert() calls can be pretty handy.
While I'm at it, I gave flush() a default empty impl. Like reserve(),
it's really an optional hook for subclasses.
BUG=skia:
Review URL: https://codereview.chromium.org/639933003
2014-10-09 06:49:47 -07:00
mtklein
8f8c25eabb
Demote getCount, getDepth, and clear to RTree-only methods.
...
We use them only to test RTree.
BUG=skia:
Review URL: https://codereview.chromium.org/622773003
2014-10-02 09:53:04 -07:00
mtklein
6bd41969a0
BBHs: void* data -> unsigned data
...
Now that the old backend's not using BBHs, we can specialize them for
SkRecord's needs. The only thing we really want to store is op index, which
should always be small enough to fit into an unsigned (unsigned also helps keep
it straight from other ints floating around).
This means we'll need half (32-bit) or a quarter (64-bit) the bytes in SkTileGrid,
because we don't have to store an extra int for ordering.
BUG=skia:2834
Review URL: https://codereview.chromium.org/617393004
2014-10-02 07:41:56 -07:00
mtklein
8e12656096
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
2014-10-01 09:29:35 -07:00
robertphillips
30d2cc6ff4
Update layer hoisting code to correctly render sub-picture layers
...
The prior code assumed all layers came from a single picture.
BUG=skia:2315
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/595543002
2014-09-24 08:52:19 -07:00
robertphillips
4815fe5a0a
Fix bug in layer hoisting transition to SkRecord backend
...
Care must be taken when setting up the initial CTM matrix for partial SkRecord playbacks b.c. all the setMatrix calls will concatenate with the initial matrix (which may be different then the CTM that is required to draw correctly).
R=mtklein@google.com , bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/549143003
2014-09-16 10:32:43 -07:00
reed
d954498c01
Revert of Revert of allow canvas to force conservative clips (for speed) (patchset #1 id:1 of https://codereview.chromium.org/554033003/ )
...
Reason for revert:
May just rebaseline, plus want to see the results of the chrome tests, so re-trying this CL.
Original issue's description:
> Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/ )
>
> Reason for revert:
> multipicturedraw failed on nvprmsaa -- don't know why yet
>
> Original issue's description:
> > Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
> >
> > 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
> >
> > 2. The conservative clips mean less work is done.
> >
> > 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
> >
> > 4. API is private for now.
> >
> > Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241
>
> TBR=robertphillips@google.com ,bsalomon@google.com,mtklein@google.com,junov@google.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/6f09709519b79a1159f3826645f1c5fbc101ee11
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com , reed@google.com
TBR=bsalomon@google.com , junov@google.com , mtklein@google.com , reed@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/560713002
2014-09-09 18:46:22 -07:00
reed
6f09709519
Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/ )
...
Reason for revert:
multipicturedraw failed on nvprmsaa -- don't know why yet
Original issue's description:
> Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
>
> 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
>
> 2. The conservative clips mean less work is done.
>
> 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
>
> 4. API is private for now.
>
> Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com
TBR=bsalomon@google.com , junov@google.com , mtklein@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
Author: reed@google.com
Review URL: https://codereview.chromium.org/554033003
2014-09-09 12:51:10 -07:00
reed
27a5e656c3
Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
...
1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
2. The conservative clips mean less work is done.
3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
4. API is private for now.
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/541593005
2014-09-09 12:19:30 -07:00
mtklein
93f52a6944
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
2014-09-08 08:41:37 -07:00
mtklein
87c4138fae
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
2014-09-08 07:31:18 -07:00
bsalomon
49f085dddf
"NULL !=" = NULL
...
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/544233002
2014-09-05 13:34:00 -07:00
robertphillips
c5ba71d2e5
Change SkPicture::draw to playback
...
R=reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/540963002
2014-09-04 08:42:50 -07:00
robertphillips
a8d7f0b13c
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
2014-08-29 08:03:56 -07:00
mtklein
d72094d1c1
Add test that confirms Pictures don't leak pixel refs.
...
Have been investigating memory leak failures that show SkRecords'
ImmutableBitmap copy leaking. I think this test proves its not
an obvious problem with ImmutableBitmap or SkRecord.
http://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%282%29/builds/2509/steps/interactive_ui_tests/logs/stdio
BUG=skia:
R=bungeman@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/516593002
2014-08-27 12:12:23 -07:00
robertphillips
d62833079f
Switch GPU Optimization code to SkRecord
...
R=mtklein@google.com , bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/504393002
2014-08-27 11:53:28 -07:00
mtklein
533eb782ed
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
2014-08-27 10:39:42 -07:00
mtklein
2a65a238b0
Remove SkQuadTree.
...
We're not testing it to the same degree we do RTree and TileGrid. Any changes
we'll make to BBH APIs become 33% easier without it. If find we want it again,
we can always resurrect it.
BUG=skia:1021,skia:2834
R=robertphillips@google.com , mtklein@google.com
TBR=reed
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/500373005
2014-08-26 14:07:04 -07:00
mtklein
c92e550d36
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
2014-08-21 13:07:27 -07:00
mtklein
53fecfb15d
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
2014-08-21 09:11:38 -07:00
mtklein
c551d9fcae
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
2014-08-20 08:09:46 -07:00
tomhudson
3a0f279167
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
2014-08-20 05:29:41 -07:00
Mike Klein
27dc17c297
Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702 ."
...
This reverts commit 60c2a79cfa
.
BUG=skia:
Review URL: https://codereview.chromium.org/481173003
2014-08-18 18:35:16 -04:00
tomhudson
60c2a79cfa
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
2014-08-18 15:07:13 -07:00
mtklein
3e8232b6ef
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
2014-08-18 13:39:11 -07:00
ajuma
750ae26745
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
2014-08-18 12:59:55 -07:00
robertphillips
6617d509ab
Rename GPUAccelData to GrAccelData
...
This is calved off of (Add new API to allow layer hoisting/atlasing across picture piles
- https://codereview.chromium.org/474623002/ )
R=bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/482773002
2014-08-18 09:39:34 -07:00
dneto
3f22e8c44a
Fix end-of-pattern matching for Skia recording optimization.
...
The recorder optimizer's pattern matcher was accepting command sequences
when it shouldn't have.
In the submitted case, and the pattern matcher was looking for:
saveLayer, drawBitmap, restore
and in the rendering for the submitted case, the sequence of commands
were:
saveLayer, drawBitmap, drawBitmap, restore
This sequence was improperly accepted by the matcher, and the optimizer
reduced the sequence to:
drawBitmap, drawBitmap
where the opacity from the saveLayer paint argument was applied
to the first drawBitmap only.
The user-visible effect in Chrome was a flashing effect on an image
caused by incorrect (too-high) opacity.
The patch adds a Skia test to check for pixel colour values in
a similarly structured recording. All other Skia tests pass.
Blink layout tests also pass with this change.
BUG=chromium:344987
R=robertphillips@google.com , reed@google.com , mtklein@google.com
Author: dneto@chromium.org
Review URL: https://codereview.chromium.org/430503004
2014-07-30 15:42:22 -07:00
bsalomon
e904c09a3a
Fix alpha textures in NV ES3 contexts on Windows.
...
Make unit tests iterate over all the rendering GL context types rather than using kNative.
Fix the extension printing when gStartupSpew is set.
R=jvanverth@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/398183002
2014-07-17 10:50:59 -07:00
Robert Phillips
cfaeec446d
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
2014-07-13 12:00:50 -04:00
robertphillips
dd528967fc
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
2014-07-13 07:55:53 -07:00
robertphillips
db539905bb
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
2014-07-01 08:47:04 -07:00
Florin Malita
5f6102d079
SaveFlags be-gone
...
Remove the deprecated save(SaveFlags), willSave(SaveFlags) and all
traces of kMatrix_SaveFlags/kClip_SaveFlag.
BUG=skia:2297
R=mtklein@google.com , reed@google.com , robertphillips@google.com
Review URL: https://codereview.chromium.org/340403003
2014-06-30 10:13:28 -04:00
mtklein
d3e474e20c
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
2014-06-27 12:34:44 -07:00
reed
8c0c7b0bcd
remove unnecessary bitmapdevice references
...
TBR=
Author: reed@google.com
Review URL: https://codereview.chromium.org/354143004
2014-06-27 05:49:54 -07:00
Mike Klein
6fc763e3c2
No one uses SkPicture::swap.
...
BUG=skia:
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/349313004
2014-06-23 15:29:52 -04:00
robertphillips
9058d602d0
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
2014-06-10 11:45:46 -07:00
robertphillips
9f1c241e0d
Remove SkPicture::kUsePathBoundsForClip_RecordingFlag
...
The real question is whether we ever want to record a picture without using the path bounds for a conservative (but faster) clip answer?
R=reed@google.com , mtklein@google.com , djsollen@google.com , scroggo@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/316143003
2014-06-09 06:25:34 -07:00
robertphillips
e2f2b98444
No longer limit SkPictureRecorder::partialReplay to Android
...
Toggling this for local testing is a bit of a chore.
R=mtklein@google.com , reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/316173004
2014-06-08 13:12:44 -07:00
robertphillips
9b14f26d0f
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
2014-06-04 05:40:44 -07:00
robertphillips
dcf9ab14a1
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
2014-06-03 10:04:47 -07:00
commit-bot@chromium.org
a1ff26a64a
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
2014-05-30 21:52:52 +00:00
commit-bot@chromium.org
a3264e53ee
Revert "Revert of setConfig -> setInfo ( https://codereview.chromium.org/308683005/ )"
...
This reverts commit eecaea4148805834f223681f70b6488ceba12d09.
R=robertphillips@google.com , scroggo@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/301283003
git-svn-id: http://skia.googlecode.com/svn/trunk@14989 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-30 13:26:10 +00:00
commit-bot@chromium.org
d0f824cfbd
Revert of setConfig -> setInfo ( https://codereview.chromium.org/308683005/ )
...
Reason for revert:
broke all Windows bots
Original issue's description:
> setConfig -> setInfo
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14978
R=robertphillips@google.com , reed@google.com
TBR=reed@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: epoger@google.com
Review URL: https://codereview.chromium.org/302053002
git-svn-id: http://skia.googlecode.com/svn/trunk@14979 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 21:10:32 +00:00
commit-bot@chromium.org
986d681f3e
setConfig -> setInfo
...
BUG=skia:
R=robertphillips@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/308683005
git-svn-id: http://skia.googlecode.com/svn/trunk@14978 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-29 20:47:53 +00:00
skia.committer@gmail.com
8e7d37d8fe
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14912 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-28 03:06:06 +00:00
commit-bot@chromium.org
6d3eaeabdd
add replay entry point to SkPictureRecorder for Android
...
This CL adds an Android-only entry point to address the Java Picture(Picture) and serialize use cases. Note that (in its current form) it doesn't preserve the old API's handling of unbalanced saves/saveLayers (this CL always balances them).
R=reed@google.com , scroggo@google.com , djsollen@google.com , mtklein@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/252873005
git-svn-id: http://skia.googlecode.com/svn/trunk@14911 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 23:41:45 +00:00
commit-bot@chromium.org
2d970b5128
hide discardable factory from public imagegenerator api
...
BUG=skia:
R=halcanary@google.com , scroggo@google.com , djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/295243006
git-svn-id: http://skia.googlecode.com/svn/trunk@14889 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 14:14:22 +00:00
commit-bot@chromium.org
821650655b
Ensure playing back a picture always balances saves and restores
...
This "fixes" the legacy interface's possible creation of pictures with unbalanced save/restores.
The Android dox will need to be updated once/if this lands.
R=reed@google.com , scroggo@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/286033005
git-svn-id: http://skia.googlecode.com/svn/trunk@14772 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 12:26:58 +00:00
reed@google.com
47b679b37d
comment out info4 test until Rob can fix it
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14741 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-14 18:58:16 +00:00
skia.committer@gmail.com
8a1e688552
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14661 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-09 03:05:30 +00:00
commit-bot@chromium.org
f97d65dc25
Fix rendering artifacts in pull-saveLayers-forward mode
...
This CL fixes 2 bugs in the pre-rendering of saveLayers:
1) The drawBitmapRect call wasn't occurring in device space so could sometimes be double transformed
2) The BBH op skipping in SkPicturePlayback could sometimes mess up the SkPictureStateTree's state
It also reduces the number of layers that are pre-rendered when a BBH is not in use.
Committed: http://code.google.com/p/skia/source/detail?r=14650
R=bsalomon@google.com , reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/267293007
git-svn-id: http://skia.googlecode.com/svn/trunk@14659 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-08 23:24:05 +00:00
skia.committer@gmail.com
a5b068cc05
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14605 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-07 03:04:15 +00:00
commit-bot@chromium.org
0205aba7d5
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
2014-05-06 12:02:22 +00:00
robertphillips@google.com
300c6060c8
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
2014-05-05 19:24:23 +00:00
commit-bot@chromium.org
6b392b6111
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
2014-05-05 18:06:14 +00:00
robertphillips@google.com
b950c6fd71
Fix r14368 (First pass at GPU veto) for non-GPU builds
...
https://codereview.chromium.org/255733002/
git-svn-id: http://skia.googlecode.com/svn/trunk@14369 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-25 00:02:12 +00:00
commit-bot@chromium.org
e2cb12a82a
First pass at GPU veto
...
As a short term solution this CL collects information during the recording process for use in suitableForGpuRasterization.
BUG=366495
R=bsalomon@google.com , reed@google.com , alokp@chromium.org
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/251533004
git-svn-id: http://skia.googlecode.com/svn/trunk@14368 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-24 21:53:13 +00:00
robertphillips@google.com
770963f23f
Staging for cleanup of SkPicture-related headers
...
https://codereview.chromium.org/243173002
git-svn-id: http://skia.googlecode.com/svn/trunk@14258 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-18 18:04:41 +00:00
commit-bot@chromium.org
5fb2ce38b3
Staged removal of SkPicture-derived classes
...
This CL removes the SkPicture-derived classes (with a flag to keeps clients working). In the process it also lightens the recording factory function so it is no longer ref counted).
The only interesting bits are in SkPicture* and Sk*Picture.*
R=reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/238273012
git-svn-id: http://skia.googlecode.com/svn/trunk@14251 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-17 23:35:06 +00:00
commit-bot@chromium.org
d393b17cf3
Retract SkPicture::kOptimizeForClippedPlayback_RecordingFlag from public API
...
This CL sets the stage for retracting the SkPicture::kOptimizeForClippedPlayback_RecordingFlag flag
from the public API (more work needs to be done in Blink & Chrome). In the new world the only way
to set this flag (and thus instantiate an SkPicture-derived
class) is by passing a factory to the SkPictureRecorder class. This is to get all clients always using
factories so that we can then change the factory call used (i.e., so the factory just creates a BBH) and
do away with the SkPicture-derived classes.
BUG=skia:2315
R=reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/239703006
git-svn-id: http://skia.googlecode.com/svn/trunk@14221 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-16 16:02:10 +00:00
robertphillips@google.com
84b18c7e3e
split SkPictureRecorder out of SkPicture
...
https://codereview.chromium.org/214953003/
git-svn-id: http://skia.googlecode.com/svn/trunk@14171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-13 19:09:42 +00:00
commit-bot@chromium.org
2b4e370a2f
Convert SkPicture's generation ID to a unique ID
...
This CL addresses linger code review comments on r14037 (Add generation ID to SkPicture https://codereview.chromium.org/222683002/ )
R=reed@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/225283014
git-svn-id: http://skia.googlecode.com/svn/trunk@14079 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-07 18:26:22 +00:00
skia.committer@gmail.com
a9157727f7
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@14039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-03 03:04:26 +00:00
robertphillips@google.com
d5500886a2
Add generation ID to SkPicture
...
https://codereview.chromium.org/222683002/
git-svn-id: http://skia.googlecode.com/svn/trunk@14037 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 23:51:13 +00:00
commit-bot@chromium.org
70512af9dd
Add a means of extracting active operations from SkPicture
...
For the "pull forward" task I will be comparing the two cases:
analyze the whole skp and use the BBH information
analyze only the active portion of the skp
In the first case we need a way to get the BBH information out of the picture in order to extract the relevant portions of the whole-skp analysis. This adds caching of the active ops so that work isn't duplicated between when the optimization path queries for that information and when the usual draw path queries for it.
Committed: http://code.google.com/p/skia/source/detail?r=13836
R=reed@google.com , bsalomon@google.com
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/195793010
git-svn-id: http://skia.googlecode.com/svn/trunk@13853 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-18 17:45:32 +00:00
commit-bot@chromium.org
5bee0543f0
Give PictureTest more verbose error messages.
...
Motivation: On an odd build system I'm testing, we're triggering these
errors. More verbose test output will help me diagnose the errors.
R=robertphillips@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/183023014
git-svn-id: http://skia.googlecode.com/svn/trunk@13678 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-05 20:59:45 +00:00
skia.committer@gmail.com
370a89980b
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13634 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-01 03:02:09 +00:00
robertphillips@google.com
8f90a892c5
add new onClip* methods to SkCanvas
...
https://codereview.chromium.org/183453002/
git-svn-id: http://skia.googlecode.com/svn/trunk@13627 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 18:19:39 +00:00
robertphillips@google.com
03fc3b4f67
Revert of r13620 (add new onClip* methods to SkCanvas - https://codereview.chromium.org/183453002/ ) due to broken Chrome Canary and failing tests.
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13622 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 15:28:02 +00:00
robertphillips@google.com
392c9be344
add new onClip* methods to SkCanvas
...
https://codereview.chromium.org/183453002/
git-svn-id: http://skia.googlecode.com/svn/trunk@13620 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-28 14:35:45 +00:00
commit-bot@chromium.org
ea7d08e3bb
Add unit test for unbalanced save and restores in pictures.
...
R=reed@google.com
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/150653010
git-svn-id: http://skia.googlecode.com/svn/trunk@13430 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 16:00:51 +00:00
mike@reedtribe.org
deee496cd3
replace setConfig+allocPixels with single call
...
BUG=skia:
Review URL: https://codereview.chromium.org/162643002
git-svn-id: http://skia.googlecode.com/svn/trunk@13426 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-13 14:41:43 +00:00
commit-bot@chromium.org
50b393a768
SkPictureRecord: silently do nothing for non-drawable SkBitmaps.
...
BUG=skia:2135
R=reed@google.com
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/154083004
git-svn-id: http://skia.googlecode.com/svn/trunk@13386 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 18:29:10 +00:00
commit-bot@chromium.org
e254310a55
add SkCanvas constructor that explicitly creates no_config with dimensions
...
BUG=skia:
R=scroggo@google.com , halcanary@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/137833016
git-svn-id: http://skia.googlecode.com/svn/trunk@13272 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-31 19:42:58 +00:00
tfarina@chromium.org
8f6884aab8
Cleanup: Sanitize the order of includes under tests/
...
Initially this was to make sure Test.h appeared after the Sk*.h includes.
Patch generated by the following command line:
$ ~/chromium/src/tools/sort-headers.py tests/*.cpp
BUG=None
TEST=tests
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/145313004
git-svn-id: http://skia.googlecode.com/svn/trunk@13177 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 20:56:26 +00:00
commit-bot@chromium.org
e2eac8b2fd
Move macros from TestClassDef.h to Test.h
...
Motivation: those macros don't make any sense without the definitions
in Test.h.
BUG=
R=mtklein@google.com
Author: halcanary@google.com
Review URL: https://codereview.chromium.org/138563004
git-svn-id: http://skia.googlecode.com/svn/trunk@13074 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 21:04:37 +00:00
skia.committer@gmail.com
2e9a7157ee
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13061 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-14 07:01:42 +00:00
robertphillips@google.com
0e4ce14e7f
Fix for r13038
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13039 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:46:45 +00:00
robertphillips@google.com
56bf6e4bce
Pull in Chromium's version of GatherPixelRefs
...
https://codereview.chromium.org/134473002/
git-svn-id: http://skia.googlecode.com/svn/trunk@13038 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 13:33:26 +00:00
skia.committer@gmail.com
856673a816
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13008 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-10 07:08:11 +00:00
robertphillips@google.com
fe5824af29
Fix for Mac-specific compilation issue in r13000
...
git-svn-id: http://skia.googlecode.com/svn/trunk@13001 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 19:45:29 +00:00
robertphillips@google.com
ed9866cc8a
Expand GatherPixelRefs unit test
...
https://codereview.chromium.org/132293002/
git-svn-id: http://skia.googlecode.com/svn/trunk@13000 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-09 19:20:45 +00:00
reed@google.com
672588b684
change offset to xy for pixelref subsetting
...
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/105893012
git-svn-id: http://skia.googlecode.com/svn/trunk@12958 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-08 15:42:01 +00:00
halcanary@google.com
3d50ea1b87
Add Options to SkDecodingImageGenerator, simplify API.
...
Motivation: We want to remove redundant classes from Skia. To
that end we want to remove SkImageRef and its subclasses and
replace their uses with SkDiscardablePixelRef +
SkDecodingImageGenerator. Since Android uses SkImageRef, we need
to make sure that SkDecodingImageGenerator allows all of the
settings that Android exposes in BitmapFactory.Options.
To that end, we have created an Options struct for the
SkDecodingImageGenerator which lets the client of the generator set
sample size, dithering, and bitmap config.
We have made the SkDecodingImageGenerator constructor private
and replaced the SkDecodingImageGenerator::Install functions
with a SkDecodingImageGenerator::Create functions (one for
SkData and one for SkStream) which now take a
SkDecodingImageGenerator::Options struct.
Also added a ImageDecoderOptions test which loops through a list
of sets of options and tries them on a set of 5 small encoded
images.
Also updated several users of SkDecodingImageGenerator::Install to
follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp,
and PictureTest.cpp, CachedDecodingPixelRefTest.cpp.
We also added a new ImprovedBitmapFactory Test which simulates the
exact function that Android will need to modify to use this,
installPixelRef() in BitmapFactory.
R=reed@google.com , scroggo@google.com
Committed: https://code.google.com/p/skia/source/detail?r=12744
Review URL: https://codereview.chromium.org/93703004
git-svn-id: http://skia.googlecode.com/svn/trunk@12855 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 13:15:13 +00:00
commit-bot@chromium.org
1ad518bf38
Revert of https://codereview.chromium.org/93703004/
...
Reason for revert: Test failures
R=scroggo@google.com , djsollen@google.com , reed@google.com , halcanary@google.com
TBR=djsollen@google.com , halcanary@google.com , reed@google.com , scroggo@google.com
NOTREECHECKS=true
NOTRY=true
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/103753007
git-svn-id: http://skia.googlecode.com/svn/trunk@12747 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 18:33:15 +00:00
halcanary@google.com
d665dc4c10
Add Options to SkDecodingImageGenerator, simplify API.
...
Motivation: We want to remove redundant classes from Skia. To
that end we want to remove SkImageRef and its subclasses and
replace their uses with SkDiscardablePixelRef +
SkDecodingImageGenerator. Since Android uses SkImageRef, we need
to make sure that SkDecodingImageGenerator allows all of the
settings that Android exposes in BitmapFactory.Options.
To that end, we have created an Options struct for the
SkDecodingImageGenerator which lets the client of the generator set
sample size, dithering, and bitmap config.
We have made the SkDecodingImageGenerator constructor private
and replaced the SkDecodingImageGenerator::Install functions
with a SkDecodingImageGenerator::Create functions (one for
SkData and one for SkStream) which now take a
SkDecodingImageGenerator::Options struct.
Also added a ImageDecoderOptions test which loops through a list
of sets of options and tries them on a set of 5 small encoded
images.
Also updated several users of SkDecodingImageGenerator::Install to
follow new call signature - gm/factory.cpp, LazyDecodeBitmap.cpp,
and PictureTest.cpp, CachedDecodingPixelRefTest.cpp.
We also added a new ImprovedBitmapFactory Test which simulates the
exact function that Android will need to modify to use this,
installPixelRef() in BitmapFactory.
R=reed@google.com , scroggo@google.com
Review URL: https://codereview.chromium.org/93703004
git-svn-id: http://skia.googlecode.com/svn/trunk@12744 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 17:40:25 +00:00
reed@google.com
bf790232f6
Update all callsites to use info for pixelrefs
...
#define SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR in chrome to keep old API signature (for now)
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/100723005
git-svn-id: http://skia.googlecode.com/svn/trunk@12677 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:45:58 +00:00
robertphillips@google.com
0daa1adb03
Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
...
https://codereview.chromium.org/112603003/
git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 15:24:37 +00:00
reed@google.com
93b40594b7
Remvoe duplicate impl for SkImageInfo flattening
...
Add onNewLockPixels
This reverts commit bb8eff6a70c52b7644391cfd4f4d21bf7294a6bf.
BUG=
Review URL: https://codereview.chromium.org/111323005
git-svn-id: http://skia.googlecode.com/svn/trunk@12665 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 14:18:14 +00:00
tfarina@chromium.org
e4fafb146e
Use DEFINE_TESTCLASS_SHORT macro in tests.
...
The three version of DEFINE_TESTCLASS macro is deprecated and thus just
use the simple, short one.
BUG=None
TEST=out/Debug/tests
R=mtklein@google.com , bsalomon@google.com , robertphillips@google.com
Review URL: https://codereview.chromium.org/100113004
git-svn-id: http://skia.googlecode.com/svn/trunk@12653 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 21:11:12 +00:00
reed@google.com
398337b3a5
Revert "remvoe duplicate impl for SkImageInfo flattening"
...
Reason: breaks chrome_mac_tests which still have non-imageinfo constructors
This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.
BUG=
Review URL: https://codereview.chromium.org/103033005
git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:22:39 +00:00
reed@google.com
f3aead2829
remvoe duplicate impl for SkImageInfo flattening
...
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""""
This reverts commit eabd6b2ed4e494b323c08f32358f45950a0368c3.
BUG=
Review URL: https://codereview.chromium.org/108773003
git-svn-id: http://skia.googlecode.com/svn/trunk@12624 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:38:46 +00:00
reed@google.com
6a32add491
Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""""
...
This reverts commit d08eca87a0bef10112a211de540f89656a80b86a.
BUG=
Review URL: https://codereview.chromium.org/108303003
git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:19:10 +00:00
reed@google.com
6965a0a2df
PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""
...
BUG=
Review URL: https://codereview.chromium.org/110503003
git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:04:56 +00:00
reed@google.com
2ebc10dd12
Revert "Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""
...
This reverts commit 5f035e90d6dea0139a4f204b634e7b7b3b4976d7.
Reverting because it breaks chrome/blink due to new SkPixelRef constructor arg.
BUG=
Review URL: https://codereview.chromium.org/108993002
git-svn-id: http://skia.googlecode.com/svn/trunk@12551 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 21:43:05 +00:00
reed@google.com
473f0aa2bb
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""
...
This reverts commit 4174afb18a9746bbad2a06c0ec2d4ad35f72d790.
BUG=
Review URL: https://codereview.chromium.org/108723003
git-svn-id: http://skia.googlecode.com/svn/trunk@12547 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 20:31:45 +00:00
reed@google.com
5b132b28da
Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."
...
This reverts commit 154e08b2f5904ef533da694e3510befcb9a3f3e2.
revert due to warnings
Review URL: https://codereview.chromium.org/108513003
git-svn-id: http://skia.googlecode.com/svn/trunk@12538 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:51:08 +00:00
reed@google.com
3e89524e74
PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.
...
R=mtklein@google.com , scroggo@google.com
Review URL: https://codereview.chromium.org/68973005
git-svn-id: http://skia.googlecode.com/svn/trunk@12537 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:41:33 +00:00
tomhudson@google.com
381010e550
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
2013-10-24 11:12:47 +00:00
robertphillips@google.com
e9cd27d4a3
Third wave of Win64 warning cleanup
...
https://codereview.chromium.org/27487003/
git-svn-id: http://skia.googlecode.com/svn/trunk@11817 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-16 17:48:11 +00:00
commit-bot@chromium.org
e0e7cfe44b
Change old PRG to be SkLCGRandom; change new one to SkRandom
...
The goal here is to get people to start using the new random number
generator, while leaving the old one in place so we don't have to
rebaseline GMs.
R=reed@google.com , bsalomon@google.com
Author: jvanverth@google.com
Review URL: https://chromiumcodereview.appspot.com/23576015
git-svn-id: http://skia.googlecode.com/svn/trunk@11169 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-09-09 20:09:12 +00:00
robertphillips@google.com
1f2f338e23
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
2013-08-29 11:54:56 +00:00
fmalita@google.com
d0f1a4fb28
Fix clip expansion in SkPictureRecord::recordRestoreOffsetPlaceholder()
...
For operations which can expand the region, zeroing previous clip ops' restore offsets is not enough: we need to also break the chain - otherwise the next restore() will simply traverse back and reset the skip offsets.
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/22987003
git-svn-id: http://skia.googlecode.com/svn/trunk@10934 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-27 15:50:19 +00:00
commit-bot@chromium.org
fe433c1370
When gather pixel refs was broken, REPORTER_ASSERT(data) realized that data was NULL, but subsequent lines dereferenced it anyway, and so segfaulted.
...
R=reed@google.com , tomhudson@google.com
Author: tomhudson@chromium.org
Review URL: https://chromiumcodereview.appspot.com/18904003
git-svn-id: http://skia.googlecode.com/svn/trunk@9933 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-09 16:04:32 +00:00
scroggo@google.com
f1754ec691
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
2013-06-28 21:32:00 +00:00
scroggo@google.com
1b1bcc3cea
New API for encoding bitmaps during serialization.
...
This change gives more flexibility to the implementation of
EncodeBitmap to prefer calling refEncodedData, doing its own
encode, or even doing both and making a decision about which
to use.
The new function signature also allows the implementation to
tell the ordered write buffer whether to store the pixel offset,
in the case where the encoded bitmap represents the larger
bitmap, or to ignore the pixel offset, in the case where the
implementation only encoded the subset that is used.
Requires changes to chromium to use the new function signature.
(https://codereview.chromium.org/15496006/ )
SkPicture:
New API for EncodeBitmap.
SkOrderedReadBuffer:
Ifdef'd out addition of reading the offset.
SkOrderedWriteBuffer:
Never call refEncodedData. Allow the user to call that from their
EncodeBitmap function, if desired.
This addresses https://code.google.com/p/skia/issues/detail?id=1239
Add in ifdef'd out code to record the offset.
PictureTest and PictureRenderer:
Implement the new definition of EncodeBitmap. Also update the name
of the function to meet coding style guidelines.
BUG=https://code.google.com/p/skia/issues/detail?id=1239
R=reed@google.com
Review URL: https://codereview.chromium.org/15489004
git-svn-id: http://skia.googlecode.com/svn/trunk@9226 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 20:31:23 +00:00
junov@chromium.org
d575eed354
Fix behavior of SkPicture::kUsePathBoundsForClip_RecordingFlag to handle inverse fills and all clip ops correctly.
...
BUG=crbug.com/229011
TEST=Picture unit test + complexclip* GMs
Review URL: https://codereview.chromium.org/14820021
git-svn-id: http://skia.googlecode.com/svn/trunk@9063 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-08 15:39:13 +00:00
junov@chromium.org
279627efc5
reverting 9031
...
git-svn-id: http://skia.googlecode.com/svn/trunk@9033 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-07 14:11:40 +00:00
junov@chromium.org
0962ae1fbc
Fix SkPicture path bound optimization to handle inverse filled paths.
...
BUG=crbug.com/229011
TEST=Picture unit test
Review URL: https://codereview.chromium.org/14819008
git-svn-id: http://skia.googlecode.com/svn/trunk@9031 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-07 13:26:18 +00:00
scroggo@google.com
49ce11ba14
Use SkError for a bitmap that could not be decoded.
...
When recreating an SkPicture from an SkStream, use the
new error reporting system to report that an SkBitmap
could not be decoded.
Add a test that the parse error is thrown.
Review URL: https://codereview.chromium.org/13892009
git-svn-id: http://skia.googlecode.com/svn/trunk@8866 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-04-25 18:29:32 +00:00
jvanverth@google.com
c490f801b0
Change random number generator for 'tests' to SkMWCRandom. Also removes some
...
unused headers and fixes a couple of bugs exposed by changing the random
number generator:
First, the function SkMatrix::getMaxStretch() had an error where it was testing
the square of a number against near-zero. This led to it occasionally taking a
cheaper but imprecise path for computing the eigenvalues of the matrix. It's
been replaced with a check against the square of SK_ScalarNearlyZero.
The second case was a failure in ClipStackTest, where it hit the rare case of
a practically empty clip stack (it has a single Union) and we set a tight
bounds. The bounds rect doesn't get set by GrReducedClip::ReduceClipStack() in
this case, so when it clips the reduced stack it's clipping against garbage,
and the resulting regions don't match. The solution is to initialize the
tightBounds rect.
git-svn-id: http://skia.googlecode.com/svn/trunk@7952 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-03-04 13:56:38 +00:00
sugoi@google.com
54f0d1b711
Tests : Unused parameters cleanup
...
I removed unused parameters in the tests wherever it was trivial to do so. I'm trying to get the easy ones out of the way before we get into more involved discussions around this.
Review URL: https://codereview.appspot.com/7394055
git-svn-id: http://skia.googlecode.com/svn/trunk@7891 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-02-27 19:17:41 +00:00
junov@chromium.org
94f20dc89a
Fixing crash in cloning empty SkPicture object
...
BUG=https://code.google.com/p/chromium/issues/detail?id=172062
TEST=Pictures unit test, test_clone_empty
Review URL: https://codereview.appspot.com/7223048
git-svn-id: http://skia.googlecode.com/svn/trunk@7430 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-28 21:04:44 +00:00
reed@google.com
72aa79cfea
override drawOval and drawRRect in GatherPixelRefDevice, so we don't miss those,
...
and possibly crash trying to raster into an empty device.
http://code.google.com/p/skia/issues/detail?id=1086
Review URL: https://codereview.appspot.com/7193057
git-svn-id: http://skia.googlecode.com/svn/trunk@7372 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-24 18:27:42 +00:00
bsalomon@google.com
5f429b098f
Fix signed/unsigned comparison in PictureTest.cpp
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7092 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-08 18:42:20 +00:00
bsalomon@google.com
c3d753e345
Fix signed/unsigned comparison warning in PictureTest.cpp
...
git-svn-id: http://skia.googlecode.com/svn/trunk@7088 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-01-08 17:24:44 +00:00
scroggo@google.com
7c9d539d88
In SKP serialization, use existing encoded data.
...
If an SkBitmap has encoded data, write that during serialization
rather than reencoding it.
Add a test to ensure that this does not modify the output stream,
so the reader need not know the difference.
Review URL: https://codereview.appspot.com/6884054
git-svn-id: http://skia.googlecode.com/svn/trunk@6732 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-10 15:40:55 +00:00
scroggo@google.com
4b90b1122c
Handle recording a bitmap if copy fails.
...
If SkBitmapHeap::insert() returns INVALID_SLOT, assert at picture
record time so we can debug, but allow it to continue in release
mode, so that we can still capture a picture. At playback time,
print a message so we know that there was an error.
Review URL: https://codereview.appspot.com/6873050
git-svn-id: http://skia.googlecode.com/svn/trunk@6664 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-12-04 15:08:56 +00:00
skia.committer@gmail.com
c3d7d90973
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@6632 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-30 02:01:24 +00:00
reed@google.com
fe7b1ed30a
add SkPictureUtils::GatherPixelRefs()
...
Review URL: https://codereview.appspot.com/6845106
git-svn-id: http://skia.googlecode.com/svn/trunk@6615 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-11-29 21:00:39 +00:00
skia.committer@gmail.com
52c2437c73
Sanitizing source files in Skia_Periodic_House_Keeping
...
git-svn-id: http://skia.googlecode.com/svn/trunk@5780 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-03 02:01:13 +00:00
reed@google.com
21b519d56f
catch empty stack in restorefixup called by clipRect
...
write stress-test for save/clip/restore peephole optimization
git-svn-id: http://skia.googlecode.com/svn/trunk@5774 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-10-02 17:42:15 +00:00
scroggo@google.com
d614c6a4e0
For a picture playback with nothing written, use an empty SkData.
...
This prevents crashing when attempting to access fOpData.
BUG=https://code.google.com/p/skia/issues/detail?id=870
Review URL: https://codereview.appspot.com/6499108
git-svn-id: http://skia.googlecode.com/svn/trunk@5550 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-09-14 17:26:37 +00:00