diff options
author | 2013-03-17 18:33:46 +0000 | |
---|---|---|
committer | 2013-03-17 18:33:46 +0000 | |
commit | 91217d0b0cdf80a1f18ca24d49e4a925d4629f1f (patch) | |
tree | c673b79bfa914a0ae358d5b23e10c84b9872bd62 /debugger/SkDrawCommand.h | |
parent | d4be5dd36c1e8618c756d6b67edb422d29ae608e (diff) |
Making SkDrawCommand more robust
https://codereview.appspot.com/7486052/
git-svn-id: http://skia.googlecode.com/svn/trunk@8181 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'debugger/SkDrawCommand.h')
-rw-r--r-- | debugger/SkDrawCommand.h | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/debugger/SkDrawCommand.h b/debugger/SkDrawCommand.h index d06e7fe2b8..3ede8ff908 100644 --- a/debugger/SkDrawCommand.h +++ b/debugger/SkDrawCommand.h @@ -73,10 +73,12 @@ public: virtual void execute(SkCanvas* canvas) SK_OVERRIDE; virtual const SkBitmap* getBitmap() const SK_OVERRIDE; private: - const SkPath* fPath; + SkPath fPath; SkRegion::Op fOp; bool fDoAA; SkBitmap fBitmap; + + typedef SkDrawCommand INHERITED; }; class ClipRegion : public SkDrawCommand { @@ -170,7 +172,8 @@ private: class DrawBitmapRect : public SkDrawCommand { public: DrawBitmapRect(const SkBitmap& bitmap, const SkRect* src, - const SkRect& dst, const SkPaint* paint, SkBitmap& resizedBitmap); + const SkRect& dst, const SkPaint* paint, + SkBitmap& resizedBitmap); virtual void execute(SkCanvas* canvas) SK_OVERRIDE; virtual const SkBitmap* getBitmap() const SK_OVERRIDE; @@ -183,15 +186,18 @@ public: void setPaint(const SkPaint& paint) { fPaint = paint; fPaintPtr = &fPaint; } - const SkRect& dstRect() { return *fDst; } + const SkRect* srcRect() const { return fSrc.isEmpty() ? NULL : &fSrc; } + const SkRect& dstRect() const { return fDst; } private: - const SkRect* fSrc; + SkRect fSrc; SkPaint fPaint; SkPaint* fPaintPtr; - const SkBitmap* fBitmap; - const SkRect* fDst; + SkBitmap fBitmap; + SkRect fDst; SkBitmap fResizedBitmap; + + typedef SkDrawCommand INHERITED; }; class DrawData : public SkDrawCommand { @@ -227,9 +233,11 @@ public: virtual const SkBitmap* getBitmap() const SK_OVERRIDE; private: - const SkPath* fPath; - const SkPaint* fPaint; + SkPath fPath; + SkPaint fPaint; SkBitmap fBitmap; + + typedef SkDrawCommand INHERITED; }; class DrawPicture : public SkDrawCommand { @@ -296,14 +304,16 @@ private: class DrawPosTextH : public SkDrawCommand { public: DrawPosTextH(const void* text, size_t byteLength, const SkScalar xpos[], - SkScalar constY, const SkPaint& paint); + SkScalar constY, const SkPaint& paint); virtual void execute(SkCanvas* canvas) SK_OVERRIDE; private: const SkScalar* fXpos; const void* fText; size_t fByteLength; SkScalar fConstY; - const SkPaint* fPaint; + SkPaint fPaint; + + typedef SkDrawCommand INHERITED; }; class DrawRectC : public SkDrawCommand { @@ -311,11 +321,13 @@ public: DrawRectC(const SkRect& rect, const SkPaint& paint); virtual void execute(SkCanvas* canvas) SK_OVERRIDE; - const SkRect& rect() const { return *fRect; } - const SkPaint* paint() const { return fPaint; } + const SkRect& rect() const { return fRect; } + const SkPaint& paint() const { return fPaint; } private: - const SkRect* fRect; - const SkPaint* fPaint; + SkRect fRect; + SkPaint fPaint; + + typedef SkDrawCommand INHERITED; }; class DrawRRect : public SkDrawCommand { |