Index: src/core/SkPictureRecord.cpp |
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp |
index 16cb3b5a1bd0ba755ca7e4c52a4e9cc6382d3f27..40ecc6a51fcd997585b134d5b9022da79d39481b 100644 |
--- a/src/core/SkPictureRecord.cpp |
+++ b/src/core/SkPictureRecord.cpp |
@@ -24,8 +24,10 @@ enum { |
static int const kUInt32Size = 4; |
static const uint32_t kSaveSize = kUInt32Size; |
+#ifdef SK_DEBUG |
static const uint32_t kSaveLayerNoBoundsSize = 4 * kUInt32Size; |
static const uint32_t kSaveLayerWithBoundsSize = 4 * kUInt32Size + sizeof(SkRect); |
+#endif//SK_DEBUG |
SkPictureRecord::SkPictureRecord(const SkISize& dimensions, uint32_t flags) |
: INHERITED(dimensions.width(), dimensions.height()) |
@@ -49,10 +51,11 @@ SkPictureRecord::~SkPictureRecord() { |
/////////////////////////////////////////////////////////////////////////////// |
+#ifdef SK_DEBUG |
// Return the offset of the paint inside a given op's byte stream. A zero |
// return value means there is no paint (and you really shouldn't be calling |
// this method) |
-static inline size_t getPaintOffset(DrawType op, size_t opSize) { |
+static inline size_t get_paint_offset(DrawType op, size_t opSize) { |
// These offsets are where the paint would be if the op size doesn't overflow |
static const uint8_t gPaintOffsets[] = { |
0, // UNUSED - no paint |
@@ -129,6 +132,7 @@ static inline size_t getPaintOffset(DrawType op, size_t opSize) { |
SkASSERT(0 != gPaintOffsets[op]); // really shouldn't be calling this method |
return gPaintOffsets[op] * sizeof(uint32_t) + overflow; |
} |
+#endif//SK_DEBUG |
void SkPictureRecord::willSave() { |
// record the offset to us, making it non-positive to distinguish a save |
@@ -184,7 +188,7 @@ void SkPictureRecord::recordSaveLayer(const SkRect* bounds, const SkPaint* paint |
size_t initialOffset = this->addDraw(SAVE_LAYER, &size); |
this->addRectPtr(bounds); |
- SkASSERT(initialOffset+getPaintOffset(SAVE_LAYER, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(SAVE_LAYER, size) == fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addInt(flags); |
@@ -476,7 +480,7 @@ void SkPictureRecord::drawPaint(const SkPaint& paint) { |
// op + paint index |
size_t size = 2 * kUInt32Size; |
size_t initialOffset = this->addDraw(DRAW_PAINT, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_PAINT, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_PAINT, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->validate(initialOffset, size); |
} |
@@ -488,7 +492,7 @@ void SkPictureRecord::drawPoints(PointMode mode, size_t count, const SkPoint pts |
// op + paint index + mode + count + point data |
size_t size = 4 * kUInt32Size + count * sizeof(SkPoint); |
size_t initialOffset = this->addDraw(DRAW_POINTS, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_POINTS, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_POINTS, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addInt(mode); |
@@ -501,7 +505,7 @@ void SkPictureRecord::drawOval(const SkRect& oval, const SkPaint& paint) { |
// op + paint index + rect |
size_t size = 2 * kUInt32Size + sizeof(oval); |
size_t initialOffset = this->addDraw(DRAW_OVAL, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_OVAL, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_OVAL, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addRect(oval); |
this->validate(initialOffset, size); |
@@ -511,7 +515,7 @@ void SkPictureRecord::drawRect(const SkRect& rect, const SkPaint& paint) { |
// op + paint index + rect |
size_t size = 2 * kUInt32Size + sizeof(rect); |
size_t initialOffset = this->addDraw(DRAW_RECT, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_RECT, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_RECT, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addRect(rect); |
this->validate(initialOffset, size); |
@@ -521,7 +525,7 @@ void SkPictureRecord::drawRRect(const SkRRect& rrect, const SkPaint& paint) { |
// op + paint index + rrect |
size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory; |
size_t initialOffset = this->addDraw(DRAW_RRECT, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_RRECT, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_RRECT, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addRRect(rrect); |
this->validate(initialOffset, size); |
@@ -532,7 +536,7 @@ void SkPictureRecord::onDrawDRRect(const SkRRect& outer, const SkRRect& inner, |
// op + paint index + rrects |
size_t size = 2 * kUInt32Size + SkRRect::kSizeInMemory * 2; |
size_t initialOffset = this->addDraw(DRAW_DRRECT, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_DRRECT, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_DRRECT, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addRRect(outer); |
this->addRRect(inner); |
@@ -545,7 +549,7 @@ void SkPictureRecord::drawPath(const SkPath& path, const SkPaint& paint) { |
// op + paint index + path index |
size_t size = 3 * kUInt32Size; |
size_t initialOffset = this->addDraw(DRAW_PATH, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_PATH, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_PATH, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addPath(path); |
this->validate(initialOffset, size); |
@@ -556,7 +560,7 @@ void SkPictureRecord::drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar |
// op + paint index + bitmap index + left + top |
size_t size = 3 * kUInt32Size + 2 * sizeof(SkScalar); |
size_t initialOffset = this->addDraw(DRAW_BITMAP, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP, size) == fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addBitmap(bitmap); |
this->addScalar(left); |
@@ -575,7 +579,7 @@ void SkPictureRecord::drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* |
size += sizeof(dst); // + rect |
size_t initialOffset = this->addDraw(DRAW_BITMAP_RECT_TO_RECT, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_RECT_TO_RECT, size) |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_RECT_TO_RECT, size) |
== fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addBitmap(bitmap); |
@@ -590,7 +594,7 @@ void SkPictureRecord::drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m |
// id + paint index + bitmap index + matrix |
size_t size = 3 * kUInt32Size + matrix.writeToMemory(NULL); |
size_t initialOffset = this->addDraw(DRAW_BITMAP_MATRIX, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_MATRIX, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_MATRIX, size) == fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addBitmap(bitmap); |
this->addMatrix(matrix); |
@@ -602,7 +606,7 @@ void SkPictureRecord::drawBitmapNine(const SkBitmap& bitmap, const SkIRect& cent |
// op + paint index + bitmap id + center + dst rect |
size_t size = 3 * kUInt32Size + sizeof(center) + sizeof(dst); |
size_t initialOffset = this->addDraw(DRAW_BITMAP_NINE, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_BITMAP_NINE, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_BITMAP_NINE, size) == fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addBitmap(bitmap); |
this->addIRect(center); |
@@ -615,7 +619,7 @@ void SkPictureRecord::drawSprite(const SkBitmap& bitmap, int left, int top, |
// op + paint index + bitmap index + left + top |
size_t size = 5 * kUInt32Size; |
size_t initialOffset = this->addDraw(DRAW_SPRITE, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_SPRITE, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_SPRITE, size) == fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addBitmap(bitmap); |
this->addInt(left); |
@@ -630,7 +634,7 @@ void SkPictureRecord::onDrawText(const void* text, size_t byteLength, SkScalar x |
DrawType op = DRAW_TEXT; |
size_t initialOffset = this->addDraw(op, &size); |
- SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(op, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addText(text, byteLength); |
this->addScalar(x); |
@@ -648,7 +652,7 @@ void SkPictureRecord::onDrawPosText(const void* text, size_t byteLength, const S |
DrawType op = DRAW_POS_TEXT; |
size_t initialOffset = this->addDraw(op, &size); |
- SkASSERT(initialOffset+getPaintOffset(op, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(op, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addText(text, byteLength); |
this->addInt(points); |
@@ -680,7 +684,7 @@ void SkPictureRecord::onDrawTextOnPath(const void* text, size_t byteLength, cons |
const SkMatrix& m = matrix ? *matrix : SkMatrix::I(); |
size_t size = 3 * kUInt32Size + SkAlign4(byteLength) + kUInt32Size + m.writeToMemory(NULL); |
size_t initialOffset = this->addDraw(DRAW_TEXT_ON_PATH, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_TEXT_ON_PATH, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_TEXT_ON_PATH, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addText(text, byteLength); |
this->addPath(path); |
@@ -694,7 +698,7 @@ void SkPictureRecord::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScala |
// op + paint index + blob index + x/y |
size_t size = 3 * kUInt32Size + 2 * sizeof(SkScalar); |
size_t initialOffset = this->addDraw(DRAW_TEXT_BLOB, &size); |
- SkASSERT(initialOffset + getPaintOffset(DRAW_TEXT_BLOB, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset + get_paint_offset(DRAW_TEXT_BLOB, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addTextBlob(blob); |
@@ -717,7 +721,7 @@ void SkPictureRecord::onDrawPicture(const SkPicture* picture, const SkMatrix* ma |
const SkMatrix& m = matrix ? *matrix : SkMatrix::I(); |
size += m.writeToMemory(NULL) + kUInt32Size; // matrix + paint |
initialOffset = this->addDraw(DRAW_PICTURE_MATRIX_PAINT, &size); |
- SkASSERT(initialOffset + getPaintOffset(DRAW_PICTURE_MATRIX_PAINT, size) |
+ SkASSERT(initialOffset + get_paint_offset(DRAW_PICTURE_MATRIX_PAINT, size) |
== fWriter.bytesWritten()); |
this->addPaintPtr(paint); |
this->addMatrix(m); |
@@ -765,7 +769,7 @@ void SkPictureRecord::drawVertices(VertexMode vmode, int vertexCount, |
} |
size_t initialOffset = this->addDraw(DRAW_VERTICES, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_VERTICES, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_VERTICES, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addInt(flags); |
this->addInt(vmode); |
@@ -812,7 +816,7 @@ void SkPictureRecord::onDrawPatch(const SkPoint cubics[12], const SkColor colors |
} |
size_t initialOffset = this->addDraw(DRAW_PATCH, &size); |
- SkASSERT(initialOffset+getPaintOffset(DRAW_PATCH, size) == fWriter.bytesWritten()); |
+ SkASSERT(initialOffset+get_paint_offset(DRAW_PATCH, size) == fWriter.bytesWritten()); |
this->addPaint(paint); |
this->addPatch(cubics); |
this->addInt(flag); |