Index: src/core/SkRecords.h |
diff --git a/src/core/SkRecords.h b/src/core/SkRecords.h |
index 6ec6e9ca2e8485674310018e488b347062797d50..6baabe6b7655de5a8199ae5b32aa5906efc9feef 100644 |
--- a/src/core/SkRecords.h |
+++ b/src/core/SkRecords.h |
@@ -10,23 +10,22 @@ |
#include "SkCanvas.h" |
#include "SkPicture.h" |
+#include "SkTextBlob.h" |
-class SkPictureBox { |
+namespace SkRecords { |
+ |
+template <typename T> |
+class RefBox : SkNoncopyable { |
public: |
- SkPictureBox(const SkPicture* obj) : fObj(SkRef(obj)) {} |
- ~SkPictureBox() { fObj->unref(); } |
+ RefBox(const T* obj) : fObj(SkRef(obj)) {} |
+ ~RefBox() { fObj->unref(); } |
- operator const SkPicture*() const { return fObj; } |
+ operator const T*() const { return fObj; } |
private: |
- SkPictureBox(const SkPictureBox&); |
- SkPictureBox& operator=(const SkPictureBox&); |
- |
- const SkPicture* fObj; |
+ const T* fObj; |
}; |
-namespace SkRecords { |
- |
// A list of all the types of canvas calls we can record. |
// Each of these is reified into a struct below. |
// |
@@ -68,6 +67,7 @@ namespace SkRecords { |
M(DrawRRect) \ |
M(DrawRect) \ |
M(DrawSprite) \ |
+ M(DrawTextBlob) \ |
M(DrawVertices) |
// Defines SkRecords::Type, an enum of all record types. |
@@ -231,7 +231,7 @@ RECORD2(DrawOval, SkPaint, paint, SkRect, oval); |
RECORD1(DrawPaint, SkPaint, paint); |
RECORD2(DrawPath, SkPaint, paint, SkPath, path); |
//RECORD2(DrawPatch, SkPaint, paint, SkPatch, patch); |
-RECORD3(DrawPicture, Optional<SkPaint>, paint, SkPictureBox, picture, Optional<SkMatrix>, matrix); |
+RECORD3(DrawPicture, Optional<SkPaint>, paint, RefBox<SkPicture>, picture, Optional<SkMatrix>, matrix); |
RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, size_t, count, SkPoint*, pts); |
RECORD4(DrawPosText, SkPaint, paint, |
PODArray<char>, text, |
@@ -250,6 +250,10 @@ RECORD5(DrawText, SkPaint, paint, |
size_t, byteLength, |
SkScalar, x, |
SkScalar, y); |
+RECORD4(DrawTextBlob, SkPaint, paint, |
+ RefBox<SkTextBlob>, blob, |
+ SkScalar, x, |
+ SkScalar, y); |
RECORD5(DrawTextOnPath, SkPaint, paint, |
PODArray<char>, text, |
size_t, byteLength, |