Index: src/core/SkRecordDraw.h |
diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h |
index fdf98824acf867f42836779dd6ceb3ab8abf7e50..e45f3e405ae3eb3251c213dea523516983df63b0 100644 |
--- a/src/core/SkRecordDraw.h |
+++ b/src/core/SkRecordDraw.h |
@@ -13,9 +13,11 @@ |
#include "SkCanvas.h" |
#include "SkMatrix.h" |
#include "SkRecord.h" |
+#include "SkDrawable.h" |
class SkDrawable; |
class SkLayerInfo; |
+struct DrawData; |
// Calculate conservative identity space bounds for each op in the record. |
void SkRecordFillBounds(const SkRect& cullRect, const SkRecord&, SkRect bounds[]); |
@@ -27,6 +29,11 @@ void SkRecordComputeLayers(const SkRect& cullRect, const SkRecord&, SkRect bound |
const SkBigPicture::SnapshotArray*, SkLayerInfo* data); |
// Draw an SkRecord into an SkCanvas. A convenience wrapper around SkRecords::Draw. |
+void SkRecordDrawPras(DrawData& data); |
+void SkRecordDrawPrasInit(DrawData& data); |
+bool SkRecordDrawPrasDo(DrawData& data); |
+void SkRecordDrawPrasDeInit(DrawData& data); |
+ |
void SkRecordDraw(const SkRecord&, SkCanvas*, SkPicture const* const drawablePicts[], |
SkDrawable* const drawables[], int drawableCount, |
const SkBBoxHierarchy*, SkPicture::AbortCallback*); |
@@ -79,4 +86,30 @@ private: |
} // namespace SkRecords |
+struct DrawData { |
+ DrawData(const SkRecord& r, |
+ SkCanvas* c, |
+ SkPicture const* const dp[], |
+ SkDrawable* const dw[], |
+ int dc, |
+ const SkBBoxHierarchy* b, |
+ SkPicture::AbortCallback* cb); |
+ |
+ // input |
+ const SkRecord& record; |
+ SkCanvas* canvas; |
+ SkPicture const* const* drawablePicts; |
+ SkDrawable* const* drawables; |
+ int drawableCount; |
+ const SkBBoxHierarchy* bbh; |
+ SkPicture::AbortCallback* callback; |
+ |
+ // stack |
+ SkTDArray<int> ops; |
+ SkRecords::Draw draw; |
+ |
+ int ops_count; |
+ int record_count; |
+}; |
+ |
#endif//SkRecordDraw_DEFINED |