summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/video/poly.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/video/poly.h')
-rw-r--r--src/devices/video/poly.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/devices/video/poly.h b/src/devices/video/poly.h
index ee34fd2d1ab..e364015ec95 100644
--- a/src/devices/video/poly.h
+++ b/src/devices/video/poly.h
@@ -1239,6 +1239,10 @@ uint32_t poly_manager<BaseType, ObjectType, MaxParams, Flags>::render_polygon(re
int32_t istartx = round_coordinate(startx);
int32_t istopx = round_coordinate(stopx);
+ // force start < stop
+ if (istartx > istopx)
+ std::swap(istartx, istopx);
+
// compute parameter starting points and deltas
extent_t &extent = unit.extent[extnum];
if (ParamCount > 0)
@@ -1254,7 +1258,7 @@ uint32_t poly_manager<BaseType, ObjectType, MaxParams, Flags>::render_polygon(re
BaseType rparam = redge->v1->p[paramnum] + rdy * redge->dpdy[paramnum];
BaseType dpdx = (rparam - lparam) * oox;
- extent.param[paramnum].start = lparam;// - (BaseType(istartx) + 0.5f) * dpdx;
+ extent.param[paramnum].start = lparam + (BaseType(istartx) + BaseType(0.5) - startx) * dpdx;
extent.param[paramnum].dpdx = dpdx;
}
}