195 {
196 int index, minX, maxX, minY, maxY;
197 int minXSet, minYSet;
198 minX = maxX = minY = maxY = 0;
199 minXSet = minYSet = 0;
200 for (index = 1; index < 4; ++index) {
202 minX = index;
203 }
205 minY = index;
206 }
208 maxX = index;
209 }
211 maxY = index;
212 }
213 }
214 for (index = 0; index < 4; ++index) {
215 double cx =
cubic[index].fX;
216 double cy =
cubic[index].fY;
219 if (denom == 0) {
220 minXSet |= 1 << index;
221 minYSet |= 1 << index;
222 continue;
223 }
224 double inv = 1 / denom;
226 minXSet |= 1 << index;
227 }
229 minYSet |= 1 << index;
230 }
231 }
232 if (minXSet == 0xF) {
233 if (minYSet == 0xF) {
235 }
237 }
238 if (minYSet == 0xF) {
240 }
244 }
248 }
250 return 4;
251}
static SkM44 inv(const SkM44 &m)
bool approximately_equal_half(double x, double y)
static int coincident_line(const SkDQuad &quad, SkDQuad &reduction)
static int check_linear(const SkDQuad &quad, int minX, int maxX, int minY, int maxY, SkDQuad &reduction)
static int horizontal_line(const SkDQuad &quad, SkDQuad &reduction)
static int check_quadratic(const SkDCubic &cubic, SkDCubic &reduction)
static int vertical_line(const SkDQuad &quad, SkDQuad &reduction)
static float max(float r, float g, float b)