aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRecordDraw.h
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2014-11-24 14:41:51 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-11-24 14:41:51 -0800
commit1bdfd3f4f09e47364f76d3f08177b1ce844ac786 (patch)
tree91b83cdc89f884513bacac06ee8f008f4e8276f8 /src/core/SkRecordDraw.h
parent89ff0846fd9dacf5f081373746624d450a5f8c26 (diff)
option to return drawable from recording
patch from issue 747033005 at patchset 80001 (http://crrev.com/747033005#ps80001) BUG=skia: Review URL: https://codereview.chromium.org/732653004
Diffstat (limited to 'src/core/SkRecordDraw.h')
-rw-r--r--src/core/SkRecordDraw.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h
index 8ea1bbd72f..e95123bbe6 100644
--- a/src/core/SkRecordDraw.h
+++ b/src/core/SkRecordDraw.h
@@ -14,16 +14,19 @@
#include "SkMatrix.h"
#include "SkRecord.h"
+class SkCanvasDrawable;
class SkLayerInfo;
// Fill a BBH to be used by SkRecordDraw to accelerate playback.
void SkRecordFillBounds(const SkRect& cullRect, const SkRecord&, SkBBoxHierarchy*);
void SkRecordComputeLayers(const SkRect& cullRect, const SkRecord& record,
+ const SkPicture::SnapshotArray*,
SkBBoxHierarchy* bbh, SkLayerInfo* data);
// Draw an SkRecord into an SkCanvas. A convenience wrapper around SkRecords::Draw.
-void SkRecordDraw(const SkRecord&, SkCanvas*, SkPicture const* const drawablePicts[], int drawableCount,
+void SkRecordDraw(const SkRecord&, SkCanvas*, SkPicture const* const drawablePicts[],
+ SkCanvasDrawable* const drawables[], int drawableCount,
const SkBBoxHierarchy*, SkDrawPictureCallback*);
// Draw a portion of an SkRecord into an SkCanvas while replacing clears with drawRects.
@@ -41,11 +44,13 @@ namespace SkRecords {
// This is an SkRecord visitor that will draw that SkRecord to an SkCanvas.
class Draw : SkNoncopyable {
public:
- explicit Draw(SkCanvas* canvas, SkPicture const* const drawablePicts[], int drawableCount,
+ explicit Draw(SkCanvas* canvas, SkPicture const* const drawablePicts[],
+ SkCanvasDrawable* const drawables[], int drawableCount,
const SkMatrix* initialCTM = NULL)
: fInitialCTM(initialCTM ? *initialCTM : canvas->getTotalMatrix())
, fCanvas(canvas)
, fDrawablePicts(drawablePicts)
+ , fDrawables(drawables)
, fDrawableCount(drawableCount)
{}
@@ -67,6 +72,7 @@ private:
const SkMatrix fInitialCTM;
SkCanvas* fCanvas;
SkPicture const* const* fDrawablePicts;
+ SkCanvasDrawable* const* fDrawables;
int fDrawableCount;
};
@@ -75,7 +81,8 @@ class PartialDraw : public Draw {
public:
PartialDraw(SkCanvas* canvas, SkPicture const* const drawablePicts[], int drawableCount,
const SkRect& clearRect, const SkMatrix& initialCTM)
- : INHERITED(canvas, drawablePicts, drawableCount, &initialCTM), fClearRect(clearRect) {}
+ : INHERITED(canvas, drawablePicts, NULL, drawableCount, &initialCTM), fClearRect(clearRect)
+ {}
// Same as Draw for all ops except Clear.
template <typename T> void operator()(const T& r) {