hackathon-dev #1

Merged
amy merged 101 commits from hackathon-dev into develop 2019-12-12 13:56:11 -07:00
Showing only changes of commit eee409d4e7 - Show all commits

View File

@ -29,6 +29,7 @@ static BOOL line_clip(PINT32 output, INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT
{ {
BYTE outcode1, outcode2; BYTE outcode1, outcode2;
INT32 tmp; INT32 tmp;
int nloop = 0;
Log(LDEBUG, "clipping line from (%d, %d) to (%d, %d) against bounding box (%d, %d, %d, %d)", x1 >> CPX, y1 >> CPX, x2 >> CPX, y2 >> CPX, Log(LDEBUG, "clipping line from (%d, %d) to (%d, %d) against bounding box (%d, %d, %d, %d)", x1 >> CPX, y1 >> CPX, x2 >> CPX, y2 >> CPX,
xmin >> CPX, ymin >> CPX, xmax >> CPX, ymax >> CPX); xmin >> CPX, ymin >> CPX, xmax >> CPX, ymax >> CPX);
@ -36,6 +37,11 @@ static BOOL line_clip(PINT32 output, INT32 x1, INT32 y1, INT32 x2, INT32 y2, INT
/* Cohen-Sutherland line-clipping algorithm (see Foley & Van Dam, pp. 145-149) */ /* Cohen-Sutherland line-clipping algorithm (see Foley & Van Dam, pp. 145-149) */
for (;;) for (;;)
{ {
if (++nloop == 20)
{
Log(LDEBUG, "POSSIBLE INFINITE LOOP DETECTED - REJECTING");
return FALSE;
}
outcode1 = line_clip_outcode(x1, y1, xmin, ymin, xmax, ymax); outcode1 = line_clip_outcode(x1, y1, xmin, ymin, xmax, ymax);
outcode2 = line_clip_outcode(x2, y2, xmin, ymin, xmax, ymax); outcode2 = line_clip_outcode(x2, y2, xmin, ymin, xmax, ymax);
if ((outcode1 & outcode2) != 0) if ((outcode1 & outcode2) != 0)