28 ycrv[0] = pts[0].
fY -
y;
29 ycrv[1] = pts[1].
fY -
y;
30 ycrv[2] = pts[2].
fY -
y;
31 ycrv[3] = pts[3].
fY -
y;
37 SkScalar t1 = ycrv[0] / (ycrv[0] - ycrv[3]);
42 const int maxiters = 5;
58 }
while (!converged && (iters < maxiters));
76 }
else if (ycrv[0] > 0) {
99 if (y0123 < 0) tNeg = tMid;
103 *t = (tNeg + tPos) / 2;
113 if (srcPts[0].fY > srcPts[3].fY) {
127 if (
dst[3].fY <= ctop ||
dst[0].fY >= cbot) {
void SkChopCubicAt(const SkPoint src[4], SkPoint dst[7], SkScalar t)
static SkPath clip(const SkPath &path, const SkHalfPlane &plane)
void swap(sk_sp< T > &a, sk_sp< T > &b)
static SkScalar SkScalarInterp(SkScalar A, SkScalar B, SkScalar t)
bool clipCubic(const SkPoint src[4], SkPoint dst[4])
void setClip(const SkIRect &clip)
static bool ChopMonoAtY(const SkPoint pts[4], SkScalar y, SkScalar *t)
SkScalar fBottom
larger y-axis bounds
void set(const SkIRect &src)
SkScalar fTop
smaller y-axis bounds