aboutsummaryrefslogtreecommitdiff
path: root/freetype/src/raster/ftraster.c
diff options
context:
space:
mode:
Diffstat (limited to 'freetype/src/raster/ftraster.c')
-rw-r--r--freetype/src/raster/ftraster.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/freetype/src/raster/ftraster.c b/freetype/src/raster/ftraster.c
index f0073981b..7fae8ef28 100644
--- a/freetype/src/raster/ftraster.c
+++ b/freetype/src/raster/ftraster.c
@@ -2284,6 +2284,8 @@
Long e1, e2;
Byte* target;
+ Int dropOutControl = left->flags & 7;
+
FT_UNUSED( y );
FT_UNUSED( left );
FT_UNUSED( right );
@@ -2293,7 +2295,8 @@
e1 = TRUNC( CEILING( x1 ) );
- if ( x2 - x1 - ras.precision <= ras.precision_jitter )
+ if ( dropOutControl != 2 &&
+ x2 - x1 - ras.precision <= ras.precision_jitter )
e2 = e1;
else
e2 = TRUNC( FLOOR( x2 ) );
@@ -2550,7 +2553,7 @@
e1 = TRUNC( e1 );
- if ( e1 >= 0 && e1 < ras.target.rows )
+ if ( e1 >= 0 && (ULong)e1 < ras.target.rows )
{
PByte p;
@@ -2644,7 +2647,7 @@
/* bounding box instead */
if ( pxl < 0 )
pxl = e1;
- else if ( TRUNC( pxl ) >= ras.target.rows )
+ else if ( (ULong)( TRUNC( pxl ) ) >= ras.target.rows )
pxl = e2;
/* check that the other pixel isn't set */
@@ -2659,9 +2662,9 @@
if ( ras.target.pitch > 0 )
bits += ( ras.target.rows - 1 ) * ras.target.pitch;
- if ( e1 >= 0 &&
- e1 < ras.target.rows &&
- *bits & f1 )
+ if ( e1 >= 0 &&
+ (ULong)e1 < ras.target.rows &&
+ *bits & f1 )
return;
}
else
@@ -2673,7 +2676,7 @@
e1 = TRUNC( pxl );
- if ( e1 >= 0 && e1 < ras.target.rows )
+ if ( e1 >= 0 && (ULong)e1 < ras.target.rows )
{
bits -= e1 * ras.target.pitch;
if ( ras.target.pitch > 0 )
@@ -3539,7 +3542,7 @@
}
- static void
+ static int
ft_black_set_mode( black_PRaster raster,
unsigned long mode,
const char* palette )
@@ -3563,6 +3566,8 @@
FT_UNUSED( palette );
#endif
+
+ return 0;
}