Commit Graph

21 Commits

Author SHA1 Message Date
scroggo
a1193e4b0e Make SkStream *not* ref counted.
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
2015-01-21 12:09:53 -08:00
reed
9594da111d use SkData::NewUninitialized
BUG=skia:
R=bungeman@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/565803005
2014-09-12 12:12:27 -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
tfarina
a8e2e1504b Cleanup: Rename SkOSPath functions.
Mostly for brevity and matches better with Python:

Python           | Old C++                 | New C++
os.path.join     | SkOSPath::SkPathJoin    | SkOSPath::Join
os.path.basename | SkOSPath::SkBasename    | SkOSPath::Basename

BUG=None
TEST=make all
R=mtklein@google.com, bsalomon@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/428443002
2014-07-28 19:26:58 -07:00
tfarina
da4ed3289e Cleanup: Delete sk_tools::make_filepath() in favor of SkOSPath::SkPathJoin().
BUG=None
TEST=make tools tests && out/Debug/tests
R=epoger@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/327403002
2014-06-12 08:50:56 -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
commit-bot@chromium.org
bdc772ebbe Add quiet mode to lua_pictures.
This allows:

for i in {0..5}; do
    out/Debug/lua_pictures -q --skpPath $SKP_PATH -l $SCRIPT --modulo $i 6
done

to generate output similar to what telemetry will generate.

R=reed@google.com

Author: robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13861 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-19 19:23:17 +00:00
commit-bot@chromium.org
56799e2ee6 Add the lazy decoder from PictureFlags to SkImageDecoder
R=caryclark@google.com, scroggo@google.com

Author: sglez@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@10111 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-16 18:21:46 +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
commit-bot@chromium.org
aaeb87d32c Add modulo flag to lua_pictures.
The intended use is spawning processes to save time.

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

Author: sglez@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9736 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-21 21:45:20 +00:00
commit-bot@chromium.org
3da6c56f14 Allow files, making ".skp files or directories are required." less of a lie.
BUG=
R=reed@google.com

Author: mtklein@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9665 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-18 18:35:58 +00:00
reed@google.com
b8b3d90284 use ForceLinking to get codecs into lua_picture
BUG=
R=scroggo@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9549 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-12 20:07:10 +00:00
skia.committer@gmail.com
26da7f00ae Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9387 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-06-01 07:01:39 +00:00
reed@google.com
e2aad27c5f sort the glyphID arrays
add head/tail code

git-svn-id: http://skia.googlecode.com/svn/trunk@9376 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-31 19:46:02 +00:00
reed@google.com
3597b73bc6 expand SkLua to handle creation of its own State
add lua sample

BUG=
R=robertphillips@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9247 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-22 20:12:50 +00:00
reed@google.com
2d51677b19 add startcanvas/endcanvas entry-points for the script. rename all "official" entry-points to use "sk_scrape_" prefix
BUG=

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9216 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 16:05:53 +00:00
mike@reedtribe.org
f02fe3d4fe support SkCanvas as a real lua object
git-svn-id: http://skia.googlecode.com/svn/trunk@9208 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 12:20:39 +00:00
mike@reedtribe.org
0e59b796e5 allow multiple lua files to be used in lua_pictures
begin "stdlib" for skia in lua
add comments to scrape.lua



git-svn-id: http://skia.googlecode.com/svn/trunk@9206 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 03:24:37 +00:00
mike@reedtribe.org
cef454e7b8 printf name of picture *before* we try to scrape it.
git-svn-id: http://skia.googlecode.com/svn/trunk@9205 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-21 01:49:06 +00:00
skia.committer@gmail.com
539f364e80 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@9159 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-16 07:01:00 +00:00
reed@google.com
dff7e11c20 add SkLuaCanvas
add lua 5.2 to third_party

BUG=
R=bungeman@google.com

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9149 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-05-15 19:34:20 +00:00