aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/dump_record.cpp
Commit message (Collapse)AuthorAge
* Make SkStream *not* ref counted.Gravatar scroggo2015-01-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkStream is a stateful object, so it does not make sense for it to have multiple owners. Make SkStream inherit directly from SkNoncopyable. Update methods which previously called SkStream::ref() (e.g. SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(), which required the existing owners to call SkStream::unref()) to take ownership of their SkStream parameters and delete when done (including on failure). Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some cases this means heap allocating streams that were previously stack allocated. Respect ownership rules of SkTypeface::CreateFromStream() and SkImageDecoder::buildTileIndex(). Update the comments for exceptional methods which do not affect the ownership of their SkStream parameters (e.g. SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be explicit about ownership. Remove test_stream_life, which tested that buildTileIndex() behaved correctly when SkStream was a ref counted object. The test does not make sense now that it is not. In SkPDFStream, remove the SkMemoryStream member. Instead of using it, create a new SkMemoryStream to pass to fDataStream (which is now an SkAutoTDelete). Make other pdf rasterizers behave like SkPDFDocumentToBitmap. SkPDFDocumentToBitmap delete the SkStream, so do the same in the following pdf rasterizers: SkPopplerRasterizePDF SkNativeRasterizePDF SkNoRasterizePDF Requires a change to Android, which currently treats SkStreams as ref counted objects. Review URL: https://codereview.chromium.org/849103004
* Change SkPicture::draw to playbackGravatar robertphillips2014-09-04
| | | | | | | | R=reed@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/540963002
* Try out scalar picture sizesGravatar robertphillips2014-08-29
| | | | | | | | | | 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
* Remove SkRecorder's kWriteOnly mode.Gravatar commit-bot@chromium.org2014-05-29
| | | | | | | | | | | | | | | | | | | I'm soon going to have SkRecorder start calling getTotalMatrix(), which would be broken in write-only mode. That change is big and nebulous, but it's clear kWriteOnly needs to go, so we might as well kill it now. My notes in bench_playback about kWriteOnly mode being important were probably overly cautious. I now think this is a fair enough comparison even re-recording into a read-write canvas. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/290653004 git-svn-id: http://skia.googlecode.com/svn/trunk@14963 2bbb7eff-a529-9590-31e7-b0007b416f81
* Factor out DumpRecord method from dump_record tool for later useGravatar commit-bot@chromium.org2014-05-15
| | | | | | | | | | R=mtklein@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/282233003 git-svn-id: http://skia.googlecode.com/svn/trunk@14751 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add timing to dump_record.Gravatar commit-bot@chromium.org2014-05-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Prints microsecond timing for each command in the left-hand column: optimized flat/http___mobile_news_sandbox_google_com_news_pt0_scroll_layer_7.skp 4.0 1 Save 2075.0 2 DrawRect 104.0 3 BoundedDrawPosTextH 135.4 4 DrawRect 9.4 5 DrawRect 5.6 6 DrawRect 8.2 7 DrawRect 6.8 8 DrawRect ... (I'm sure Rietveld will just mangle the crap out of that. It's helpfully right-aligned.) To do this, I made Draw from SkRecordDraw Skia-public as SkRecords::Draw, and time it command-by-command. BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/272723007 git-svn-id: http://skia.googlecode.com/svn/trunk@14672 2bbb7eff-a529-9590-31e7-b0007b416f81
* Convert all SkRecordPattern matchers into SkRecord mutators.Gravatar commit-bot@chromium.org2014-05-07
| | | | | | | | | | | | | | | | | | | - Allow any return type from SkRecord mutators and visitors; - update existing calls to mutate and visit; - convert match to operator() in SkRecordPattern; - tidy up a few inelegant bits of old code in tests. The net result is that the generated code is much clearer. All the mutate() calls inline as you'd hope, and you can now actually follow along with the disassembly. BUG=skia:2378 R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/273643007 git-svn-id: http://skia.googlecode.com/svn/trunk@14631 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add dump_record to make inspecting before/after SkRecordOptimize easy.Gravatar commit-bot@chromium.org2014-05-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E.g. dump_record -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp 0 Save 1 DrawRect 2 DrawRect 3 DrawRect 4 DrawRect 5 Save 6 ClipRect 7 Restore 8 Save 9 ClipRect 10 Restore 11 Restore dump_record -O -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp 0 Save 1 DrawRect 2 DrawRect 3 DrawRect 4 DrawRect 5 NoOp 6 NoOp 7 NoOp 8 NoOp 9 NoOp 10 NoOp 11 Restore (Reitveld sadly eats my kickass indentation.) BUG=skia:2378 Committed: http://code.google.com/p/skia/source/detail?r=14596 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/265983007 git-svn-id: http://skia.googlecode.com/svn/trunk@14600 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add dump_record to make inspecting before/after SkRecordOptimize easy.Gravatar commit-bot@chromium.org2014-05-06
E.g. dump_record -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp 0 Save 1 DrawRect 2 DrawRect 3 DrawRect 4 DrawRect 5 Save 6 ClipRect 7 Restore 8 Save 9 ClipRect 10 Restore 11 Restore dump_record -O -r http___groupcloned_com_test_plain_list_animation_simple_html_layer_109.skp 0 Save 1 DrawRect 2 DrawRect 3 DrawRect 4 DrawRect 5 NoOp 6 NoOp 7 NoOp 8 NoOp 9 NoOp 10 NoOp 11 Restore (Reitveld sadly eats my kickass indentation.) BUG=skia:2378 R=fmalita@chromium.org, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/265983007 git-svn-id: http://skia.googlecode.com/svn/trunk@14596 2bbb7eff-a529-9590-31e7-b0007b416f81