diff options
author | 2013-06-28 21:32:00 +0000 | |
---|---|---|
committer | 2013-06-28 21:32:00 +0000 | |
commit | f1754ec69131801c1a6ed3c704501a9400bbf324 (patch) | |
tree | 1a54d42c519ed1d15b25ed291f04274cbb0d0120 /src/core/SkPicturePlayback.cpp | |
parent | 925cdca8055fe6d6aab7c271d93d224d9b4e4fc8 (diff) |
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
Diffstat (limited to 'src/core/SkPicturePlayback.cpp')
-rw-r--r-- | src/core/SkPicturePlayback.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp index 898d379578..fe1a037cfc 100644 --- a/src/core/SkPicturePlayback.cpp +++ b/src/core/SkPicturePlayback.cpp @@ -520,15 +520,14 @@ void SkPicturePlayback::parseStreamTag(SkStream* stream, const SkPictInfo& info, case PICT_PICTURE_TAG: { fPictureCount = size; fPictureRefs = SkNEW_ARRAY(SkPicture*, fPictureCount); - bool success; for (int i = 0; i < fPictureCount; i++) { - fPictureRefs[i] = SkNEW_ARGS(SkPicture, (stream, &success, proc)); - // Success can only be false if PICTURE_VERSION does not match + fPictureRefs[i] = SkPicture::CreateFromStream(stream, proc); + // CreateFromStream can only fail if PICTURE_VERSION does not match // (which should never happen from here, since a sub picture will // have the same PICTURE_VERSION as its parent) or if stream->read // returns 0. In the latter case, we have a bug when writing the // picture to begin with, which will be alerted to here. - SkASSERT(success); + SkASSERT(fPictureRefs[i] != NULL); } } break; case PICT_BUFFER_SIZE_TAG: { |