| Index: src/core/SkRecordDraw.h
|
| diff --git a/src/core/SkRecordDraw.h b/src/core/SkRecordDraw.h
|
| index 509f5a6c72bbea6465bef0ffb14985b255f0059b..e95123bbe6ebcd0d2994cfc7468329062d1d3d76 100644
|
| --- a/src/core/SkRecordDraw.h
|
| +++ b/src/core/SkRecordDraw.h
|
| @@ -29,14 +29,15 @@ void SkRecordDraw(const SkRecord&, SkCanvas*, SkPicture const* const drawablePic
|
| SkCanvasDrawable* const drawables[], int drawableCount,
|
| const SkBBoxHierarchy*, SkDrawPictureCallback*);
|
|
|
| -// Draw a portion of an SkRecord into an SkCanvas.
|
| +// Draw a portion of an SkRecord into an SkCanvas while replacing clears with drawRects.
|
| // When drawing a portion of an SkRecord the CTM on the passed in canvas must be
|
| // the composition of the replay matrix with the record-time CTM (for the portion
|
| // of the record that is being replayed). For setMatrix calls to behave correctly
|
| // the initialCTM parameter must set to just the replay matrix.
|
| void SkRecordPartialDraw(const SkRecord&, SkCanvas*,
|
| SkPicture const* const drawablePicts[], int drawableCount,
|
| - unsigned start, unsigned stop, const SkMatrix& initialCTM);
|
| + const SkRect&, unsigned start, unsigned stop,
|
| + const SkMatrix& initialCTM);
|
|
|
| namespace SkRecords {
|
|
|
| @@ -75,6 +76,30 @@ private:
|
| int fDrawableCount;
|
| };
|
|
|
| +// Used by SkRecordPartialDraw.
|
| +class PartialDraw : public Draw {
|
| +public:
|
| + PartialDraw(SkCanvas* canvas, SkPicture const* const drawablePicts[], int drawableCount,
|
| + const SkRect& clearRect, const SkMatrix& initialCTM)
|
| + : INHERITED(canvas, drawablePicts, NULL, drawableCount, &initialCTM), fClearRect(clearRect)
|
| + {}
|
| +
|
| + // Same as Draw for all ops except Clear.
|
| + template <typename T> void operator()(const T& r) {
|
| + this->INHERITED::operator()(r);
|
| + }
|
| + void operator()(const Clear& c) {
|
| + SkPaint p;
|
| + p.setColor(c.color);
|
| + DrawRect drawRect(p, fClearRect);
|
| + this->INHERITED::operator()(drawRect);
|
| + }
|
| +
|
| +private:
|
| + const SkRect fClearRect;
|
| + typedef Draw INHERITED;
|
| +};
|
| +
|
| } // namespace SkRecords
|
|
|
| #endif//SkRecordDraw_DEFINED
|
|
|