Index: src/core/SkReadBuffer.cpp |
diff --git a/src/core/SkOrderedReadBuffer.cpp b/src/core/SkReadBuffer.cpp |
similarity index 80% |
rename from src/core/SkOrderedReadBuffer.cpp |
rename to src/core/SkReadBuffer.cpp |
index 1ebaac4da860993fca7061add986496fb3161f85..6a590ed6942aeff37f46eb1b9eeea68afe1c35bb 100644 |
--- a/src/core/SkOrderedReadBuffer.cpp |
+++ b/src/core/SkReadBuffer.cpp |
@@ -8,11 +8,23 @@ |
#include "SkBitmap.h" |
#include "SkErrorInternals.h" |
-#include "SkOrderedReadBuffer.h" |
+#include "SkReadBuffer.h" |
#include "SkStream.h" |
#include "SkTypeface.h" |
-SkOrderedReadBuffer::SkOrderedReadBuffer() : INHERITED() { |
+static uint32_t default_flags() { |
+ uint32_t flags = 0; |
+#ifdef SK_SCALAR_IS_FLOAT |
+ flags |= SkReadBuffer::kScalarIsFloat_Flag; |
+#endif |
+ if (8 == sizeof(void*)) { |
+ flags |= SkReadBuffer::kPtrIs64Bit_Flag; |
+ } |
+ return flags; |
+} |
+ |
+SkReadBuffer::SkReadBuffer() { |
+ fFlags = default_flags(); |
fMemoryPtr = NULL; |
fBitmapStorage = NULL; |
@@ -28,7 +40,8 @@ SkOrderedReadBuffer::SkOrderedReadBuffer() : INHERITED() { |
#endif // DEBUG_NON_DETERMINISTIC_ASSERT |
} |
-SkOrderedReadBuffer::SkOrderedReadBuffer(const void* data, size_t size) : INHERITED() { |
+SkReadBuffer::SkReadBuffer(const void* data, size_t size) { |
+ fFlags = default_flags(); |
fReader.setMemory(data, size); |
fMemoryPtr = NULL; |
@@ -45,7 +58,8 @@ SkOrderedReadBuffer::SkOrderedReadBuffer(const void* data, size_t size) : INHERI |
#endif // DEBUG_NON_DETERMINISTIC_ASSERT |
} |
-SkOrderedReadBuffer::SkOrderedReadBuffer(SkStream* stream) { |
+SkReadBuffer::SkReadBuffer(SkStream* stream) { |
+ fFlags = default_flags(); |
const size_t length = stream->getLength(); |
fMemoryPtr = sk_malloc_throw(length); |
stream->read(fMemoryPtr, length); |
@@ -64,46 +78,46 @@ SkOrderedReadBuffer::SkOrderedReadBuffer(SkStream* stream) { |
#endif // DEBUG_NON_DETERMINISTIC_ASSERT |
} |
-SkOrderedReadBuffer::~SkOrderedReadBuffer() { |
+SkReadBuffer::~SkReadBuffer() { |
sk_free(fMemoryPtr); |
SkSafeUnref(fBitmapStorage); |
} |
-bool SkOrderedReadBuffer::readBool() { |
+bool SkReadBuffer::readBool() { |
return fReader.readBool(); |
} |
-SkColor SkOrderedReadBuffer::readColor() { |
+SkColor SkReadBuffer::readColor() { |
return fReader.readInt(); |
} |
-SkFixed SkOrderedReadBuffer::readFixed() { |
+SkFixed SkReadBuffer::readFixed() { |
return fReader.readS32(); |
} |
-int32_t SkOrderedReadBuffer::readInt() { |
+int32_t SkReadBuffer::readInt() { |
return fReader.readInt(); |
} |
-SkScalar SkOrderedReadBuffer::readScalar() { |
+SkScalar SkReadBuffer::readScalar() { |
return fReader.readScalar(); |
} |
-uint32_t SkOrderedReadBuffer::readUInt() { |
+uint32_t SkReadBuffer::readUInt() { |
return fReader.readU32(); |
} |
-int32_t SkOrderedReadBuffer::read32() { |
+int32_t SkReadBuffer::read32() { |
return fReader.readInt(); |
} |
-void SkOrderedReadBuffer::readString(SkString* string) { |
+void SkReadBuffer::readString(SkString* string) { |
size_t len; |
const char* strContents = fReader.readString(&len); |
string->set(strContents, len); |
} |
-void* SkOrderedReadBuffer::readEncodedString(size_t* length, SkPaint::TextEncoding encoding) { |
+void* SkReadBuffer::readEncodedString(size_t* length, SkPaint::TextEncoding encoding) { |
SkDEBUGCODE(int32_t encodingType = ) fReader.readInt(); |
SkASSERT(encodingType == encoding); |
*length = fReader.readInt(); |
@@ -112,32 +126,32 @@ void* SkOrderedReadBuffer::readEncodedString(size_t* length, SkPaint::TextEncodi |
return data; |
} |
-void SkOrderedReadBuffer::readPoint(SkPoint* point) { |
+void SkReadBuffer::readPoint(SkPoint* point) { |
point->fX = fReader.readScalar(); |
point->fY = fReader.readScalar(); |
} |
-void SkOrderedReadBuffer::readMatrix(SkMatrix* matrix) { |
+void SkReadBuffer::readMatrix(SkMatrix* matrix) { |
fReader.readMatrix(matrix); |
} |
-void SkOrderedReadBuffer::readIRect(SkIRect* rect) { |
+void SkReadBuffer::readIRect(SkIRect* rect) { |
memcpy(rect, fReader.skip(sizeof(SkIRect)), sizeof(SkIRect)); |
} |
-void SkOrderedReadBuffer::readRect(SkRect* rect) { |
+void SkReadBuffer::readRect(SkRect* rect) { |
memcpy(rect, fReader.skip(sizeof(SkRect)), sizeof(SkRect)); |
} |
-void SkOrderedReadBuffer::readRegion(SkRegion* region) { |
+void SkReadBuffer::readRegion(SkRegion* region) { |
fReader.readRegion(region); |
} |
-void SkOrderedReadBuffer::readPath(SkPath* path) { |
+void SkReadBuffer::readPath(SkPath* path) { |
fReader.readPath(path); |
} |
-bool SkOrderedReadBuffer::readArray(void* value, size_t size, size_t elementSize) { |
+bool SkReadBuffer::readArray(void* value, size_t size, size_t elementSize) { |
const size_t count = this->getArrayCount(); |
if (count == size) { |
(void)fReader.skip(sizeof(uint32_t)); // Skip array count |
@@ -150,31 +164,31 @@ bool SkOrderedReadBuffer::readArray(void* value, size_t size, size_t elementSize |
return false; |
} |
-bool SkOrderedReadBuffer::readByteArray(void* value, size_t size) { |
+bool SkReadBuffer::readByteArray(void* value, size_t size) { |
return readArray(static_cast<unsigned char*>(value), size, sizeof(unsigned char)); |
} |
-bool SkOrderedReadBuffer::readColorArray(SkColor* colors, size_t size) { |
+bool SkReadBuffer::readColorArray(SkColor* colors, size_t size) { |
return readArray(colors, size, sizeof(SkColor)); |
} |
-bool SkOrderedReadBuffer::readIntArray(int32_t* values, size_t size) { |
+bool SkReadBuffer::readIntArray(int32_t* values, size_t size) { |
return readArray(values, size, sizeof(int32_t)); |
} |
-bool SkOrderedReadBuffer::readPointArray(SkPoint* points, size_t size) { |
+bool SkReadBuffer::readPointArray(SkPoint* points, size_t size) { |
return readArray(points, size, sizeof(SkPoint)); |
} |
-bool SkOrderedReadBuffer::readScalarArray(SkScalar* values, size_t size) { |
+bool SkReadBuffer::readScalarArray(SkScalar* values, size_t size) { |
return readArray(values, size, sizeof(SkScalar)); |
} |
-uint32_t SkOrderedReadBuffer::getArrayCount() { |
+uint32_t SkReadBuffer::getArrayCount() { |
return *(uint32_t*)fReader.peek(); |
} |
-void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) { |
+void SkReadBuffer::readBitmap(SkBitmap* bitmap) { |
const int width = this->readInt(); |
const int height = this->readInt(); |
// The writer stored a boolean value to determine whether an SkBitmapHeap was used during |
@@ -183,7 +197,7 @@ void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) { |
// 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) |
+ fReader.readU32(); // bitmap generation ID (see SkWriteBuffer::writeBitmap) |
if (fBitmapStorage) { |
*bitmap = *fBitmapStorage->getBitmap(index); |
fBitmapStorage->releaseRef(index); |
@@ -191,9 +205,9 @@ void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) { |
} 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 " |
+ SkErrorInternals::SetError(kParseError_SkError, "SkWriteBuffer::writeBitmap " |
"stored the SkBitmap in an SkBitmapHeap, but " |
- "SkOrderedReadBuffer has no SkBitmapHeapReader to " |
+ "SkReadBuffer has no SkBitmapHeapReader to " |
"retrieve the SkBitmap."); |
} |
} else { |
@@ -212,7 +226,7 @@ void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) { |
if (bitmap->width() == width && bitmap->height() == height) { |
#ifdef DEBUG_NON_DETERMINISTIC_ASSERT |
if (0 != xOffset || 0 != yOffset) { |
- SkDebugf("SkOrderedReadBuffer::readBitmap: heights match," |
+ SkDebugf("SkReadBuffer::readBitmap: heights match," |
" but offset is not zero. \nInfo about the bitmap:" |
"\n\tIndex: %d\n\tDimensions: [%d %d]\n\tEncoded" |
" data size: %d\n\tOffset: (%d, %d)\n", |
@@ -256,7 +270,7 @@ void SkOrderedReadBuffer::readBitmap(SkBitmap* bitmap) { |
bitmap->eraseColor(SK_ColorRED); |
} |
-SkTypeface* SkOrderedReadBuffer::readTypeface() { |
+SkTypeface* SkReadBuffer::readTypeface() { |
uint32_t index = fReader.readU32(); |
if (0 == index || index > (unsigned)fTFCount) { |
@@ -270,7 +284,7 @@ SkTypeface* SkOrderedReadBuffer::readTypeface() { |
} |
} |
-SkFlattenable* SkOrderedReadBuffer::readFlattenable(SkFlattenable::Type ft) { |
+SkFlattenable* SkReadBuffer::readFlattenable(SkFlattenable::Type ft) { |
// |
// TODO: confirm that ft matches the factory we decide to use |
// |