override drawOval and drawRRect in GatherPixelRefDevice, so we don't miss those,
and possibly crash trying to raster into an empty device.
http://code.google.com/p/skia/issues/detail?id=1086
Review URL: https://codereview.appspot.com/7193057
git-svn-id: http://skia.googlecode.com/svn/trunk@7372 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp
index 46ca6d6..0b147fa 100644
--- a/src/utils/SkPictureUtils.cpp
+++ b/src/utils/SkPictureUtils.cpp
@@ -84,7 +84,15 @@
const SkPoint[], const SkPaint& paint) SK_OVERRIDE {
this->addBitmapFromPaint(paint);
}
- virtual void drawRect(const SkDraw&, const SkRect& r,
+ virtual void drawRect(const SkDraw&, const SkRect&,
+ const SkPaint& paint) SK_OVERRIDE {
+ this->addBitmapFromPaint(paint);
+ }
+ virtual void drawOval(const SkDraw&, const SkRect&,
+ const SkPaint& paint) SK_OVERRIDE {
+ this->addBitmapFromPaint(paint);
+ }
+ virtual void drawRRect(const SkDraw&, const SkRRect&,
const SkPaint& paint) SK_OVERRIDE {
this->addBitmapFromPaint(paint);
}
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index da8d13a..395ce4a 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -11,6 +11,7 @@
#include "SkPaint.h"
#include "SkPicture.h"
#include "SkRandom.h"
+#include "SkRRect.h"
#include "SkShader.h"
#include "SkStream.h"
@@ -54,6 +55,10 @@
SkPaint paint;
paint.setShader(s)->unref();
canvas->drawRect(r, paint);
+ canvas->drawOval(r, paint);
+ SkRRect rr;
+ rr.setRectXY(r, 10, 10);
+ canvas->drawRRect(rr, paint);
}
// Return a picture with the bitmaps drawn at the specified positions.