Line drawing fixes

svn path=/trunk/; revision=4405
This commit is contained in:
Jason Filby 2003-03-23 09:18:51 +00:00
parent 68c3b158fc
commit 44b3528f71

View file

@ -266,13 +266,21 @@ BOOL vgaHLine(INT x, INT y, INT len, UCHAR c)
{
for (i=x; i<x+len; i++)
vgaPutPixel(i, y, c);
} else {
return TRUE;
}
// Calculate the left mask pixels, middle bytes and right mask pixel
ileftpix = 8-mod(x, 8);
irightpix = mod(x+len-1, 8);
irightpix = mod(x+len, 8);
imidpix = (len-ileftpix-irightpix) / 8;
if(ileftpix == 8)
{
ileftpix = 0;
imidpix++;
}
pre1=xconv[x-(8-ileftpix)]+y80[y];
orgpre1=pre1;
@ -300,15 +308,23 @@ BOOL vgaHLine(INT x, INT y, INT len, UCHAR c)
memset(vidmem+midpre1, c, imidpix); // write middle pixels, no need to read in latch because of the width
}
if(irightpix>0)
{
x=orgx+len-irightpix;
pre1=xconv[x]+y80[y];
for(i=x; i<x+irightpix; i++)
{
vgaPutPixel(i, y, c);
}
/* pre1=xconv[x]+y80[y];
// Write right pixels
WRITE_PORT_UCHAR((PUCHAR)0x3ce,0x08); // set the mask bits
WRITE_PORT_UCHAR((PUCHAR)0x3cf, endmasks[irightpix]);
a = READ_REGISTER_UCHAR(vidmem + pre1);
WRITE_REGISTER_UCHAR(vidmem + pre1, c);
WRITE_REGISTER_UCHAR(vidmem + pre1, c); */
}
return TRUE;