[raster] Sweep polishing.
* src/raster/ftraster.c (*_Sweep_Span): Polish. (*_Sweep_Drop): Restore tracing, polish. (Draw_Sweep): Simplify the dropout processing loop.
This commit is contained in:
parent
da8e428977
commit
d77dd24b41
@ -1989,7 +1989,8 @@
|
||||
FT_F26Dot6 x1,
|
||||
FT_F26Dot6 x2 )
|
||||
{
|
||||
Int e1, e2;
|
||||
Int e1 = (Int)TRUNC( CEILING( x1 ) );
|
||||
Int e2 = (Int)TRUNC( FLOOR( x2 ) );
|
||||
|
||||
FT_UNUSED( y );
|
||||
|
||||
@ -1999,12 +2000,9 @@
|
||||
ras.precision_bits, (double)x1 / (double)ras.precision,
|
||||
ras.precision_bits, (double)x2 / (double)ras.precision ));
|
||||
|
||||
e1 = (Int)TRUNC( CEILING( x1 ) );
|
||||
e2 = (Int)TRUNC( FLOOR( x2 ) );
|
||||
|
||||
if ( e2 >= 0 && e1 <= ras.bRight )
|
||||
{
|
||||
Byte* target;
|
||||
PByte target;
|
||||
|
||||
Int c1, f1, c2, f2;
|
||||
|
||||
@ -2066,19 +2064,22 @@
|
||||
/* otherwise check that the other pixel isn't set */
|
||||
else if ( e2 >=0 && e2 <= ras.bRight )
|
||||
{
|
||||
c1 = (Int)( e2 >> 3 );
|
||||
f1 = (Int)( e2 & 7 );
|
||||
c1 = e2 >> 3;
|
||||
f1 = 0x80 >> ( e2 & 7 );
|
||||
|
||||
if ( ras.bLine[c1] & ( 0x80 >> f1 ) )
|
||||
if ( ras.bLine[c1] & f1 )
|
||||
return;
|
||||
}
|
||||
|
||||
if ( e1 >= 0 && e1 <= ras.bRight )
|
||||
{
|
||||
c1 = (Int)( e1 >> 3 );
|
||||
f1 = (Int)( e1 & 7 );
|
||||
c1 = e1 >> 3;
|
||||
f1 = 0x80 >> ( e1 & 7 );
|
||||
|
||||
ras.bLine[c1] |= 0x80 >> f1;
|
||||
FT_TRACE7(( " y=%d x=%d%s\n", y, e1,
|
||||
ras.bLine[c1] & f1 ? " redundant" : "" ));
|
||||
|
||||
ras.bLine[c1] |= f1;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2115,7 +2116,8 @@
|
||||
FT_F26Dot6 x1,
|
||||
FT_F26Dot6 x2 )
|
||||
{
|
||||
Long e1, e2;
|
||||
Long e1 = CEILING( x1 );
|
||||
Long e2 = FLOOR( x2 );
|
||||
|
||||
|
||||
FT_TRACE7(( " x=%d y=[% .*f;% .*f]",
|
||||
@ -2129,8 +2131,6 @@
|
||||
/* */
|
||||
/* XXX: Can we handle horizontal lines better and drop this? */
|
||||
|
||||
e1 = CEILING( x1 );
|
||||
|
||||
if ( x1 == e1 )
|
||||
{
|
||||
e1 = TRUNC( e1 );
|
||||
@ -2151,8 +2151,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
e2 = FLOOR ( x2 );
|
||||
|
||||
if ( x2 == e2 )
|
||||
{
|
||||
e2 = TRUNC( e2 );
|
||||
@ -2209,6 +2207,9 @@
|
||||
bits = ras.bOrigin + ( y >> 3 ) - e1 * ras.bPitch;
|
||||
f1 = 0x80 >> ( y & 7 );
|
||||
|
||||
FT_TRACE7(( " x=%d y=%d%s\n", y, e1,
|
||||
*bits & f1 ? " redundant" : "" ));
|
||||
|
||||
*bits |= f1;
|
||||
}
|
||||
}
|
||||
@ -2402,7 +2403,7 @@
|
||||
P_Left = draw_left;
|
||||
P_Right = draw_right;
|
||||
|
||||
while ( dropouts && P_Left && P_Right )
|
||||
while ( dropouts )
|
||||
{
|
||||
if ( P_Left->flags & Dropout )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user