Index: src/gpu/GrContext.cpp |
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp |
index 0d98ecd3204639a26a1a977f18dbe2998d8221f0..20c633dc67878d09bc9cff88e82cb04a2f72da1c 100644 |
--- a/src/gpu/GrContext.cpp |
+++ b/src/gpu/GrContext.cpp |
@@ -25,6 +25,7 @@ |
#include "GrStencilBuffer.h" |
#include "GrTextStrike.h" |
#include "SkRTConf.h" |
+#include "SkRRect.h" |
#include "SkStrokeRec.h" |
#include "SkTLazy.h" |
#include "SkTLS.h" |
@@ -952,6 +953,9 @@ void GrContext::drawVertices(const GrPaint& paint, |
void GrContext::drawRRect(const GrPaint& paint, |
const SkRRect& rect, |
const SkStrokeRec& stroke) { |
+ if (rect.isEmpty()) { |
+ return; |
+ } |
AutoRestoreEffects are; |
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW, &are); |
@@ -972,6 +976,9 @@ void GrContext::drawRRect(const GrPaint& paint, |
void GrContext::drawOval(const GrPaint& paint, |
const SkRect& oval, |
const SkStrokeRec& stroke) { |
+ if (oval.isEmpty()) { |
+ return; |
+ } |
AutoRestoreEffects are; |
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW, &are); |
@@ -1082,6 +1089,7 @@ void GrContext::drawPath(const GrPaint& paint, const SkPath& path, const SkStrok |
void GrContext::internalDrawPath(GrDrawTarget* target, bool useAA, const SkPath& path, |
const SkStrokeRec& stroke) { |
+ SkASSERT(!path.isEmpty()); |
// An Assumption here is that path renderer would use some form of tweaking |
// the src color (either the input alpha or in the frag shader) to implement |
@@ -1112,6 +1120,10 @@ void GrContext::internalDrawPath(GrDrawTarget* target, bool useAA, const SkPath& |
strokeRec.setFillStyle(); |
} |
} |
+ if (pathPtr->isEmpty()) { |
+ return; |
+ } |
+ |
// This time, allow SW renderer |
pr = this->getPathRenderer(*pathPtr, strokeRec, target, true, type); |
} |