| Index: src/utils/SkDeferredCanvas.cpp
|
| diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
|
| index efc65463b52181a75aee7c854f22b0893e37670d..de9148b4a46efb5616c15d54dea83e50325bd033 100644
|
| --- a/src/utils/SkDeferredCanvas.cpp
|
| +++ b/src/utils/SkDeferredCanvas.cpp
|
| @@ -137,8 +137,7 @@ void DeferredPipeController::playback(bool silent) {
|
| //-----------------------------------------------------------------------------
|
| // DeferredDevice
|
| //-----------------------------------------------------------------------------
|
| -// FIXME: Derive from SkBaseDevice.
|
| -class DeferredDevice : public SkBitmapDevice {
|
| +class DeferredDevice : public SkBaseDevice {
|
| public:
|
| explicit DeferredDevice(SkSurface* surface);
|
| ~DeferredDevice();
|
| @@ -163,6 +162,10 @@ public:
|
| virtual uint32_t getDeviceCapabilities() SK_OVERRIDE;
|
| virtual int width() const SK_OVERRIDE;
|
| virtual int height() const SK_OVERRIDE;
|
| + virtual SkBitmap::Config config() const SK_OVERRIDE;
|
| + virtual bool isOpaque() const SK_OVERRIDE;
|
| + virtual SkImageInfo imageInfo() const SK_OVERRIDE;
|
| +
|
| virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE;
|
|
|
| virtual SkBaseDevice* onCreateCompatibleDevice(SkBitmap::Config config,
|
| @@ -199,9 +202,11 @@ protected:
|
| virtual void drawRect(const SkDraw&, const SkRect& r,
|
| const SkPaint& paint) SK_OVERRIDE
|
| {SkASSERT(0);}
|
| + virtual void drawOval(const SkDraw&, const SkRect&, const SkPaint&) SK_OVERRIDE
|
| + {SkASSERT(0);}
|
| virtual void drawRRect(const SkDraw&, const SkRRect& rr,
|
| const SkPaint& paint) SK_OVERRIDE
|
| - {SkASSERT(0);}
|
| + {SkASSERT(0);}
|
| virtual void drawPath(const SkDraw&, const SkPath& path,
|
| const SkPaint& paint,
|
| const SkMatrix* prePathMatrix = NULL,
|
| @@ -210,6 +215,10 @@ protected:
|
| virtual void drawBitmap(const SkDraw&, const SkBitmap& bitmap,
|
| const SkMatrix& matrix, const SkPaint& paint) SK_OVERRIDE
|
| {SkASSERT(0);}
|
| + virtual void drawBitmapRect(const SkDraw&, const SkBitmap&, const SkRect*,
|
| + const SkRect&, const SkPaint&,
|
| + SkCanvas::DrawBitmapRectFlags) SK_OVERRIDE
|
| + {SkASSERT(0);}
|
| virtual void drawSprite(const SkDraw&, const SkBitmap& bitmap,
|
| int x, int y, const SkPaint& paint) SK_OVERRIDE
|
| {SkASSERT(0);}
|
| @@ -234,8 +243,24 @@ protected:
|
| virtual void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y,
|
| const SkPaint&) SK_OVERRIDE
|
| {SkASSERT(0);}
|
| +
|
| + virtual void lockPixels() SK_OVERRIDE {}
|
| + virtual void unlockPixels() SK_OVERRIDE {}
|
| +
|
| + virtual bool allowImageFilter(const SkImageFilter*) SK_OVERRIDE {
|
| + return false;
|
| + }
|
| + virtual bool canHandleImageFilter(const SkImageFilter*) SK_OVERRIDE {
|
| + return false;
|
| + }
|
| + virtual bool filterImage(const SkImageFilter*, const SkBitmap&,
|
| + const SkMatrix&, SkBitmap*, SkIPoint*) SK_OVERRIDE {
|
| + return false;
|
| + }
|
| +
|
| private:
|
| virtual void flush() SK_OVERRIDE;
|
| + virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRIDE {}
|
|
|
| void beginRecording();
|
| void init();
|
| @@ -255,12 +280,7 @@ private:
|
| size_t fBitmapSizeThreshold;
|
| };
|
|
|
| -DeferredDevice::DeferredDevice(SkSurface* surface)
|
| - : SkBitmapDevice(SkBitmap::kNo_Config,
|
| - surface->getCanvas()->getDevice()->width(),
|
| - surface->getCanvas()->getDevice()->height(),
|
| - surface->getCanvas()->getDevice()->isOpaque(),
|
| - surface->getCanvas()->getDevice()->getDeviceProperties()) {
|
| +DeferredDevice::DeferredDevice(SkSurface* surface) {
|
| fMaxRecordingStorageBytes = kDefaultMaxRecordingStorageBytes;
|
| fNotificationClient = NULL;
|
| fImmediateCanvas = NULL;
|
| @@ -427,6 +447,18 @@ int DeferredDevice::height() const {
|
| return immediateDevice()->height();
|
| }
|
|
|
| +SkBitmap::Config DeferredDevice::config() const {
|
| + return immediateDevice()->config();
|
| +}
|
| +
|
| +bool DeferredDevice::isOpaque() const {
|
| + return immediateDevice()->isOpaque();
|
| +}
|
| +
|
| +SkImageInfo DeferredDevice::imageInfo() const {
|
| + return immediateDevice()->imageInfo();
|
| +}
|
| +
|
| GrRenderTarget* DeferredDevice::accessRenderTarget() {
|
| this->flushPendingCommands(kNormal_PlaybackMode);
|
| return immediateDevice()->accessRenderTarget();
|
|
|