[raster] Increase the raster pool density.
This only helps to delay the pool overflow and bisections to larger sizes and benefits only very intricate glyphs at reasonable sizes. * src/raster/ftraster.c (TProfile): Use Int instead of Long or PLong when it is sufficient. (New_Profile, End_Profuile, Bezier_Up, Sort): Updated accordingly.
This commit is contained in:
parent
a0e10a87f5
commit
8c5ec8dd63
|
@ -338,9 +338,9 @@
|
||||||
PProfile link; /* link to next profile (various purposes) */
|
PProfile link; /* link to next profile (various purposes) */
|
||||||
PProfile next; /* next profile in same contour, used */
|
PProfile next; /* next profile in same contour, used */
|
||||||
/* during drop-out control */
|
/* during drop-out control */
|
||||||
PLong offset; /* start of profile's data in render pool */
|
Int offset; /* bottom or currently scanned array index */
|
||||||
Long height; /* profile's height in scanlines */
|
Int height; /* profile's height in scanlines */
|
||||||
Long start; /* profile's starting scanline */
|
Int start; /* profile's starting scanline */
|
||||||
UShort flags; /* Bit 0-2: drop-out mode */
|
UShort flags; /* Bit 0-2: drop-out mode */
|
||||||
/* Bit 3: profile orientation (up/down) */
|
/* Bit 3: profile orientation (up/down) */
|
||||||
/* Bit 4: is top profile? */
|
/* Bit 4: is top profile? */
|
||||||
|
@ -667,7 +667,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
ras.cProfile->height = 0;
|
ras.cProfile->height = 0;
|
||||||
ras.cProfile->offset = ras.top;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ras.cProfile->flags = ras.dropOutControl;
|
ras.cProfile->flags = ras.dropOutControl;
|
||||||
|
@ -722,7 +721,7 @@
|
||||||
End_Profile( RAS_ARGS Bool overshoot )
|
End_Profile( RAS_ARGS Bool overshoot )
|
||||||
{
|
{
|
||||||
PProfile p = ras.cProfile;
|
PProfile p = ras.cProfile;
|
||||||
Long h = (Long)( ras.top - p->offset );
|
Int h = (Int)( ras.top - p->x );
|
||||||
Int bottom, top;
|
Int bottom, top;
|
||||||
|
|
||||||
|
|
||||||
|
@ -735,7 +734,7 @@
|
||||||
|
|
||||||
if ( h > 0 )
|
if ( h > 0 )
|
||||||
{
|
{
|
||||||
FT_TRACE7(( " ending profile %p, start = %2ld, height = %+3ld\n",
|
FT_TRACE7(( " ending profile %p, start = %2d, height = %+3d\n",
|
||||||
(void *)p, p->start, p->flags & Flow_Up ? h : -h ));
|
(void *)p, p->start, p->flags & Flow_Up ? h : -h ));
|
||||||
|
|
||||||
if ( overshoot )
|
if ( overshoot )
|
||||||
|
@ -750,19 +749,20 @@
|
||||||
|
|
||||||
if ( p->flags & Flow_Up )
|
if ( p->flags & Flow_Up )
|
||||||
{
|
{
|
||||||
bottom = (Int)p->start;
|
bottom = p->start;
|
||||||
top = (Int)( p->start + h - 1 );
|
top = bottom + h;
|
||||||
|
p->offset = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bottom = (Int)( p->start - h + 1 );
|
top = p->start + 1;
|
||||||
top = (Int)p->start;
|
bottom = top - h;
|
||||||
p->start = bottom;
|
p->start = bottom;
|
||||||
p->offset += h - 1;
|
p->offset = h - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( Insert_Y_Turn( RAS_VARS bottom ) ||
|
if ( Insert_Y_Turn( RAS_VARS bottom ) ||
|
||||||
Insert_Y_Turn( RAS_VARS top + 1 ) )
|
Insert_Y_Turn( RAS_VARS top ) )
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
|
|
||||||
if ( !ras.gProfile )
|
if ( !ras.gProfile )
|
||||||
|
@ -1181,7 +1181,7 @@
|
||||||
|
|
||||||
if ( ras.fresh )
|
if ( ras.fresh )
|
||||||
{
|
{
|
||||||
ras.cProfile->start = TRUNC( e0 );
|
ras.cProfile->start = (Int)TRUNC( e0 );
|
||||||
ras.fresh = FALSE;
|
ras.fresh = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2074,7 +2074,7 @@
|
||||||
current = *list;
|
current = *list;
|
||||||
while ( current )
|
while ( current )
|
||||||
{
|
{
|
||||||
current->X = *current->offset;
|
current->X = current->x[current->offset];
|
||||||
current->offset += ( current->flags & Flow_Up ) ? 1 : -1;
|
current->offset += ( current->flags & Flow_Up ) ? 1 : -1;
|
||||||
current->height--;
|
current->height--;
|
||||||
current = current->link;
|
current = current->link;
|
||||||
|
|
Loading…
Reference in New Issue