Index: src/core/SkPicturePlayback.h |
diff --git a/src/core/SkPicturePlayback.h b/src/core/SkPicturePlayback.h |
index 6c32b152396eea9da8577141e7dfda035f0f8e0f..6114fee5e780d73b653ce5bb92f2522b114f687d 100644 |
--- a/src/core/SkPicturePlayback.h |
+++ b/src/core/SkPicturePlayback.h |
@@ -17,71 +17,29 @@ class SkDrawPictureCallback; |
class SkPaint; |
class SkPictureData; |
+// The basic picture playback class replays the provided picture into a canvas. |
+// If the picture was generated with a BBH it is used to accelerate drawing |
+// unless disabled via setUseBBH. |
class SkPicturePlayback : SkNoncopyable { |
public: |
SkPicturePlayback(const SkPicture* picture) |
: fPictureData(picture->fData.get()) |
, fCurOffset(0) |
- , fUseBBH(true) |
- , fReplacements(NULL) { |
+ , fUseBBH(true) { |
} |
virtual ~SkPicturePlayback() { } |
virtual void draw(SkCanvas* canvas, SkDrawPictureCallback*); |
+ // TODO: remove the curOp calls after cleaning up GrGatherDevice |
// Return the ID of the operation currently being executed when playing |
// back. 0 indicates no call is active. |
size_t curOpID() const { return fCurOffset; } |
void resetOpID() { fCurOffset = 0; } |
+ // TODO: remove setUseBBH after cleaning up GrGatherCanvas |
void setUseBBH(bool useBBH) { fUseBBH = useBBH; } |
- // PlaybackReplacements collects op ranges that can be replaced with |
- // a single drawBitmap call (using a precomputed bitmap). |
- class PlaybackReplacements { |
- public: |
- // All the operations between fStart and fStop (inclusive) will be replaced with |
- // a single drawBitmap call using fPos, fBM and fPaint. |
- // fPaint will be NULL if the picture's paint wasn't copyable |
- struct ReplacementInfo { |
- size_t fStart; |
- size_t fStop; |
- SkIPoint fPos; |
- SkBitmap* fBM; // fBM is allocated so ReplacementInfo can remain POD |
- const SkPaint* fPaint; // Note: this object doesn't own the paint |
- |
- SkIRect fSrcRect; |
- }; |
- |
- ~PlaybackReplacements() { this->freeAll(); } |
- |
- // Add a new replacement range. The replacement ranges should be |
- // sorted in increasing order and non-overlapping (esp. no nested |
- // saveLayers). |
- ReplacementInfo* push(); |
- |
- private: |
- friend class SkPicturePlayback; // for access to lookupByStart |
- |
- // look up a replacement range by its start offset |
- ReplacementInfo* lookupByStart(size_t start); |
- |
- void freeAll(); |
- |
-#ifdef SK_DEBUG |
- void validate() const; |
-#endif |
- |
- SkTDArray<ReplacementInfo> fReplacements; |
- }; |
- |
- // Replace all the draw ops in the replacement ranges in 'replacements' with |
- // the associated drawBitmap call |
- // Draw replacing cannot be enabled at the same time as draw limiting |
- void setReplacements(PlaybackReplacements* replacements) { |
- fReplacements = replacements; |
- } |
- |
protected: |
const SkPictureData* fPictureData; |
@@ -89,7 +47,6 @@ protected: |
size_t fCurOffset; |
bool fUseBBH; |
- PlaybackReplacements* fReplacements; |
void handleOp(SkReader32* reader, |
DrawType op, |
@@ -104,10 +61,6 @@ protected: |
static void StepIterator(SkPictureStateTree::Iterator* iter, SkReader32* reader); |
static void SkipIterTo(SkPictureStateTree::Iterator* iter, |
SkReader32* reader, uint32_t skipTo); |
- bool replaceOps(SkPictureStateTree::Iterator* iter, |
- SkReader32* reader, |
- SkCanvas* canvas, |
- const SkMatrix& initialMatrix); |
static DrawType ReadOpAndSize(SkReader32* reader, uint32_t* size); |