Lines Matching defs:quad
66 * bitmasks (two bits per quad).
97 struct quad_header quad[MAX_QUADS];
126 * Clip setup->quad against the scissor/surface bounds.
129 quad_clip(struct setup_context *setup, struct quad_header *quad)
131 unsigned viewport_index = quad[0].input.viewport_index;
138 if (quad->input.x0 >= maxx ||
139 quad->input.y0 >= maxy ||
140 quad->input.x0 + 1 < minx ||
141 quad->input.y0 + 1 < miny) {
143 quad->inout.mask = 0x0;
146 if (quad->input.x0 < minx)
147 quad->inout.mask &= (MASK_BOTTOM_RIGHT | MASK_TOP_RIGHT);
148 if (quad->input.y0 < miny)
149 quad->inout.mask &= (MASK_BOTTOM_LEFT | MASK_BOTTOM_RIGHT);
150 if (quad->input.x0 == maxx - 1)
151 quad->inout.mask &= (MASK_BOTTOM_LEFT | MASK_TOP_LEFT);
152 if (quad->input.y0 == maxy - 1)
153 quad->inout.mask &= (MASK_TOP_LEFT | MASK_TOP_RIGHT);
158 * Emit a quad (pass to next stage) with clipping.
161 clip_emit_quad(struct setup_context *setup, struct quad_header *quad)
163 quad_clip(setup, quad);
165 if (quad->inout.mask) {
169 setup->numFragsEmitted += util_bitcount(quad->inout.mask);
172 sp->quad.first->run( sp->quad.first, &quad, 1 );
179 * Given an X or Y coordinate, return the block/quad coordinate that it
207 struct quad_stage *pipe = setup->softpipe->quad.first;
237 setup->quad[q].input.x0 = lx;
238 setup->quad[q].input.y0 = setup->span.y;
239 setup->quad[q].input.facing = setup->facing;
240 setup->quad[q].inout.mask = quadmask;
241 setup->quad_ptrs[q] = &setup->quad[q];
792 setup->quad[0].input.layer = layer;
798 setup->quad[0].input.viewport_index = viewport_index;
975 if (quadX != setup->quad[0].input.x0 ||
976 quadY != setup->quad[0].input.y0)
978 /* flush prev quad, start new quad */
980 if (setup->quad[0].input.x0 != -1)
981 clip_emit_quad(setup, &setup->quad[0]);
983 setup->quad[0].input.x0 = quadX;
984 setup->quad[0].input.y0 = quadY;
985 setup->quad[0].inout.mask = 0x0;
988 setup->quad[0].inout.mask |= mask;
1053 setup->quad[0].input.x0 = setup->quad[0].input.y0 = -1;
1054 setup->quad[0].inout.mask = 0x0;
1059 setup->quad[0].input.layer = layer;
1065 setup->quad[0].input.viewport_index = viewport_index;
1070 setup->quad[0].input.coverage[0] =
1071 setup->quad[0].input.coverage[1] =
1072 setup->quad[0].input.coverage[2] =
1073 setup->quad[0].input.coverage[3] = 1.0;
1116 /* draw final quad */
1117 if (setup->quad[0].inout.mask) {
1118 clip_emit_quad(setup, &setup->quad[0]);
1176 setup->quad[0].input.layer = layer;
1182 setup->quad[0].input.viewport_index = viewport_index;
1242 setup->quad[0].input.x0 = (int) x - ix;
1243 setup->quad[0].input.y0 = (int) y - iy;
1244 setup->quad[0].inout.mask = (1 << ix) << (2 * iy);
1245 clip_emit_quad(setup, &setup->quad[0]);
1265 setup->quad[0].inout.mask = 0x0;
1272 setup->quad[0].input.coverage[QUAD_TOP_LEFT] = MIN2(cover, 1.0f);
1273 setup->quad[0].inout.mask |= MASK_TOP_LEFT;
1281 setup->quad[0].input.coverage[QUAD_TOP_RIGHT] = MIN2(cover, 1.0f);
1282 setup->quad[0].inout.mask |= MASK_TOP_RIGHT;
1290 setup->quad[0].input.coverage[QUAD_BOTTOM_LEFT] = MIN2(cover, 1.0f);
1291 setup->quad[0].inout.mask |= MASK_BOTTOM_LEFT;
1299 setup->quad[0].input.coverage[QUAD_BOTTOM_RIGHT] = MIN2(cover, 1.0f);
1300 setup->quad[0].inout.mask |= MASK_BOTTOM_RIGHT;
1303 if (setup->quad[0].inout.mask) {
1304 setup->quad[0].input.x0 = ix;
1305 setup->quad[0].input.y0 = iy;
1306 clip_emit_quad(setup, &setup->quad[0]);
1350 setup->quad[0].inout.mask = mask;
1351 setup->quad[0].input.x0 = ix;
1352 setup->quad[0].input.y0 = iy;
1353 clip_emit_quad(setup, &setup->quad[0]);
1404 sp->quad.first->begin( sp->quad.first );
1438 setup->quad[i].coef = setup->coef;
1439 setup->quad[i].posCoef = &setup->posCoef;