Index: src/core/SkEdge.h |
diff --git a/src/core/SkEdge.h b/src/core/SkEdge.h |
index db6f43085dadf88bd4b28cd128a2280d86935d92..f9175591df9b608d5392d25bf57253d9dec707c3 100644 |
--- a/src/core/SkEdge.h |
+++ b/src/core/SkEdge.h |
@@ -29,6 +29,8 @@ struct SkEdge { |
SkFixed fX; |
SkFixed fDX; |
+ float fFirstXf; // only used for trapezoidal renderer |
+ float fFirstYf; // only used for trapezoidal renderer |
int32_t fFirstY; |
int32_t fLastY; |
int8_t fCurveCount; // only used by kQuad(+) and kCubic(-) |
@@ -122,8 +124,10 @@ int SkEdge::setLine(const SkPoint& p0, const SkPoint& p1, int shift) { |
const SkFDot6 dy = SkEdge_Compute_DY(top, y0); |
fX = SkFDot6ToFixed(x0 + SkFixedMul(slope, dy)); // + SK_Fixed1/2 |
+ fFirstXf = winding < 0 ? p1.fX : p0.fX; |
fDX = slope; |
fFirstY = top; |
+ fFirstYf = static_cast<float>(top); |
fLastY = bot - 1; |
fCurveCount = 0; |
fWinding = SkToS8(winding); |