aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-07 14:45:40 +0000
committerGravatar scroggo@google.com <scroggo@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-07 14:45:40 +0000
commit2983ddd4b57a05e3262fe2c1964a34f1717a5a1c (patch)
treeac680c999fdb0ee32d8d17999aa097f20c5bddb7
parent66f5aaad90b5027daad8acbd5e8d83160097ed95 (diff)
Revert "Allow supporting 1 older PICTURE_VERSION."
This reverts commit deb9d6990ef2d153230340d960d86b0966f261e1. That change was just to allow us to bump the PICTURE_VERSION without changing the SKPs to the new one. Since it is not entirely reliable, I am removing it. R=rmistry@google.com Review URL: https://codereview.chromium.org/14741007 git-svn-id: http://skia.googlecode.com/svn/trunk@9035 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--include/core/SkPicture.h2
-rw-r--r--src/core/SkOrderedReadBuffer.cpp109
-rw-r--r--src/core/SkOrderedReadBuffer.h3
-rw-r--r--src/core/SkPicture.cpp8
-rw-r--r--src/core/SkPicturePlayback.cpp1
5 files changed, 38 insertions, 85 deletions
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
index 157c4cafb6..b2c2b62ede 100644
--- a/include/core/SkPicture.h
+++ b/include/core/SkPicture.h
@@ -192,6 +192,7 @@ public:
void abortPlayback();
#endif
+protected:
// V2 : adds SkPixelRef's generation ID.
// V3 : PictInfo tag at beginning, and EOF tag at the end
// V4 : move SkPictInfo to be the header
@@ -205,7 +206,6 @@ public:
// V11: modify how readBitmap and writeBitmap store their info.
static const uint32_t PICTURE_VERSION = 11;
-protected:
// fPlayback, fRecord, fWidth & fHeight are protected to allow derived classes to
// install their own SkPicturePlayback-derived players,SkPictureRecord-derived
// recorders and set the picture size
diff --git a/src/core/SkOrderedReadBuffer.cpp b/src/core/SkOrderedReadBuffer.cpp
index a5be45eab1..85491c5607 100644
--- a/src/core/SkOrderedReadBuffer.cpp
+++ b/src/core/SkOrderedReadBuffer.cpp
@@ -23,7 +23,6 @@ SkOrderedReadBuffer::SkOrderedReadBuffer() : INHERITED() {
fFactoryArray = NULL;
fFactoryCount = 0;
fBitmapDecoder = NULL;
- fPictureVersion = SkPicture::PICTURE_VERSION;
}
SkOrderedReadBuffer::SkOrderedReadBuffer(const void* data, size_t size) : INHERITED() {
@@ -38,7 +37,6 @@ SkOrderedReadBuffer::SkOrderedReadBuffer(const void* data, size_t size) : INHERI
fFactoryArray = NULL;
fFactoryCount = 0;
fBitmapDecoder = NULL;
- fPictureVersion = SkPicture::PICTURE_VERSION;
}
SkOrderedReadBuffer::SkOrderedReadBuffer(SkStream* stream) {
@@ -55,7 +53,6 @@ SkOrderedReadBuffer::SkOrderedReadBuffer(SkStream* stream) {
fFactoryArray = NULL;
fFactoryCount = 0;
fBitmapDecoder = NULL;
- fPictureVersion = SkPicture::PICTURE_VERSION;
}
SkOrderedReadBuffer::~SkOrderedReadBuffer() {
@@ -171,88 +168,52 @@ uint32_t SkOrderedReadBuffer::getArrayCount() {
return *(uint32_t*)fReader.peek();
}
-void SkOrderedReadBuffer::setPictureVersion(uint32_t version) {
- SkASSERT(version <= SkPicture::PICTURE_VERSION);
- fPictureVersion = version;
-}
-
void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) {
- if (10 == fPictureVersion) {
- // Old code to read a bitmap in PICTURE_VERSION 10
+ const int width = this->readInt();
+ const int height = this->readInt();
+ // The writer stored a boolean value to determine whether an SkBitmapHeap was used during
+ // writing.
+ if (this->readBool()) {
+ // An SkBitmapHeap was used for writing. Read the index from the stream and find the
+ // corresponding SkBitmap in fBitmapStorage.
+ const uint32_t index = fReader.readU32();
+ fReader.readU32(); // bitmap generation ID (see SkOrderedWriteBuffer::writeBitmap)
+ if (fBitmapStorage) {
+ *bitmap = *fBitmapStorage->getBitmap(index);
+ fBitmapStorage->releaseRef(index);
+ return;
+ } else {
+ // The bitmap was stored in a heap, but there is no way to access it. Set an error and
+ // fall through to use a place holder bitmap.
+ SkErrorInternals::SetError(kParseError_SkError, "SkOrderedWriteBuffer::writeBitmap "
+ "stored the SkBitmap in an SkBitmapHeap, but "
+ "SkOrderedReadBuffer has no SkBitmapHeapReader to "
+ "retrieve the SkBitmap.");
+ }
+ } else {
+ // The writer stored false, meaning the SkBitmap was not stored in an SkBitmapHeap.
const size_t length = this->readUInt();
if (length > 0) {
- // Bitmap was encoded.
+ // A non-zero size means the SkBitmap was encoded.
const void* data = this->skip(length);
- const int width = this->readInt();
- const int height = this->readInt();
if (fBitmapDecoder != NULL && fBitmapDecoder(data, length, bitmap)) {
SkASSERT(bitmap->width() == width && bitmap->height() == height);
- } else {
- // This bitmap was encoded when written, but we are unable to decode, possibly due to
- // not having a decoder. Use a placeholder bitmap.
- SkErrorInternals::SetError(kParseError_SkError,
- "Could not decode bitmap. Resulting bitmap will be red.");
- bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height);
- bitmap->allocPixels();
- bitmap->eraseColor(SK_ColorRED);
- }
- } else {
- if (fBitmapStorage) {
- const uint32_t index = fReader.readU32();
- fReader.readU32(); // bitmap generation ID (see SkOrderedWriteBuffer::writeBitmap)
- *bitmap = *fBitmapStorage->getBitmap(index);
- fBitmapStorage->releaseRef(index);
- } else {
- bitmap->unflatten(*this);
- }
- }
- } else {
- const int width = this->readInt();
- const int height = this->readInt();
- // The writer stored a boolean value to determine whether an SkBitmapHeap was used during
- // writing.
- if (this->readBool()) {
- // An SkBitmapHeap was used for writing. Read the index from the stream and find the
- // corresponding SkBitmap in fBitmapStorage.
- const uint32_t index = fReader.readU32();
- fReader.readU32(); // bitmap generation ID (see SkOrderedWriteBuffer::writeBitmap)
- if (fBitmapStorage) {
- *bitmap = *fBitmapStorage->getBitmap(index);
- fBitmapStorage->releaseRef(index);
return;
- } else {
- // The bitmap was stored in a heap, but there is no way to access it. Set an error and
- // fall through to use a place holder bitmap.
- SkErrorInternals::SetError(kParseError_SkError, "SkOrderedWriteBuffer::writeBitmap "
- "stored the SkBitmap in an SkBitmapHeap, but "
- "SkOrderedReadBuffer has no SkBitmapHeapReader to "
- "retrieve the SkBitmap.");
}
+ // This bitmap was encoded when written, but we are unable to decode, possibly due to
+ // not having a decoder.
+ SkErrorInternals::SetError(kParseError_SkError,
+ "Could not decode bitmap. Resulting bitmap will be red.");
} else {
- // The writer stored false, meaning the SkBitmap was not stored in an SkBitmapHeap.
- const size_t length = this->readUInt();
- if (length > 0) {
- // A non-zero size means the SkBitmap was encoded.
- const void* data = this->skip(length);
- if (fBitmapDecoder != NULL && fBitmapDecoder(data, length, bitmap)) {
- SkASSERT(bitmap->width() == width && bitmap->height() == height);
- return;
- }
- // This bitmap was encoded when written, but we are unable to decode, possibly due to
- // not having a decoder.
- SkErrorInternals::SetError(kParseError_SkError,
- "Could not decode bitmap. Resulting bitmap will be red.");
- } else {
- // A size of zero means the SkBitmap was simply flattened.
- bitmap->unflatten(*this);
- return;
- }
+ // A size of zero means the SkBitmap was simply flattened.
+ bitmap->unflatten(*this);
+ return;
}
- // Could not read the SkBitmap. Use a placeholder bitmap.
- bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height);
- bitmap->allocPixels();
- bitmap->eraseColor(SK_ColorRED);
}
+ // Could not read the SkBitmap. Use a placeholder bitmap.
+ bitmap->setConfig(SkBitmap::kARGB_8888_Config, width, height);
+ bitmap->allocPixels();
+ bitmap->eraseColor(SK_ColorRED);
}
SkTypeface* SkOrderedReadBuffer::readTypeface() {
diff --git a/src/core/SkOrderedReadBuffer.h b/src/core/SkOrderedReadBuffer.h
index f59b9bb7bb..c609ec8be2 100644
--- a/src/core/SkOrderedReadBuffer.h
+++ b/src/core/SkOrderedReadBuffer.h
@@ -27,8 +27,6 @@ public:
virtual SkOrderedReadBuffer* getOrderedBinaryBuffer() SK_OVERRIDE { return this; }
- void setPictureVersion(uint32_t version);
-
SkReader32* getReader32() { return &fReader; }
uint32_t size() { return fReader.size(); }
@@ -123,7 +121,6 @@ private:
int fFactoryCount;
SkPicture::InstallPixelRefProc fBitmapDecoder;
- uint32_t fPictureVersion;
typedef SkFlattenableReadBuffer INHERITED;
};
diff --git a/src/core/SkPicture.cpp b/src/core/SkPicture.cpp
index 39d0653a1b..1ff5865651 100644
--- a/src/core/SkPicture.cpp
+++ b/src/core/SkPicture.cpp
@@ -6,7 +6,7 @@
* found in the LICENSE file.
*/
-#include "SkErrorInternals.h"
+
#include "SkPictureFlat.h"
#include "SkPicturePlayback.h"
#include "SkPictureRecord.h"
@@ -283,13 +283,9 @@ void SkPicture::initFromStream(SkStream* stream, bool* success, InstallPixelRefP
SkPictInfo info;
if (!stream->read(&info, sizeof(info))) {
- SkErrorInternals::SetError(kParseError_SkError, "Failed to parse skp info.");
return;
}
-
- if (info.fVersion < 10 || info.fVersion > PICTURE_VERSION) {
- SkErrorInternals::SetError(kParseError_SkError, "skp version %d not supported.",
- info.fVersion);
+ if (PICTURE_VERSION != info.fVersion) {
return;
}
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index e534abaa55..d54a6c5f3b 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -537,7 +537,6 @@ void SkPicturePlayback::parseStreamTag(SkStream* stream, const SkPictInfo& info,
SkOrderedReadBuffer buffer(storage.get(), size);
buffer.setFlags(pictInfoFlagsToReadBufferFlags(info.fFlags));
- buffer.setPictureVersion(info.fVersion);
fFactoryPlayback->setupBuffer(buffer);
fTFPlayback.setupBuffer(buffer);