Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef SkRecords_DEFINED | 8 #ifndef SkRecords_DEFINED |
| 9 #define SkRecords_DEFINED | 9 #define SkRecords_DEFINED |
| 10 | 10 |
| 11 #include "SkCanvas.h" | 11 #include "SkCanvas.h" |
| 12 #include "SkPicture.h" | |
| 13 | |
| 14 class SkPictureBox { | |
| 15 public: | |
| 16 SkPictureBox(const SkPicture* obj) : fObj(SkRef(obj)) {} | |
| 17 SkPictureBox(const SkPictureBox& src) : fObj(SkRef(src.fObj)) {} | |
| 18 ~SkPictureBox() { fObj->unref(); } | |
| 19 | |
| 20 SkPictureBox& operator=(const SkPictureBox& src) { | |
| 21 SkRefCnt_SafeAssign(fObj, src.fObj); | |
| 22 return *this; | |
| 23 } | |
| 24 | |
| 25 operator const SkPicture*() const { return fObj; } | |
| 26 | |
| 27 private: | |
| 28 const SkPicture* fObj; | |
|
mtklein
2014/08/07 18:19:27
SkAutoTUnref<const SkPicture> ?
reed1
2014/08/07 19:10:52
Possibly, but I think the Box semantics are differ
| |
| 29 }; | |
| 12 | 30 |
| 13 namespace SkRecords { | 31 namespace SkRecords { |
| 14 | 32 |
| 15 // A list of all the types of canvas calls we can record. | 33 // A list of all the types of canvas calls we can record. |
| 16 // Each of these is reified into a struct below. | 34 // Each of these is reified into a struct below. |
| 17 // | 35 // |
| 18 // (We're using the macro-of-macro trick here to do several different things wit h the same list.) | 36 // (We're using the macro-of-macro trick here to do several different things wit h the same list.) |
| 19 // | 37 // |
| 20 // We leave this SK_RECORD_TYPES macro defined for use by code that wants to ope rate on SkRecords | 38 // We leave this SK_RECORD_TYPES macro defined for use by code that wants to ope rate on SkRecords |
| 21 // types polymorphically. (See SkRecord::Record::{visit,mutate} for an example. ) | 39 // types polymorphically. (See SkRecord::Record::{visit,mutate} for an example. ) |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 39 M(Clear) \ | 57 M(Clear) \ |
| 40 M(DrawBitmap) \ | 58 M(DrawBitmap) \ |
| 41 M(DrawBitmapMatrix) \ | 59 M(DrawBitmapMatrix) \ |
| 42 M(DrawBitmapNine) \ | 60 M(DrawBitmapNine) \ |
| 43 M(DrawBitmapRectToRect) \ | 61 M(DrawBitmapRectToRect) \ |
| 44 M(DrawDRRect) \ | 62 M(DrawDRRect) \ |
| 45 M(DrawOval) \ | 63 M(DrawOval) \ |
| 46 M(DrawPaint) \ | 64 M(DrawPaint) \ |
| 47 M(DrawPath) \ | 65 M(DrawPath) \ |
| 48 M(DrawPatch) \ | 66 M(DrawPatch) \ |
| 67 M(DrawPicture) \ | |
| 49 M(DrawPoints) \ | 68 M(DrawPoints) \ |
| 50 M(DrawPosText) \ | 69 M(DrawPosText) \ |
| 51 M(DrawPosTextH) \ | 70 M(DrawPosTextH) \ |
| 52 M(DrawRRect) \ | 71 M(DrawRRect) \ |
| 53 M(DrawRect) \ | 72 M(DrawRect) \ |
| 54 M(DrawSprite) \ | 73 M(DrawSprite) \ |
| 55 M(DrawText) \ | 74 M(DrawText) \ |
| 56 M(DrawTextOnPath) \ | 75 M(DrawTextOnPath) \ |
| 57 M(DrawVertices) \ | 76 M(DrawVertices) \ |
| 58 M(BoundedDrawPosTextH) /*From SkRecordBoundDrawPosTextH*/ | 77 M(BoundedDrawPosTextH) /*From SkRecordBoundDrawPosTextH*/ |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 212 RECORD5(DrawBitmapRectToRect, Optional<SkPaint>, paint, | 231 RECORD5(DrawBitmapRectToRect, Optional<SkPaint>, paint, |
| 213 ImmutableBitmap, bitmap, | 232 ImmutableBitmap, bitmap, |
| 214 Optional<SkRect>, src, | 233 Optional<SkRect>, src, |
| 215 SkRect, dst, | 234 SkRect, dst, |
| 216 SkCanvas::DrawBitmapRectFlags, flags); | 235 SkCanvas::DrawBitmapRectFlags, flags); |
| 217 RECORD3(DrawDRRect, SkPaint, paint, SkRRect, outer, SkRRect, inner); | 236 RECORD3(DrawDRRect, SkPaint, paint, SkRRect, outer, SkRRect, inner); |
| 218 RECORD2(DrawOval, SkPaint, paint, SkRect, oval); | 237 RECORD2(DrawOval, SkPaint, paint, SkRect, oval); |
| 219 RECORD1(DrawPaint, SkPaint, paint); | 238 RECORD1(DrawPaint, SkPaint, paint); |
| 220 RECORD2(DrawPath, SkPaint, paint, SkPath, path); | 239 RECORD2(DrawPath, SkPaint, paint, SkPath, path); |
| 221 RECORD2(DrawPatch, SkPaint, paint, SkPatch, patch); | 240 RECORD2(DrawPatch, SkPaint, paint, SkPatch, patch); |
| 241 RECORD1(DrawPicture, SkPictureBox, picture); | |
| 222 RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, size_t, count, Sk Point*, pts); | 242 RECORD4(DrawPoints, SkPaint, paint, SkCanvas::PointMode, mode, size_t, count, Sk Point*, pts); |
| 223 RECORD4(DrawPosText, SkPaint, paint, | 243 RECORD4(DrawPosText, SkPaint, paint, |
| 224 PODArray<char>, text, | 244 PODArray<char>, text, |
| 225 size_t, byteLength, | 245 size_t, byteLength, |
| 226 PODArray<SkPoint>, pos); | 246 PODArray<SkPoint>, pos); |
| 227 RECORD5(DrawPosTextH, SkPaint, paint, | 247 RECORD5(DrawPosTextH, SkPaint, paint, |
| 228 PODArray<char>, text, | 248 PODArray<char>, text, |
| 229 size_t, byteLength, | 249 size_t, byteLength, |
| 230 PODArray<SkScalar>, xpos, | 250 PODArray<SkScalar>, xpos, |
| 231 SkScalar, y); | 251 SkScalar, y); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 284 #undef RECORD0 | 304 #undef RECORD0 |
| 285 #undef RECORD1 | 305 #undef RECORD1 |
| 286 #undef RECORD2 | 306 #undef RECORD2 |
| 287 #undef RECORD3 | 307 #undef RECORD3 |
| 288 #undef RECORD4 | 308 #undef RECORD4 |
| 289 #undef RECORD5 | 309 #undef RECORD5 |
| 290 | 310 |
| 291 } // namespace SkRecords | 311 } // namespace SkRecords |
| 292 | 312 |
| 293 #endif//SkRecords_DEFINED | 313 #endif//SkRecords_DEFINED |
| OLD | NEW |