54#define FT_RENDER_POOL_SIZE 16384L
56#define FT_CONFIG_STANDARD_LIBRARY_H <stdlib.h>
171#define FT_COMPONENT raster
177#define FT_ERR_XCAT( x, y ) x ## y
178#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
184#define FT_UNUSED( x ) (x) = (x)
189#define FT_ERROR( x ) do { } while ( 0 )
193#define FT_TRACE( x ) do { } while ( 0 )
194#define FT_TRACE1( x ) do { } while ( 0 )
195#define FT_TRACE6( x ) do { } while ( 0 )
196#define FT_TRACE7( x ) do { } while ( 0 )
200#define FT_THROW( e ) FT_ERR_CAT( Raster_Err_, e )
203#define Raster_Err_None 0
204#define Raster_Err_Not_Ini -1
205#define Raster_Err_Overflow -2
206#define Raster_Err_Neg_Height -3
207#define Raster_Err_Invalid -4
208#define Raster_Err_Unsupported -5
210#define ft_memset memset
212#define FT_DEFINE_RASTER_FUNCS( class_, glyph_format_, raster_new_, \
213 raster_reset_, raster_set_mode_, \
214 raster_render_, raster_done_ ) \
215 const FT_Raster_Funcs class_ = \
233#define Raster_Err_None FT_Err_Ok
234#define Raster_Err_Not_Ini Raster_Err_Raster_Uninitialized
235#define Raster_Err_Overflow Raster_Err_Raster_Overflow
236#define Raster_Err_Neg_Height Raster_Err_Raster_Negative_Height
237#define Raster_Err_Invalid Raster_Err_Invalid_Outline
238#define Raster_Err_Unsupported Raster_Err_Cannot_Render_Glyph
245#define FT_MEM_SET( d, s, c ) ft_memset( d, s, c )
249#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count )
253#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) )
259#define FMulDiv( a, b, c ) ( (a) * (b) / (c) )
264#define SMulDiv FT_MulDiv
265#define SMulDiv_No_Round FT_MulDiv_No_Round
337#define Overshoot_Top 0x10U
338#define Overshoot_Bottom 0x20U
388#define AlignProfileSize \
389 ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( Long ) )
397#ifdef FT_STATIC_RASTER
406#define FT_UNUSED_RASTER do { } while ( 0 )
412#define RAS_ARGS black_PWorker worker,
413#define RAS_ARG black_PWorker worker
415#define RAS_VARS worker,
416#define RAS_VAR worker
418#define FT_UNUSED_RASTER FT_UNUSED( worker )
449#define FLOOR( x ) ( (x) & -ras.precision )
450#define CEILING( x ) ( ( (x) + ras.precision - 1 ) & -ras.precision )
451#define TRUNC( x ) ( (Long)(x) >> ras.precision_bits )
452#define FRAC( x ) ( (x) & ( ras.precision - 1 ) )
455#define SCALED( x ) ( (x) * ras.precision_scale - ras.precision_half )
457#define IS_BOTTOM_OVERSHOOT( x ) \
458 (Bool)( CEILING( x ) - x >= ras.precision_half )
459#define IS_TOP_OVERSHOOT( x ) \
460 (Bool)( x - FLOOR( x ) >= ras.precision_half )
465#define SMART( p, q ) FLOOR( ( (p) + (q) + ras.precision * 63 / 64 ) >> 1 )
467#if FT_RENDER_POOL_SIZE > 2048
468#define FT_MAX_BLACK_POOL ( FT_RENDER_POOL_SIZE / sizeof ( Long ) )
470#define FT_MAX_BLACK_POOL ( 2048 / sizeof ( Long ) )
551#ifdef FT_STATIC_RASTER
611 ras.precision_bits = 12;
612 ras.precision_step = 256;
613 ras.precision_jitter = 30;
617 ras.precision_bits = 6;
618 ras.precision_step = 32;
619 ras.precision_jitter = 2;
622 FT_TRACE6((
"Set_High_Precision(%s)\n",
High ?
"true" :
"false" ));
624 ras.precision = 1 <<
ras.precision_bits;
625 ras.precision_half =
ras.precision >> 1;
657 ras.fProfile =
ras.cProfile;
661 if (
ras.top >=
ras.maxBuff )
667 ras.cProfile->start = 0;
668 ras.cProfile->height = 0;
669 ras.cProfile->offset =
ras.top;
672 ras.cProfile->flags =
ras.dropOutControl;
681 FT_TRACE6((
" new ascending profile = %p\n", (
void *)
ras.cProfile ));
687 FT_TRACE6((
" new descending profile = %p\n", (
void *)
ras.cProfile ));
691 FT_ERROR((
"New_Profile: invalid profile direction\n" ));
697 ras.gProfile =
ras.cProfile;
733 FT_ERROR((
"End_Profile: negative height encountered\n" ));
743 FT_TRACE6((
" ending profile %p, start = %ld, height = %ld\n",
744 (
void *)
ras.cProfile,
ras.cProfile->start,
h ));
746 ras.cProfile->height =
h;
755 oldProfile =
ras.cProfile;
760 ras.cProfile->height = 0;
761 ras.cProfile->offset =
ras.top;
763 oldProfile->
next =
ras.cProfile;
767 if (
ras.top >=
ras.maxBuff )
769 FT_TRACE1((
"overflow in End_Profile\n" ));
802 n =
ras.numTurns - 1;
803 y_turns =
ras.sizeBuff -
ras.numTurns;
806 while (
n >= 0 &&
y < y_turns[
n] )
810 if (
n >= 0 &&
y > y_turns[
n] )
818 }
while ( --
n >= 0 );
823 if (
ras.maxBuff <=
ras.top )
829 ras.sizeBuff[-
ras.numTurns] =
y;
872 top = (
Int)(
p->start +
p->height - 1 );
879 p->offset +=
p->height - 1;
922 base[2].x = (
a +
b ) >> 2;
929 base[2].y = (
a +
b ) >> 2;
967 base[3].x = (
a +
c ) >> 3;
979 base[3].y = (
a +
c ) >> 3;
1032 if ( Dy <= 0 || y2 < miny || y1 >
maxy )
1082 ras.cProfile->start = e1;
1096 Rx = (
ras.precision * Dx ) % Dy;
1102 Rx = (
ras.precision * -Dx ) % Dy;
1174 if ( fresh && !
ras.fresh )
1175 ras.cProfile->start = -
ras.cProfile->start;
1230 if ( y2 < miny || y1 >
maxy )
1256 *
top++ = arc[degree].
x;
1289 if (
y2 -
y1 >=
ras.precision_step )
1313 }
while ( arc >= start_arc &&
e <= e2 );
1357 arc[0].
y = -arc[0].
y;
1358 arc[1].
y = -arc[1].
y;
1359 arc[2].
y = -arc[2].
y;
1361 arc[3].
y = -arc[3].
y;
1367 if ( fresh && !
ras.fresh )
1368 ras.cProfile->start = -
ras.cProfile->start;
1370 arc[0].
y = -arc[0].
y;
1402 switch (
ras.state )
1405 if (
y >
ras.lastY )
1413 if (
y <
ras.lastY )
1421 if (
y <
ras.lastY )
1431 if (
y >
ras.lastY )
1446 switch (
ras.state )
1509 ras.arc[2].x =
ras.lastX;
1510 ras.arc[2].y =
ras.lastY;
1536 if ( y2 < ymin || y2 > ymax )
1542 else if (
y1 ==
y3 )
1552 if (
ras.state != state_bez )
1580 }
while (
ras.arc >=
ras.arcs );
1638 ras.arc[3].x =
ras.lastX;
1639 ras.arc[3].y =
ras.lastY;
1679 if ( ymin2 < ymin1 || ymax2 > ymax1 )
1685 else if (
y1 ==
y4 )
1695 if (
ras.state != state_bez )
1722 }
while (
ras.arc >=
ras.arcs );
1735#define SWAP_( x, y ) do \
1796 SWAP_( v_start.
x, v_start.
y );
1800 v_control = v_start;
1813 goto Invalid_Outline;
1830 v_start.
x = ( v_start.
x + v_last.
x ) / 2;
1831 v_start.
y = ( v_start.
y + v_last.
y ) / 2;
1839 ras.lastX = v_start.
x;
1840 ras.lastY = v_start.
y;
1871 SWAP_( v_control.
x, v_control.
y );
1898 goto Invalid_Outline;
1900 v_middle.
x = ( v_control.
x +
x ) / 2;
1901 v_middle.
y = ( v_control.
y +
y ) / 2;
1904 v_middle.
x, v_middle.
y ) )
1914 v_start.
x, v_start.
y ) )
1926 goto Invalid_Outline;
2010 ras.cProfile->offset =
ras.top;
2015 for (
i = 0;
i <
ras.outline.n_contours;
i++ )
2035 if (
ras.gProfile &&
2042 lastProfile =
ras.cProfile;
2043 if (
ras.top !=
ras.cProfile->offset &&
2053 lastProfile->
next =
ras.gProfile;
2105 if ( x < current->
X )
2220 Long pitch =
ras.target.pitch;
2226 ras.traceOfs = -*
min * pitch;
2240 Int dropOutControl =
left->flags & 7;
2251 x1 / (
double)
ras.precision,
2252 x2 / (
double)
ras.precision ));
2261 if ( dropOutControl != 2 &&
2262 x2 -
x1 -
ras.precision <=
ras.precision_jitter &&
2263 e1 !=
x1 && e2 !=
x2 )
2269 if ( e2 >= 0 && e1 <
ras.bWidth )
2277 if ( e2 >=
ras.bWidth )
2278 e2 =
ras.bWidth - 1;
2280 FT_TRACE7((
" -> x=[%ld;%ld]", e1, e2 ));
2282 c1 = (
Short)( e1 >> 3 );
2283 c2 = (
Short)( e2 >> 3 );
2285 f1 = (
Byte) ( 0xFF >> ( e1 & 7 ) );
2286 f2 = (
Byte) ~( 0x7F >> ( e2 & 7 ) );
2324 x1 / (
double)
ras.precision,
2325 x2 / (
double)
ras.precision ));
2356 Int dropOutControl =
left->flags & 7;
2359 if ( e1 == e2 +
ras.precision )
2361 switch ( dropOutControl )
2402 left->height <= 0 &&
2404 x2 -
x1 >=
ras.precision_half ) )
2411 x2 -
x1 >=
ras.precision_half ) )
2414 if ( dropOutControl == 1 )
2429 else if (
TRUNC( pxl ) >=
ras.bWidth )
2433 e1 = ( pxl == e1 ) ? e2 : e1;
2437 c1 = (
Short)( e1 >> 3 );
2440 if ( e1 >= 0 && e1 <
ras.bWidth &&
2441 ras.bOrigin[
ras.traceOfs + c1] & ( 0x80 >>
f1 ) )
2450 if ( e1 >= 0 && e1 <
ras.bWidth )
2454 c1 = (
Short)( e1 >> 3 );
2457 ras.bOrigin[
ras.traceOfs + c1] |= (
char)( 0x80 >>
f1 );
2468 ras.traceOfs +=
ras.traceIncr;
2507 x1 / (
double)
ras.precision,
2508 x2 / (
double)
ras.precision ));
2522 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2528 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2529 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2532 :
" -> y=%ld edge", e1 ));
2544 if ( e2 >= 0 && (
ULong)e2 <
ras.target.rows )
2550 bits =
ras.bOrigin + (
y >> 3 ) - e2 *
ras.target.pitch;
2551 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2554 :
" -> y=%ld edge", e2 ));
2578 x1 / (
double)
ras.precision,
2579 x2 / (
double)
ras.precision ));
2599 Int dropOutControl =
left->flags & 7;
2602 if ( e1 == e2 +
ras.precision )
2604 switch ( dropOutControl )
2620 left->height <= 0 &&
2622 x2 -
x1 >=
ras.precision_half ) )
2629 x2 -
x1 >=
ras.precision_half ) )
2632 if ( dropOutControl == 1 )
2651 e1 = ( pxl == e1 ) ? e2 : e1;
2655 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2656 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2669 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2673 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2674 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2701 Short y, y_change, y_height;
2745 if (
ras.numTurns == 0 )
2761 P->countL =
P->start - min_Y;
2770 if (
ras.numTurns > 0 &&
2771 ras.sizeBuff[-
ras.numTurns] == min_Y )
2774 while (
ras.numTurns > 0 )
2783 P->countL -= y_height;
2784 if (
P->countL == 0 )
2800 Sort( &draw_right );
2803 y_height = (
Short)( y_change -
y );
2805 while (
y < y_change )
2812 P_Right = draw_right;
2814 while ( P_Left && P_Right )
2829 if (
x2 -
x1 <=
ras.precision &&
2830 e1 !=
x1 && e2 !=
x2 )
2832 if ( e1 > e2 || e2 == e1 +
ras.precision )
2834 Int dropOutControl = P_Left->
flags & 7;
2837 if ( dropOutControl != 2 )
2857 P_Left = P_Left->
link;
2858 P_Right = P_Right->
link;
2876 Sort( &draw_right );
2886 if (
P->height == 0 )
2895 if (
P->height == 0 )
2902 while (
y <= max_Y )
2913 P_Right = draw_right;
2915 while ( P_Left && P_Right )
2930 P_Left = P_Left->
link;
2931 P_Right = P_Right->
link;
2980 Long xMin, yMin, xMax, yMax;
2998 xMin = xMax =
vec->
x;
2999 yMin = yMax =
vec->
y;
3008 if (
x < xMin ) xMin =
x;
3009 if (
x > xMax ) xMax =
x;
3012 if (
y < yMin ) yMin =
y;
3013 if (
y > yMax ) yMax =
y;
3047 while (
ras.band_top >= 0 )
3069 i =
ras.band_stack[
ras.band_top].y_min;
3070 j =
ras.band_stack[
ras.band_top].y_max;
3074 if (
ras.band_top >= 7 ||
k <
i )
3082 ras.band_stack[
ras.band_top + 1].y_min =
k;
3083 ras.band_stack[
ras.band_top + 1].y_max =
j;
3123 ras.dropOutControl = 2;
3127 ras.dropOutControl = 4;
3129 ras.dropOutControl = 0;
3132 ras.dropOutControl += 1;
3135 ras.second_pass = (
Bool)( !(
ras.outline.flags &
3139 FT_TRACE7((
"Vertical pass (ftraster)\n" ));
3147 ras.band_stack[0].y_min = 0;
3148 ras.band_stack[0].y_max = (
Short)(
ras.target.rows - 1 );
3153 if (
ras.target.pitch > 0 )
3154 ras.bOrigin += (
Long)(
ras.target.rows - 1 ) *
ras.target.pitch;
3160 if (
ras.second_pass &&
ras.dropOutControl != 2 )
3162 FT_TRACE7((
"Horizontal pass (ftraster)\n" ));
3170 ras.band_stack[0].y_min = 0;
3171 ras.band_stack[0].y_max = (
Short)(
ras.target.width - 1 );
3297#ifndef FT_STATIC_RASTER
3332 if ( !target_map->width || !target_map->rows )
3335 if ( !target_map->buffer )
3339 ras.target = *target_map;
3364 FT_GLYPH_FORMAT_OUTLINE,
#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_)
FT_Outline_Get_CBox(const FT_Outline *outline, FT_BBox *acbox)
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
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]
static float int float int float int x3
static float int float int float int float int x4
static float int float int float int float y3
static float int float int float int float int float y4
_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 x1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG y1
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG _In_ LONG y2
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2