revert 6766, thereby re-landing 6762-6763 now that the bots are ready
git-svn-id: http://skia.googlecode.com/svn/trunk@6770 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index 7ea3bbb..c827be6 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -14,6 +14,7 @@
#include "SkDrawFilter.h"
#include "SkGPipe.h"
#include "SkPaint.h"
+#include "SkRRect.h"
#include "SkShader.h"
enum {
@@ -782,6 +783,15 @@
return val;
}
+bool SkDeferredCanvas::clipRRect(const SkRRect& rrect,
+ SkRegion::Op op,
+ bool doAntiAlias) {
+ this->drawingCanvas()->clipRRect(rrect, op, doAntiAlias);
+ bool val = this->INHERITED::clipRRect(rrect, op, doAntiAlias);
+ this->recordedDrawCommand();
+ return val;
+}
+
bool SkDeferredCanvas::clipPath(const SkPath& path,
SkRegion::Op op,
bool doAntiAlias) {
@@ -826,17 +836,35 @@
this->recordedDrawCommand();
}
+void SkDeferredCanvas::drawOval(const SkRect& rect, const SkPaint& paint) {
+ AutoImmediateDrawIfNeeded autoDraw(*this, &paint);
+ this->drawingCanvas()->drawOval(rect, paint);
+ this->recordedDrawCommand();
+}
+
void SkDeferredCanvas::drawRect(const SkRect& rect, const SkPaint& paint) {
if (fDeferredDrawing && this->isFullFrame(&rect, &paint) &&
isPaintOpaque(&paint)) {
this->getDeferredDevice()->skipPendingCommands();
}
-
+
AutoImmediateDrawIfNeeded autoDraw(*this, &paint);
this->drawingCanvas()->drawRect(rect, paint);
this->recordedDrawCommand();
}
+void SkDeferredCanvas::drawRRect(const SkRRect& rrect, const SkPaint& paint) {
+ if (rrect.isRect()) {
+ this->SkDeferredCanvas::drawRect(rrect.getBounds(), paint);
+ } else if (rrect.isOval()) {
+ this->SkDeferredCanvas::drawOval(rrect.getBounds(), paint);
+ } else {
+ AutoImmediateDrawIfNeeded autoDraw(*this, &paint);
+ this->drawingCanvas()->drawRRect(rrect, paint);
+ this->recordedDrawCommand();
+ }
+}
+
void SkDeferredCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
AutoImmediateDrawIfNeeded autoDraw(*this, &paint);
this->drawingCanvas()->drawPath(path, paint);