Index: cc/paint/paint_record.h |
diff --git a/cc/paint/paint_record.h b/cc/paint/paint_record.h |
index a376394cc84e9e79eefe16a0b04a37abd2c216c7..39820ffd30bc92e1f1986b409394463fdaef5351 100644 |
--- a/cc/paint/paint_record.h |
+++ b/cc/paint/paint_record.h |
@@ -5,27 +5,49 @@ |
#ifndef CC_PAINT_PAINT_RECORD_H_ |
#define CC_PAINT_PAINT_RECORD_H_ |
+#include "base/compiler_specific.h" |
+#include "cc/paint/paint_export.h" |
#include "third_party/skia/include/core/SkPicture.h" |
#include "third_party/skia/include/utils/SkPictureUtils.h" |
namespace cc { |
-using PaintRecord = SkPicture; |
- |
-inline const SkPicture* ToSkPicture(const PaintRecord* record) { |
- return record; |
+class PaintCanvas; |
+ |
+class CC_PAINT_EXPORT PaintRecord : private SkPicture { |
+ public: |
+ void playback(PaintCanvas* canvas); |
+ |
+ using SkPicture::playback; |
+ using SkPicture::approximateBytesUsed; |
+ using SkPicture::approximateOpCount; |
+ using SkPicture::cullRect; |
+ using SkRefCnt::ref; |
+ using SkRefCnt::unref; |
+ |
+ private: |
+ friend class PaintRecorder; |
+ friend const SkPicture* ToSkPicture(const PaintRecord* record); |
+ friend SkPicture* ToSkPicture(PaintRecord* record); |
+ friend sk_sp<SkPicture> ToSkPicture(sk_sp<PaintRecord> record); |
+ friend sk_sp<const SkPicture> ToSkPicture(sk_sp<const PaintRecord> record); |
+}; |
+ |
+ALWAYS_INLINE const SkPicture* ToSkPicture(const PaintRecord* record) { |
+ return static_cast<const SkPicture*>(record); |
} |
-inline SkPicture* ToSkPicture(PaintRecord* record) { |
- return record; |
+ALWAYS_INLINE SkPicture* ToSkPicture(PaintRecord* record) { |
+ return static_cast<SkPicture*>(record); |
} |
-inline sk_sp<SkPicture> ToSkPicture(sk_sp<PaintRecord> record) { |
- return record; |
+ALWAYS_INLINE sk_sp<SkPicture> ToSkPicture(sk_sp<PaintRecord> record) { |
+ return sk_sp<SkPicture>(ToSkPicture(record.get())); |
} |
-inline sk_sp<const SkPicture> ToSkPicture(sk_sp<const PaintRecord> record) { |
- return record; |
+ALWAYS_INLINE sk_sp<const SkPicture> ToSkPicture( |
+ sk_sp<const PaintRecord> record) { |
+ return sk_sp<const SkPicture>(ToSkPicture(record.get())); |
} |
} // namespace cc |