• Home
  • Raw
  • Download

Lines Matching refs:clip

20 static bool quick_reject(const SkRect& bounds, const SkRect& clip) {  in quick_reject()  argument
21 return bounds.fTop >= clip.fBottom || bounds.fBottom <= clip.fTop; in quick_reject()
83 static void chop_quad_in_Y(SkPoint pts[3], const SkRect& clip) { in chop_quad_in_Y() argument
88 if (pts[0].fY < clip.fTop) { in chop_quad_in_Y()
89 if (chopMonoQuadAtY(pts, clip.fTop, &t)) { in chop_quad_in_Y()
92 clamp_ge(tmp[2].fY, clip.fTop); in chop_quad_in_Y()
93 clamp_ge(tmp[3].fY, clip.fTop); in chop_quad_in_Y()
100 if (pts[i].fY < clip.fTop) { in chop_quad_in_Y()
101 pts[i].fY = clip.fTop; in chop_quad_in_Y()
108 if (pts[2].fY > clip.fBottom) { in chop_quad_in_Y()
109 if (chopMonoQuadAtY(pts, clip.fBottom, &t)) { in chop_quad_in_Y()
111 clamp_le(tmp[1].fY, clip.fBottom); in chop_quad_in_Y()
112 clamp_le(tmp[2].fY, clip.fBottom); in chop_quad_in_Y()
119 if (pts[i].fY > clip.fBottom) { in chop_quad_in_Y()
120 pts[i].fY = clip.fBottom; in chop_quad_in_Y()
128 void SkEdgeClipper::clipMonoQuad(const SkPoint srcPts[3], const SkRect& clip) { in clipMonoQuad() argument
133 if (pts[2].fY <= clip.fTop || pts[0].fY >= clip.fBottom) { in clipMonoQuad()
138 chop_quad_in_Y(pts, clip); in clipMonoQuad()
149 if (pts[2].fX <= clip.fLeft) { // wholly to the left in clipMonoQuad()
150 this->appendVLine(clip.fLeft, pts[0].fY, pts[2].fY, reverse); in clipMonoQuad()
153 if (pts[0].fX >= clip.fRight) { // wholly to the right in clipMonoQuad()
154 this->appendVLine(clip.fRight, pts[0].fY, pts[2].fY, reverse); in clipMonoQuad()
162 if (pts[0].fX < clip.fLeft) { in clipMonoQuad()
163 if (chopMonoQuadAtX(pts, clip.fLeft, &t)) { in clipMonoQuad()
165 this->appendVLine(clip.fLeft, tmp[0].fY, tmp[2].fY, reverse); in clipMonoQuad()
166 clamp_ge(tmp[2].fX, clip.fLeft); in clipMonoQuad()
167 clamp_ge(tmp[3].fX, clip.fLeft); in clipMonoQuad()
173 this->appendVLine(clip.fLeft, pts[0].fY, pts[2].fY, reverse); in clipMonoQuad()
179 if (pts[2].fX > clip.fRight) { in clipMonoQuad()
180 if (chopMonoQuadAtX(pts, clip.fRight, &t)) { in clipMonoQuad()
182 clamp_le(tmp[1].fX, clip.fRight); in clipMonoQuad()
183 clamp_le(tmp[2].fX, clip.fRight); in clipMonoQuad()
185 this->appendVLine(clip.fRight, tmp[2].fY, tmp[4].fY, reverse); in clipMonoQuad()
189 this->appendVLine(clip.fRight, pts[0].fY, pts[2].fY, reverse); in clipMonoQuad()
196 bool SkEdgeClipper::clipQuad(const SkPoint srcPts[3], const SkRect& clip) { in clipQuad() argument
203 if (!quick_reject(bounds, clip)) { in clipQuad()
210 this->clipMonoQuad(&monoX[x * 2], clip); in clipQuad()
275 static void chop_cubic_in_Y(SkPoint pts[4], const SkRect& clip) { in chop_cubic_in_Y() argument
280 if (pts[0].fY < clip.fTop) { in chop_cubic_in_Y()
281 if (chopMonoCubicAtY(pts, clip.fTop, &t)) { in chop_cubic_in_Y()
287 tmp[3].fY = clip.fTop; in chop_cubic_in_Y()
288 clamp_ge(tmp[4].fY, clip.fTop); in chop_cubic_in_Y()
289 clamp_ge(tmp[5].fY, clip.fTop); in chop_cubic_in_Y()
297 clamp_ge(pts[i].fY, clip.fTop); in chop_cubic_in_Y()
303 if (pts[3].fY > clip.fBottom) { in chop_cubic_in_Y()
304 if (chopMonoCubicAtY(pts, clip.fBottom, &t)) { in chop_cubic_in_Y()
306 clamp_le(tmp[1].fY, clip.fBottom); in chop_cubic_in_Y()
307 clamp_le(tmp[2].fY, clip.fBottom); in chop_cubic_in_Y()
308 clamp_le(tmp[3].fY, clip.fBottom); in chop_cubic_in_Y()
316 clamp_le(pts[i].fY, clip.fBottom); in chop_cubic_in_Y()
323 void SkEdgeClipper::clipMonoCubic(const SkPoint src[4], const SkRect& clip) { in clipMonoCubic() argument
328 if (pts[3].fY <= clip.fTop || pts[0].fY >= clip.fBottom) { in clipMonoCubic()
333 chop_cubic_in_Y(pts, clip); in clipMonoCubic()
343 if (pts[3].fX <= clip.fLeft) { // wholly to the left in clipMonoCubic()
344 this->appendVLine(clip.fLeft, pts[0].fY, pts[3].fY, reverse); in clipMonoCubic()
347 if (pts[0].fX >= clip.fRight) { // wholly to the right in clipMonoCubic()
348 this->appendVLine(clip.fRight, pts[0].fY, pts[3].fY, reverse); in clipMonoCubic()
356 if (pts[0].fX < clip.fLeft) { in clipMonoCubic()
357 if (chopMonoCubicAtX(pts, clip.fLeft, &t)) { in clipMonoCubic()
359 this->appendVLine(clip.fLeft, tmp[0].fY, tmp[3].fY, reverse); in clipMonoCubic()
360 clamp_ge(tmp[3].fX, clip.fLeft); in clipMonoCubic()
361 clamp_ge(tmp[4].fX, clip.fLeft); in clipMonoCubic()
362 clamp_ge(tmp[5].fX, clip.fLeft); in clipMonoCubic()
369 this->appendVLine(clip.fLeft, pts[0].fY, pts[3].fY, reverse); in clipMonoCubic()
375 if (pts[3].fX > clip.fRight) { in clipMonoCubic()
376 if (chopMonoCubicAtX(pts, clip.fRight, &t)) { in clipMonoCubic()
378 clamp_le(tmp[1].fX, clip.fRight); in clipMonoCubic()
379 clamp_le(tmp[2].fX, clip.fRight); in clipMonoCubic()
380 clamp_le(tmp[3].fX, clip.fRight); in clipMonoCubic()
382 this->appendVLine(clip.fRight, tmp[3].fY, tmp[6].fY, reverse); in clipMonoCubic()
386 this->appendVLine(clip.fRight, pts[0].fY, pts[3].fY, reverse); in clipMonoCubic()
393 bool SkEdgeClipper::clipCubic(const SkPoint srcPts[4], const SkRect& clip) { in clipCubic() argument
400 if (!quick_reject(bounds, clip)) { in clipCubic()
410 this->clipMonoCubic(&monoX[x * 3], clip); in clipCubic()