ref: 4c09ae8002bcd35509f365c871776f9acbe35ab0
parent: 90e3dd6e86ff7bb6bb316af5953add736128a59c
author: Werner Lemberg <[email protected]>
date: Sat Oct 5 02:57:53 EDT 2002
* src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'. Update all callers. (TRUNC): Add cast to `TCoord'. Update all callers. (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and last_ey. Update all casts. (gray_render_line): Fix casts for `p' and `first'.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-10-05 Werner Lemberg <[email protected]>
+
+ * src/smooth/ftgrays.c (SUBPIXELS): Add cast to `TPos'.
+ Update all callers.
+ (TRUNC): Add cast to `TCoord'.
+ Update all callers.
+ (TRaster): Use `TPos' for min_ex, max_ex, min_ey, max_ey, and
+ last_ey.
+ Update all casts.
+ (gray_render_line): Fix casts for `p' and `first'.
+
2002-10-02 Detlef W�rkner <[email protected]>
* src/bdf/bdflib.c (bdf_load_font): Allocate the _bdf_parse_t
--- a/src/smooth/ftgrays.c
+++ b/src/smooth/ftgrays.c
@@ -201,8 +201,8 @@
#define ONE_PIXEL ( 1L << PIXEL_BITS )
#define PIXEL_MASK ( -1L << PIXEL_BITS )
-#define TRUNC( x ) ( (x) >> PIXEL_BITS )
-#define SUBPIXELS( x ) ( (x) << PIXEL_BITS )
+#define TRUNC( x ) ( (TCoord)((x) >> PIXEL_BITS) )
+#define SUBPIXELS( x ) ( (TPos)(x) << PIXEL_BITS )
#define FLOOR( x ) ( (x) & -ONE_PIXEL )
#define CEILING( x ) ( ( (x) + ONE_PIXEL - 1 ) & -ONE_PIXEL )
#define ROUND( x ) ( ( (x) + ONE_PIXEL / 2 ) & -ONE_PIXEL )
@@ -289,8 +289,8 @@
int max_cells;
int num_cells;
- TCoord min_ex, max_ex;
- TCoord min_ey, max_ey;
+ TPos min_ex, max_ex;
+ TPos min_ey, max_ey;
TArea area;
int cover;
@@ -300,7 +300,7 @@
TCoord cx, cy;
TPos x, y;
- TCoord last_ey;
+ TPos last_ey;
FT_Vector bez_stack[32 * 3 + 1];
int lev_stack[32];
@@ -367,8 +367,8 @@
return;
}
- ras.min_ex = ras.max_ex = (TCoord)vec->x;
- ras.min_ey = ras.max_ey = (TCoord)vec->y;
+ ras.min_ex = ras.max_ex = vec->x;
+ ras.min_ey = ras.max_ey = vec->y;
vec++;
@@ -378,10 +378,10 @@
TPos y = vec->y;
- if ( x < ras.min_ex ) ras.min_ex = (TCoord)x;
- if ( x > ras.max_ex ) ras.max_ex = (TCoord)x;
- if ( y < ras.min_ey ) ras.min_ey = (TCoord)y;
- if ( y > ras.max_ey ) ras.max_ey = (TCoord)y;
+ if ( x < ras.min_ex ) ras.min_ex = x;
+ if ( x > ras.max_ex ) ras.max_ex = x;
+ if ( y < ras.min_ey ) ras.min_ey = y;
+ if ( y > ras.max_ey ) ras.max_ey = y;
}
/* truncate the bounding box to integer pixels */
@@ -408,8 +408,8 @@
ft_longjmp( ras.jump_buffer, 1 );
cell = ras.cells + ras.num_cells++;
- cell->x = ras.ex - ras.min_ex;
- cell->y = ras.ey - ras.min_ey;
+ cell->x = (TCoord)(ras.ex - ras.min_ex);
+ cell->y = (TCoord)(ras.ey - ras.min_ey);
cell->area = ras.area;
cell->cover = ras.cover;
}
@@ -446,7 +446,7 @@
/* All cells that are on the left of the clipping region go to the */
/* min_ex - 1 horizontal position. */
if ( ex < ras.min_ex )
- ex = ras.min_ex - 1;
+ ex = (TCoord)(ras.min_ex - 1);
/* if our position is new, then record the previous cell */
if ( ex != ras.ex || ey != ras.ey )
@@ -482,7 +482,7 @@
TCoord ey )
{
if ( ex < ras.min_ex )
- ex = ras.min_ex - 1;
+ ex = (TCoord)(ras.min_ex - 1);
ras.area = 0;
ras.cover = 0;
@@ -513,8 +513,8 @@
dx = x2 - x1;
- ex1 = (TCoord)TRUNC( x1 ); /* if (ex1 >= ras.max_ex) ex1 = ras.max_ex-1; */
- ex2 = (TCoord)TRUNC( x2 ); /* if (ex2 >= ras.max_ex) ex2 = ras.max_ex-1; */
+ ex1 = TRUNC( x1 ); /* if (ex1 >= ras.max_ex) ex1 = ras.max_ex-1; */
+ ex2 = TRUNC( x2 ); /* if (ex2 >= ras.max_ex) ex2 = ras.max_ex-1; */
fx1 = (TCoord)( x1 - SUBPIXELS( ex1 ) );
fx2 = (TCoord)( x2 - SUBPIXELS( ex2 ) );
@@ -616,8 +616,8 @@
int delta, rem, mod, lift, incr;
- ey1 = (TCoord)TRUNC( ras.last_ey );
- ey2 = (TCoord)TRUNC( to_y ); /* if (ey2 >= ras.max_ey) ey2 = ras.max_ey-1; */
+ ey1 = TRUNC( ras.last_ey );
+ ey2 = TRUNC( to_y ); /* if (ey2 >= ras.max_ey) ey2 = ras.max_ey-1; */
fy1 = (TCoord)( ras.y - ras.last_ey );
fy2 = (TCoord)( to_y - SUBPIXELS( ey2 ) );
@@ -655,8 +655,8 @@
if ( dx == 0 )
{
- TCoord ex = (TCoord)TRUNC( ras.x );
- TCoord two_fx = (TCoord)( ( ras.x - SUBPIXELS( (TPos)ex ) ) << 1 );
+ TCoord ex = TRUNC( ras.x );
+ TCoord two_fx = (TCoord)( ( ras.x - SUBPIXELS( ex ) ) << 1 );
TPos area;
@@ -691,13 +691,13 @@
}
/* ok, we have to render several scanlines */
- p = (int)( ( ONE_PIXEL - fy1 ) * dx );
- first = (int)ONE_PIXEL;
+ p = ( ONE_PIXEL - fy1 ) * dx;
+ first = ONE_PIXEL;
incr = 1;
if ( dy < 0 )
{
- p = fy1 * (int)dx;
+ p = fy1 * dx;
first = 0;
incr = -1;
dy = -dy;
@@ -712,14 +712,14 @@
}
x = ras.x + delta;
- gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, first );
+ gray_render_scanline( RAS_VAR_ ey1, ras.x, fy1, x, (TCoord)first );
ey1 += incr;
- gray_set_cell( RAS_VAR_ (TCoord)TRUNC( x ), ey1 );
+ gray_set_cell( RAS_VAR_ TRUNC( x ), ey1 );
if ( ey1 != ey2 )
{
- p = (int)( ONE_PIXEL * dx );
+ p = ONE_PIXEL * dx;
lift = (int)( p / dy );
rem = (int)( p % dy );
if ( rem < 0 )
@@ -742,7 +742,7 @@
x2 = x + delta;
gray_render_scanline( RAS_VAR_ ey1, x,
(TCoord)( ONE_PIXEL - first ), x2,
- first );
+ (TCoord)first );
x = x2;
ey1 += incr;
@@ -1242,8 +1242,7 @@
x = UPSCALE( to->x );
y = UPSCALE( to->y );
- gray_start_cell( (PRaster)raster,
- (TCoord)TRUNC( x ), (TCoord)TRUNC( y ) );
+ gray_start_cell( (PRaster)raster, TRUNC( x ), TRUNC( y ) );
((PRaster)raster)->x = x;
((PRaster)raster)->y = y;
@@ -1388,10 +1387,9 @@
coverage = 255;
}
+ y += (TCoord)ras.min_ey;
+ x += (TCoord)ras.min_ex;
- y += ras.min_ey;
- x += ras.min_ex;
-
if ( coverage )
{
/* see if we can add this span to the current list */
@@ -1504,7 +1502,7 @@
/* draw a gray span between the start cell and the current one */
if ( cur->x > x )
gray_hline( RAS_VAR_ x, y,
- cover * ( ONE_PIXEL * 2 ), cur->x - x );
+ cover * ( ONE_PIXEL * 2 ), cur->x - x );
}
else
{
@@ -1511,8 +1509,8 @@
/* draw a gray span until the end of the clipping region */
if ( cover && x < ras.max_ex - ras.min_ex )
gray_hline( RAS_VAR_ x, y,
- cover * ( ONE_PIXEL * 2 ),
- ras.max_ex - x - ras.min_ex );
+ cover * ( ONE_PIXEL * 2 ),
+ (int)( ras.max_ex - x - ras.min_ex ) );
cover = 0;
}
@@ -1828,11 +1826,11 @@
static int
gray_convert_glyph( RAS_ARG )
{
- TBand bands[40];
- volatile TBand* band;
- volatile int n, num_bands;
- volatile TPos min, max, max_y;
- FT_BBox* clip;
+ TBand bands[40];
+ volatile TBand* band;
+ volatile int n, num_bands;
+ volatile TPos min, max, max_y;
+ FT_BBox* clip;
/* Set up state in the raster object */
@@ -1845,11 +1843,11 @@
ras.max_ey <= clip->yMin || ras.min_ey >= clip->yMax )
return 0;
- if ( ras.min_ex < clip->xMin ) ras.min_ex = (TCoord)clip->xMin;
- if ( ras.min_ey < clip->yMin ) ras.min_ey = (TCoord)clip->yMin;
+ if ( ras.min_ex < clip->xMin ) ras.min_ex = clip->xMin;
+ if ( ras.min_ey < clip->yMin ) ras.min_ey = clip->yMin;
- if ( ras.max_ex > clip->xMax ) ras.max_ex = (TCoord)clip->xMax;
- if ( ras.max_ey > clip->yMax ) ras.max_ey = (TCoord)clip->yMax;
+ if ( ras.max_ex > clip->xMax ) ras.max_ex = clip->xMax;
+ if ( ras.max_ey > clip->yMax ) ras.max_ey = clip->yMax;
/* simple heuristic used to speed-up the bezier decomposition -- see */
/* the code in gray_render_conic() and gray_render_cubic() for more */
@@ -1871,7 +1869,7 @@
}
/* setup vertical bands */
- num_bands = ( ras.max_ey - ras.min_ey ) / ras.band_size;
+ num_bands = (int)( ( ras.max_ey - ras.min_ey ) / ras.band_size );
if ( num_bands == 0 ) num_bands = 1;
if ( num_bands >= 39 ) num_bands = 39;
@@ -1898,8 +1896,8 @@
ras.num_cells = 0;
ras.invalid = 1;
- ras.min_ey = (TCoord)band->min;
- ras.max_ey = (TCoord)band->max;
+ ras.min_ey = band->min;
+ ras.max_ey = band->max;
#if 1
error = gray_convert_glyph_inner( RAS_VAR );