aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrShape.cpp
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-06-14 14:37:21 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-06-14 14:37:21 -0700
commitfd32df716cfc787a3ac50efb293a9317a97078c5 (patch)
treee7d7de97ef88ee4d9cc8a526d646eeff245209f5 /src/gpu/GrShape.cpp
parentf7fcdb226dc1a2d2929ef26c5ce7cea4460b809c (diff)
Fix GrShape to preserve inverseness of rrects for strokes but not dashes.
Diffstat (limited to 'src/gpu/GrShape.cpp')
-rw-r--r--src/gpu/GrShape.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/gpu/GrShape.cpp b/src/gpu/GrShape.cpp
index 11b2d38971..7be7e7ad04 100644
--- a/src/gpu/GrShape.cpp
+++ b/src/gpu/GrShape.cpp
@@ -281,16 +281,16 @@ GrShape::GrShape(const GrShape& parent, GrStyle::Apply apply, SkScalar scale) {
static inline bool rrect_path_is_inverse_filled(const SkPath& path, const SkStrokeRec& strokeRec,
const SkPathEffect* pe) {
- // Dashing doesn't use the path fill type. Dashing only works with stroking
+ // This is currently imitating the questionable behavior of the sw-rasterizer. Inverseness is
+ // respected for stroking but not dashing + stroking. (We make no assumptions about arbitrary
+ // path effects and preserve the path's inverseness.)
+ // skbug.com/5421
if (pe && pe->asADash(nullptr)) {
- pe = nullptr;
- }
-
- SkStrokeRec::Style style = strokeRec.getStyle();
- if (!pe && (SkStrokeRec::kStroke_Style == style || SkStrokeRec::kHairline_Style == style)) {
- // stroking ignores the path fill rule.
+ SkDEBUGCODE(SkStrokeRec::Style style = strokeRec.getStyle();)
+ SkASSERT(SkStrokeRec::kStroke_Style == style || SkStrokeRec::kHairline_Style == style);
return false;
}
+
return path.isInverseFillType();
}