Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(145)

Unified Diff: src/utils/SkDeferredCanvas.cpp

Issue 167003002: Revert "Revert of have DeferredDevice inherit from SkBaseDevice (https://codereview.chromium.org/16… (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698