boolean will_draw_start;
boolean will_draw_end;
+ if (lp_context->active_statistics_queries) {
+ lp_context->pipeline_statistics.c_primitives++;
+ }
+
if (0)
print_line(setup, v1, v2);
if (fabsf(dx) >= fabsf(dy)) {
float dydx = dy / dx;
- x1diff = v1[0][0] - (float) floor(v1[0][0]) - 0.5;
- y1diff = v1[0][1] - (float) floor(v1[0][1]) - 0.5;
- x2diff = v2[0][0] - (float) floor(v2[0][0]) - 0.5;
- y2diff = v2[0][1] - (float) floor(v2[0][1]) - 0.5;
+ x1diff = v1[0][0] - floorf(v1[0][0]) - 0.5f;
+ y1diff = v1[0][1] - floorf(v1[0][1]) - 0.5f;
+ x2diff = v2[0][0] - floorf(v2[0][0]) - 0.5f;
+ y2diff = v2[0][1] - floorf(v2[0][1]) - 0.5f;
if (y2diff==-0.5 && dy<0){
y2diff = 0.5;
const float dxdy = dx / dy;
/* Y-MAJOR LINE */
- x1diff = v1[0][0] - (float) floor(v1[0][0]) - 0.5;
- y1diff = v1[0][1] - (float) floor(v1[0][1]) - 0.5;
- x2diff = v2[0][0] - (float) floor(v2[0][0]) - 0.5;
- y2diff = v2[0][1] - (float) floor(v2[0][1]) - 0.5;
+ x1diff = v1[0][0] - floorf(v1[0][0]) - 0.5f;
+ y1diff = v1[0][1] - floorf(v1[0][1]) - 0.5f;
+ x2diff = v2[0][0] - floorf(v2[0][0]) - 0.5f;
+ y2diff = v2[0][1] - floorf(v2[0][1]) - 0.5f;
if (x2diff==-0.5 && dx<0) {
x2diff = 0.5;
scissor = &setup->scissors[viewport_index];
scissor_planes_needed(s_planes, &bboxpos, scissor);
nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
+ } else {
+ scissor = &setup->draw_regions[viewport_index];
+ scissor_planes_needed(s_planes, &bboxpos, scissor);
+ nr_planes += s_planes[0] + s_planes[1] + s_planes[2] + s_planes[3];
}
line = lp_setup_alloc_triangle(scene,
LP_COUNT(nr_tris);
- if (lp_context->active_statistics_queries) {
- lp_context->pipeline_statistics.c_primitives++;
- }
-
/* calculate the deltas */
plane = GET_PLANES(line);
plane[0].dcdy = x[0] - x[1];
struct lp_rast_plane *plane_s = &plane[4];
if (s_planes[0]) {
- plane_s->dcdx = -1 << 8;
+ plane_s->dcdx = ~0U << 8;
plane_s->dcdy = 0;
plane_s->c = (1-scissor->x0) << 8;
plane_s->eo = 1 << 8;
}
if (s_planes[3]) {
plane_s->dcdx = 0;
- plane_s->dcdy = -1 << 8;
+ plane_s->dcdy = ~0U << 8;
plane_s->c = (scissor->y1+1) << 8;
plane_s->eo = 0;
plane_s++;