Chromium Code Reviews| Index: src/gpu/effects/GrConvexPolyEffect.cpp |
| diff --git a/src/gpu/effects/GrConvexPolyEffect.cpp b/src/gpu/effects/GrConvexPolyEffect.cpp |
| index cf874cfa52604e1666ddecad3fec720d1063279a..082ea230f961a838b4b0fd9dd717d884a338252b 100644 |
| --- a/src/gpu/effects/GrConvexPolyEffect.cpp |
| +++ b/src/gpu/effects/GrConvexPolyEffect.cpp |
| @@ -5,6 +5,7 @@ |
| * found in the LICENSE file. |
| */ |
| +#include <effects/GrConstColorProcessor.h> |
|
egdaniel
2016/03/28 21:42:13
using <...> here?
bsalomon
2016/03/28 21:52:54
Ugh, my IDE inserted this without me realizing it.
|
| #include "GrConvexPolyEffect.h" |
| #include "GrInvariantOutput.h" |
| #include "SkPathPriv.h" |
| @@ -254,7 +255,16 @@ GrFragmentProcessor* GrConvexPolyEffect::Create(GrPrimitiveEdgeType type, const |
| SkScalar edges[3 * kMaxEdges]; |
| SkPathPriv::FirstDirection dir; |
| - SkAssertResult(SkPathPriv::CheapComputeFirstDirection(path, &dir)); |
| + // The only way this should fail is if the clip is effectively a infinitely thin line. In that |
| + // case nothing is inside the clip. It'd be nice to detect this at a higher level and either |
| + // skip the draw or omit the clip element. |
| + if (!SkPathPriv::CheapComputeFirstDirection(path, &dir)) { |
| + if (GrProcessorEdgeTypeIsInverseFill(type)) { |
| + return GrConstColorProcessor::Create(0xFFFFFFFF, |
| + GrConstColorProcessor::kModulateRGBA_InputMode); |
| + } |
| + return GrConstColorProcessor::Create(0, GrConstColorProcessor::kIgnore_InputMode); |
| + } |
| SkVector t; |
| if (nullptr == offset) { |