Override drawRRect in fake SkBitmapDevices.
Recent changes to SkBitmapDevice modified ::drawRRect() to take
an optimized drawing case. Some subclasses of SkBitmapDevice were
depending on the old behavior of calling ::drawPath(). Since they
do not draw, attempting to take the drawing path can cause problems.
For these subclasses, call drawPath() in the subclass.
R=reed@google.com, robertphillips@google.com
Review URL: https://codereview.chromium.org/70443002
git-svn-id: http://skia.googlecode.com/svn/trunk@12247 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index ce51614..ffd9aa4 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -46,6 +46,7 @@
* 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 @@
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);