diff --git a/include/device/xps/SkXPSDevice.h b/include/device/xps/SkXPSDevice.h index c33e4503a1..e79081c4e8 100644 --- a/include/device/xps/SkXPSDevice.h +++ b/include/device/xps/SkXPSDevice.h @@ -85,6 +85,11 @@ protected: const SkRect& r, const SkPaint& paint) SK_OVERRIDE; + virtual void drawRRect( + const SkDraw&, + const SkRRect&, + const SkPaint& paint) SK_OVERRIDE; + virtual void drawPath( const SkDraw&, const SkPath& platonicPath, diff --git a/src/device/xps/SkXPSDevice.cpp b/src/device/xps/SkXPSDevice.cpp index 86b8c7d849..4686066dbf 100644 --- a/src/device/xps/SkXPSDevice.cpp +++ b/src/device/xps/SkXPSDevice.cpp @@ -1203,6 +1203,14 @@ void SkXPSDevice::drawRect(const SkDraw& d, this->internalDrawRect(d, r, true, paint); } +void SkXPSDevice::drawRRect(const SkDraw& d, + const SkRRect& rr, + const SkPaint& paint) { + SkPath path; + path.addRRect(rr); + this->drawPath(d, path, paint, NULL, true); +} + void SkXPSDevice::internalDrawRect(const SkDraw& d, const SkRect& r, bool transformRect, diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index ce5eb5e6ab..b94b2feac4 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -137,6 +137,7 @@ void DeferredPipeController::playback(bool silent) { //----------------------------------------------------------------------------- // DeferredDevice //----------------------------------------------------------------------------- +// FIXME: Derive from SkBaseDevice. class DeferredDevice : public SkBitmapDevice { public: explicit DeferredDevice(SkBaseDevice* immediateDevice); @@ -197,6 +198,9 @@ protected: virtual void drawRect(const SkDraw&, const SkRect& r, const SkPaint& paint) SK_OVERRIDE {SkASSERT(0);} + virtual void drawRRect(const SkDraw&, const SkRRect& rr, + const SkPaint& paint) SK_OVERRIDE + {SkASSERT(0);} virtual void drawPath(const SkDraw&, const SkPath& path, const SkPaint& paint, const SkMatrix* prePathMatrix = NULL, diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp index ce51614654..ffd9aa4429 100644 --- a/src/utils/SkPictureUtils.cpp +++ b/src/utils/SkPictureUtils.cpp @@ -46,6 +46,7 @@ static void nothing_to_do() {} * This device will route all bitmaps (primitives and in shaders) to its PRSet. * It should never actually draw anything, so there need not be any pixels * behind its device-bitmap. + * FIXME: Derive from SkBaseDevice. */ class GatherPixelRefDevice : public SkBitmapDevice { private: @@ -93,6 +94,10 @@ public: const SkPaint& paint) SK_OVERRIDE { this->addBitmapFromPaint(paint); } + virtual void drawRRect(const SkDraw&, const SkRRect&, + const SkPaint& paint) SK_OVERRIDE { + this->addBitmapFromPaint(paint); + } virtual void drawOval(const SkDraw&, const SkRect&, const SkPaint& paint) SK_OVERRIDE { this->addBitmapFromPaint(paint);