Lines Matching refs:nu
78 static void eval_sheet(const SkPoint edge[], int nu, int nv, int iu, int iv,
81 const int TR = nu;
83 const int BL = BR + nu;
85 SkScalar u = SkIntToScalar(iu) / nu;
97 v * edge[BR+nu-iu].fX + (1 - u) * edge[BL+nv-iv].fX - x0;
99 v * edge[BR+nu-iu].fY + (1 - u) * edge[BL+nv-iv].fY - y0;
107 void Patch::draw(SkCanvas* canvas, const SkPaint& paint, int nu, int nv,
109 if (nu < 1 || nv < 1) {
113 int i, npts = (nu + nv) * 2;
116 SkPoint* edge1 = edge0 + nu;
118 SkPoint* edge3 = edge2 + nu;
121 eval_patch_edge(fPts + 0, edge0, nu);
123 eval_patch_edge(fPts + 6, edge2, nu);
131 int row, vertCount = (nu + 1) * (nv + 1);
136 memcpy(verts, edge0, (nu + 1) * sizeof(SkPoint));
140 r += nu + 1;
142 for (int col = 1; col < nu; col++) {
143 eval_sheet(edge0, nu, nv, col, row, &r[col]);
145 r[nu] = edge1[row];
148 SkPoint* last = verts + nv * (nu + 1);
149 for (i = 0; i <= nu; i++) {
150 last[i] = edge2[nu - i];
155 int stripCount = (nu + 1) * 2;
162 const SkScalar ds = SK_Scalar1 * fW / nu;
167 SkPoint* lower = r + nu + 1;
170 for (i = 0; i <= nu; i++) {
187 static void drawpatches(SkCanvas* canvas, const SkPaint& paint, int nu, int nv,
191 patch->draw(canvas, paint, nu, nv, false, false);
193 patch->draw(canvas, paint, nu, nv, true, false);
195 patch->draw(canvas, paint, nu, nv, false, true);
197 patch->draw(canvas, paint, nu, nv, true, true);
239 const int nu = 10;
259 drawpatches(canvas, paint, nu, nv, &patch);
281 drawpatches(canvas, paint, nu, nv, &patch);