54#define FT_RENDER_POOL_SIZE 16384L
56#define FT_CONFIG_STANDARD_LIBRARY_H <stdlib.h>
67#include FT_INTERNAL_CALC_H
173#define FT_COMPONENT trace_raster
179#define FT_ERR_XCAT( x, y ) x ## y
180#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
186#define FT_UNUSED( x ) (x) = (x)
191#define FT_ERROR( x ) do { } while ( 0 )
195#define FT_TRACE( x ) do { } while ( 0 )
196#define FT_TRACE1( x ) do { } while ( 0 )
197#define FT_TRACE6( x ) do { } while ( 0 )
198#define FT_TRACE7( x ) do { } while ( 0 )
202#define FT_THROW( e ) FT_ERR_CAT( Raster_Err_, e )
205#define Raster_Err_None 0
206#define Raster_Err_Not_Ini -1
207#define Raster_Err_Overflow -2
208#define Raster_Err_Neg_Height -3
209#define Raster_Err_Invalid -4
210#define Raster_Err_Unsupported -5
212#define ft_memset memset
214#define FT_DEFINE_RASTER_FUNCS( class_, glyph_format_, raster_new_, \
215 raster_reset_, raster_set_mode_, \
216 raster_render_, raster_done_ ) \
217 const FT_Raster_Funcs class_ = \
230#include FT_INTERNAL_OBJECTS_H
231#include FT_INTERNAL_DEBUG_H
235#define Raster_Err_None FT_Err_Ok
236#define Raster_Err_Not_Ini Raster_Err_Raster_Uninitialized
237#define Raster_Err_Overflow Raster_Err_Raster_Overflow
238#define Raster_Err_Neg_Height Raster_Err_Raster_Negative_Height
239#define Raster_Err_Invalid Raster_Err_Invalid_Outline
240#define Raster_Err_Unsupported Raster_Err_Cannot_Render_Glyph
247#define FT_MEM_SET( d, s, c ) ft_memset( d, s, c )
251#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count )
255#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) )
261#define FMulDiv( a, b, c ) ( (a) * (b) / (c) )
266#define SMulDiv FT_MulDiv
267#define SMulDiv_No_Round FT_MulDiv_No_Round
339#define Overshoot_Top 0x10U
340#define Overshoot_Bottom 0x20U
390#define AlignProfileSize \
391 ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( Long ) )
399#ifdef FT_STATIC_RASTER
408#define FT_UNUSED_RASTER do { } while ( 0 )
414#define RAS_ARGS black_PWorker worker,
415#define RAS_ARG black_PWorker worker
417#define RAS_VARS worker,
418#define RAS_VAR worker
420#define FT_UNUSED_RASTER FT_UNUSED( worker )
451#define FLOOR( x ) ( (x) & -ras.precision )
452#define CEILING( x ) ( ( (x) + ras.precision - 1 ) & -ras.precision )
453#define TRUNC( x ) ( (Long)(x) >> ras.precision_bits )
454#define FRAC( x ) ( (x) & ( ras.precision - 1 ) )
455#define SCALED( x ) ( ( (x) < 0 ? -( -(x) << ras.scale_shift ) \
456 : ( (x) << ras.scale_shift ) ) \
457 - ras.precision_half )
459#define IS_BOTTOM_OVERSHOOT( x ) \
460 (Bool)( CEILING( x ) - x >= ras.precision_half )
461#define IS_TOP_OVERSHOOT( x ) \
462 (Bool)( x - FLOOR( x ) >= ras.precision_half )
464#if FT_RENDER_POOL_SIZE > 2048
465#define FT_MAX_BLACK_POOL ( FT_RENDER_POOL_SIZE / sizeof ( Long ) )
467#define FT_MAX_BLACK_POOL ( 2048 / sizeof ( Long ) )
554#ifdef FT_STATIC_RASTER
614 ras.precision_bits = 12;
615 ras.precision_step = 256;
616 ras.precision_jitter = 30;
620 ras.precision_bits = 6;
621 ras.precision_step = 32;
622 ras.precision_jitter = 2;
625 FT_TRACE6((
"Set_High_Precision(%s)\n",
High ?
"true" :
"false" ));
627 ras.precision = 1 <<
ras.precision_bits;
628 ras.precision_half =
ras.precision / 2;
658 ras.fProfile =
ras.cProfile;
662 if (
ras.top >=
ras.maxBuff )
668 ras.cProfile->flags = 0;
669 ras.cProfile->start = 0;
670 ras.cProfile->height = 0;
671 ras.cProfile->offset =
ras.top;
674 ras.cProfile->flags =
ras.dropOutControl;
683 FT_TRACE6((
" new ascending profile = %p\n",
ras.cProfile ));
689 FT_TRACE6((
" new descending profile = %p\n",
ras.cProfile ));
693 FT_ERROR((
"New_Profile: invalid profile direction\n" ));
699 ras.gProfile =
ras.cProfile;
734 FT_ERROR((
"End_Profile: negative height encountered\n" ));
744 FT_TRACE6((
" ending profile %p, start = %ld, height = %ld\n",
745 ras.cProfile,
ras.cProfile->start,
h ));
747 ras.cProfile->height =
h;
756 oldProfile =
ras.cProfile;
761 ras.cProfile->height = 0;
762 ras.cProfile->offset =
ras.top;
764 oldProfile->
next =
ras.cProfile;
768 if (
ras.top >=
ras.maxBuff )
770 FT_TRACE1((
"overflow in End_Profile\n" ));
803 n =
ras.numTurns - 1;
804 y_turns =
ras.sizeBuff -
ras.numTurns;
807 while (
n >= 0 &&
y < y_turns[
n] )
811 if (
n >= 0 &&
y > y_turns[
n] )
819 }
while ( --
n >= 0 );
824 if (
ras.maxBuff <=
ras.top )
830 ras.sizeBuff[-
ras.numTurns] =
y;
873 top = (
Int)(
p->start +
p->height - 1 );
880 p->offset +=
p->height - 1;
923 base[2].x = (
a +
b ) / 2;
929 base[2].y = (
a +
b ) / 2;
961 c = (
c +
d + 1 ) >> 1;
962 base[2].x =
a = (
a +
c + 1 ) >> 1;
963 base[4].x =
b = (
b +
c + 1 ) >> 1;
964 base[3].x = (
a +
b + 1 ) >> 1;
971 c = (
c +
d + 1 ) >> 1;
972 base[2].y =
a = (
a +
c + 1 ) >> 1;
973 base[4].y =
b = (
b +
c + 1 ) >> 1;
974 base[3].y = (
a +
b + 1 ) >> 1;
1021 if ( Dy <= 0 || y2 < miny || y1 >
maxy )
1071 ras.cProfile->start = e1;
1085 Rx = (
ras.precision * Dx ) % Dy;
1091 Rx = (
ras.precision * -Dx ) % Dy;
1157 if ( fresh && !
ras.fresh )
1158 ras.cProfile->start = -
ras.cProfile->start;
1209 if ( y2 < miny || y1 >
maxy )
1235 *
top++ = arc[degree].
x;
1268 if (
y2 -
y1 >=
ras.precision_step )
1292 }
while ( arc >= start_arc &&
e <= e2 );
1332 arc[0].
y = -arc[0].
y;
1333 arc[1].
y = -arc[1].
y;
1334 arc[2].
y = -arc[2].
y;
1336 arc[3].
y = -arc[3].
y;
1342 if ( fresh && !
ras.fresh )
1343 ras.cProfile->start = -
ras.cProfile->start;
1345 arc[0].
y = -arc[0].
y;
1375 switch (
ras.state )
1378 if (
y >
ras.lastY )
1386 if (
y <
ras.lastY )
1394 if (
y <
ras.lastY )
1404 if (
y >
ras.lastY )
1419 switch (
ras.state )
1478 ras.arc[2].x =
ras.lastX;
1479 ras.arc[2].y =
ras.lastY;
1505 if ( y2 < ymin || y2 > ymax )
1511 else if (
y1 == y3 )
1521 if (
ras.state != state_bez )
1549 }
while (
ras.arc >=
ras.arcs );
1596 Long y1,
y2, y3, y4, x4, ymin1, ymax1, ymin2, ymax2;
1601 ras.arc[3].x =
ras.lastX;
1602 ras.arc[3].y =
ras.lastY;
1642 if ( ymin2 < ymin1 || ymax2 > ymax1 )
1648 else if (
y1 == y4 )
1658 if (
ras.state != state_bez )
1685 }
while (
ras.arc >=
ras.arcs );
1698#define SWAP_( x, y ) do \
1756 SWAP_( v_start.
x, v_start.
y );
1760 v_control = v_start;
1773 goto Invalid_Outline;
1790 v_start.
x = ( v_start.
x + v_last.
x ) / 2;
1791 v_start.
y = ( v_start.
y + v_last.
y ) / 2;
1799 ras.lastX = v_start.
x;
1800 ras.lastY = v_start.
y;
1831 SWAP_( v_control.
x, v_control.
y );
1858 goto Invalid_Outline;
1860 v_middle.
x = ( v_control.
x +
x ) / 2;
1861 v_middle.
y = ( v_control.
y +
y ) / 2;
1864 v_middle.
x, v_middle.
y ) )
1874 v_start.
x, v_start.
y ) )
1886 goto Invalid_Outline;
1969 ras.cProfile->offset =
ras.top;
1974 for (
i = 0;
i <
ras.outline.n_contours;
i++ )
1994 if (
ras.gProfile &&
2001 lastProfile =
ras.cProfile;
2002 if (
ras.top !=
ras.cProfile->offset &&
2012 lastProfile->
next =
ras.gProfile;
2064 if ( x < current->
X )
2179 Long pitch =
ras.target.pitch;
2185 ras.traceOfs = -*
min * pitch;
2187 ras.traceOfs += (
Long)(
ras.target.rows - 1 ) * pitch;
2201 Int dropOutControl =
left->flags & 7;
2210 FT_TRACE7((
" y=%d x=[%.12f;%.12f], drop-out=%d",
2212 x1 / (
double)
ras.precision,
2213 x2 / (
double)
ras.precision,
2220 if ( dropOutControl != 2 &&
2221 x2 -
x1 -
ras.precision <=
ras.precision_jitter )
2226 if ( e2 >= 0 && e1 <
ras.bWidth )
2234 if ( e2 >=
ras.bWidth )
2235 e2 =
ras.bWidth - 1;
2239 c1 = (
Short)( e1 >> 3 );
2240 c2 = (
Short)( e2 >> 3 );
2242 f1 = (
Byte) ( 0xFF >> ( e1 & 7 ) );
2243 f2 = (
Byte) ~( 0x7F >> ( e2 & 7 ) );
2284 x1 / (
double)
ras.precision,
2285 x2 / (
double)
ras.precision ));
2316 Int dropOutControl =
left->flags & 7;
2319 FT_TRACE7((
", drop-out=%d", dropOutControl ));
2321 if ( e1 == e2 +
ras.precision )
2323 switch ( dropOutControl )
2330 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2364 left->height <= 0 &&
2366 x2 -
x1 >=
ras.precision_half ) )
2373 x2 -
x1 >=
ras.precision_half ) )
2376 if ( dropOutControl == 1 )
2379 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2391 else if (
TRUNC( pxl ) >=
ras.bWidth )
2395 e1 = ( pxl == e1 ) ? e2 : e1;
2399 c1 = (
Short)( e1 >> 3 );
2402 if ( e1 >= 0 && e1 <
ras.bWidth &&
2403 ras.bTarget[
ras.traceOfs + c1] & ( 0x80 >>
f1 ) )
2412 if ( e1 >= 0 && e1 <
ras.bWidth )
2414 FT_TRACE7((
" -> x=%d (drop-out)", e1 ));
2416 c1 = (
Short)( e1 >> 3 );
2419 ras.bTarget[
ras.traceOfs + c1] |= (
char)( 0x80 >>
f1 );
2430 ras.traceOfs +=
ras.traceIncr;
2465 if (
x2 -
x1 <
ras.precision )
2472 x1 / (
double)
ras.precision,
2473 x2 / (
double)
ras.precision ));
2482 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2489 FT_TRACE7((
" -> y=%d (drop-out)", e1 ));
2492 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2495 if (
ras.target.pitch > 0 )
2496 p += (
Long)(
ras.target.rows - 1 ) *
ras.target.pitch;
2521 x1 / (
double)
ras.precision,
2522 x2 / (
double)
ras.precision ));
2542 Int dropOutControl =
left->flags & 7;
2545 FT_TRACE7((
", dropout=%d", dropOutControl ));
2547 if ( e1 == e2 +
ras.precision )
2549 switch ( dropOutControl )
2556 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2565 left->height <= 0 &&
2567 x2 -
x1 >=
ras.precision_half ) )
2574 x2 -
x1 >=
ras.precision_half ) )
2577 if ( dropOutControl == 1 )
2580 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2596 e1 = ( pxl == e1 ) ? e2 : e1;
2601 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2603 bits -= e1 *
ras.target.pitch;
2604 if (
ras.target.pitch > 0 )
2618 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2620 FT_TRACE7((
" -> y=%d (drop-out)", e1 ));
2623 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2624 bits -= e1 *
ras.target.pitch;
2626 if (
ras.target.pitch > 0 )
2654 Short y, y_change, y_height;
2698 if (
ras.numTurns == 0 )
2714 P->countL =
P->start - min_Y;
2723 if (
ras.numTurns > 0 &&
2724 ras.sizeBuff[-
ras.numTurns] == min_Y )
2727 while (
ras.numTurns > 0 )
2736 P->countL -= y_height;
2737 if (
P->countL == 0 )
2753 Sort( &draw_right );
2756 y_height = (
Short)( y_change -
y );
2758 while (
y < y_change )
2765 P_Right = draw_right;
2782 if (
x2 -
x1 <=
ras.precision &&
2783 e1 !=
x1 && e2 !=
x2 )
2785 if ( e1 > e2 || e2 == e1 +
ras.precision )
2787 Int dropOutControl = P_Left->
flags & 7;
2790 if ( dropOutControl != 2 )
2810 P_Left = P_Left->
link;
2811 P_Right = P_Right->
link;
2829 Sort( &draw_right );
2839 if (
P->height == 0 )
2848 if (
P->height == 0 )
2855 while (
y <= max_Y )
2866 P_Right = draw_right;
2883 P_Left = P_Left->
link;
2884 P_Right = P_Right->
link;
2911 while (
ras.band_top >= 0 )
2933 i =
ras.band_stack[
ras.band_top].y_min;
2934 j =
ras.band_stack[
ras.band_top].y_max;
2938 if (
ras.band_top >= 7 ||
k <
i )
2946 ras.band_stack[
ras.band_top + 1].y_min =
k;
2947 ras.band_stack[
ras.band_top + 1].y_max =
j;
2985 ras.scale_shift =
ras.precision_shift;
2988 ras.dropOutControl = 2;
2992 ras.dropOutControl = 4;
2994 ras.dropOutControl = 0;
2997 ras.dropOutControl += 1;
3000 ras.second_pass = (
Bool)( !(
ras.outline.flags &
3004 FT_TRACE7((
"Vertical pass (ftraster)\n" ));
3012 ras.band_stack[0].y_min = 0;
3013 ras.band_stack[0].y_max = (
Short)(
ras.target.rows - 1 );
3022 if (
ras.second_pass &&
ras.dropOutControl != 2 )
3024 FT_TRACE7((
"Horizontal pass (ftraster)\n" ));
3032 ras.band_stack[0].y_min = 0;
3033 ras.band_stack[0].y_max = (
Short)(
ras.target.width - 1 );
3188 if ( !target_map->width || !target_map->rows )
3191 if ( !target_map->buffer )
3202 if (
vec->
x < -0x1000000L ||
vec->
x > 0x1000000L ||
3203 vec->
y < -0x1000000L ||
vec->
y > 0x1000000L )
3220 ras.target = *target_map;
3226 worker->sizeBuff = (&
buffer)[1];
#define FT_RENDER_POOL_SIZE
#define FT_ERROR(varformat)
#define FT_TRACE7(varformat)
#define FT_TRACE6(varformat)
#define FT_TRACE1(varformat)
#define FT_CURVE_TAG_CUBIC
#define FT_RASTER_FLAG_AA
#define FT_OUTLINE_SMART_DROPOUTS
#define FT_CURVE_TAG_HAS_SCANMODE
#define FT_CURVE_TAG_CONIC
#define FT_Raster_Render_Func
struct FT_RasterRec_ * FT_Raster
#define FT_OUTLINE_IGNORE_DROPOUTS
#define FT_OUTLINE_INCLUDE_STUBS
#define FT_Raster_Reset_Func
#define FT_RASTER_FLAG_DIRECT
#define FT_CURVE_TAG(flag)
#define FT_OUTLINE_HIGH_PRECISION
#define FT_Raster_New_Func
#define FT_Raster_Set_Mode_Func
#define FT_OUTLINE_SINGLE_PASS
#define FT_Raster_Done_Func
#define FT_DEFINE_RASTER_FUNCS( class_, glyph_format_, raster_new_, raster_reset_, raster_set_mode_, raster_render_, raster_done_)
struct black_TRaster_ * black_PRaster
static void Set_High_Precision(RAS_ARGS Int High)
static void Horizontal_Sweep_Drop(RAS_ARGS Short y, FT_F26Dot6 x1, FT_F26Dot6 x2, PProfile left, PProfile right)
void(* TSplitter)(TPoint *base)
static void Horizontal_Sweep_Span(RAS_ARGS Short y, FT_F26Dot6 x1, FT_F26Dot6 x2, PProfile left, PProfile right)
static Bool Line_Down(RAS_ARGS Long x1, Long y1, Long x2, Long y2, Long miny, Long maxy)
static int ft_black_new(FT_Memory memory, black_PRaster *araster)
static Bool Finalize_Profile_Table(RAS_ARG)
static void Horizontal_Sweep_Init(RAS_ARGS Short *min, Short *max)
union Alignment_ * PAlignment
static Bool Conic_To(RAS_ARGS Long cx, Long cy, Long x, Long y)
static void ft_black_reset(FT_Raster raster, PByte pool_base, ULong pool_size)
static void Init_Linked(TProfileList *l)
struct black_TWorker_ * black_PWorker
static void Vertical_Sweep_Step(RAS_ARG)
static FT_Error Render_Glyph(RAS_ARG)
static void Split_Conic(TPoint *base)
static Bool Decompose_Curve(RAS_ARGS UShort first, UShort last, Int flipped)
static void Vertical_Sweep_Init(RAS_ARGS Short *min, Short *max)
static Bool End_Profile(RAS_ARGS Bool overshoot)
struct black_TBand_ black_TBand
static int ft_black_set_mode(FT_Raster raster, ULong mode, void *args)
static Bool Bezier_Down(RAS_ARGS Int degree, TSplitter splitter, Long miny, Long maxy)
void Function_Sweep_Step(RAS_ARG)
static void Split_Cubic(TPoint *base)
static void ft_black_init(black_PRaster raster)
static void DelOld(PProfileList list, PProfile profile)
static Bool Line_To(RAS_ARGS Long x, Long y)
static Bool Convert_Glyph(RAS_ARGS Int flipped)
static void InsNew(PProfileList list, PProfile profile)
static void ft_black_done(black_PRaster raster)
void Function_Sweep_Init(RAS_ARGS Short *min, Short *max)
#define FT_MAX_BLACK_POOL
union Alignment_ Alignment
void Function_Sweep_Span(RAS_ARGS Short y, FT_F26Dot6 x1, FT_F26Dot6 x2, PProfile left, PProfile right)
static Bool Line_Up(RAS_ARGS Long x1, Long y1, Long x2, Long y2, Long miny, Long maxy)
static Bool Cubic_To(RAS_ARGS Long cx1, Long cy1, Long cx2, Long cy2, Long x, Long y)
static void Vertical_Sweep_Span(RAS_ARGS Short y, FT_F26Dot6 x1, FT_F26Dot6 x2, PProfile left, PProfile right)
static Bool New_Profile(RAS_ARGS TStates aState, Bool overshoot)
#define IS_BOTTOM_OVERSHOOT(x)
static Bool Bezier_Up(RAS_ARGS Int degree, TSplitter splitter, Long miny, Long maxy)
#define IS_TOP_OVERSHOOT(x)
static void Vertical_Sweep_Drop(RAS_ARGS Short y, FT_F26Dot6 x1, FT_F26Dot6 x2, PProfile left, PProfile right)
static int Render_Single_Pass(RAS_ARGS Bool flipped)
static void Horizontal_Sweep_Step(RAS_ARG)
struct black_TRaster_ black_TRaster
static Bool Insert_Y_Turn(RAS_ARGS Int y)
static Bool Draw_Sweep(RAS_ARG)
static int ft_black_render(FT_Raster raster, const FT_Raster_Params *params)
#define Raster_Err_Overflow
smooth FT_Module_Constructor FT_Module_Destructor FT_Module_Requester FT_GLYPH_FORMAT_OUTLINE
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
GLint GLint GLint GLint GLint x
GLint GLint GLint GLint GLint GLint y
GLdouble GLdouble GLdouble GLdouble top
GLboolean GLboolean GLboolean b
GLenum const GLfloat * params
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
GLboolean GLboolean GLboolean GLboolean a
GLsizei const GLfloat * points
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
struct task_struct * current
static char memory[1024 *256]
_Out_opt_ int _Out_opt_ int * cy
static unsigned __int64 next
Function_Sweep_Span * Proc_Sweep_Drop
Function_Sweep_Init * Proc_Sweep_Init
Function_Sweep_Step * Proc_Sweep_Step
black_TBand band_stack[16]
Function_Sweep_Span * Proc_Sweep_Span
TPoint arcs[3 *MaxBezier+1]
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2