| 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,
|
|
|