54#define FT_RENDER_POOL_SIZE 16384L
56#define FT_CONFIG_STANDARD_LIBRARY_H <stdlib.h>
67#include FT_INTERNAL_CALC_H
172#define FT_COMPONENT raster
178#define FT_ERR_XCAT( x, y ) x ## y
179#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
185#define FT_UNUSED( x ) (x) = (x)
190#define FT_ERROR( x ) do { } while ( 0 )
194#define FT_TRACE( x ) do { } while ( 0 )
195#define FT_TRACE1( x ) do { } while ( 0 )
196#define FT_TRACE6( x ) do { } while ( 0 )
197#define FT_TRACE7( x ) do { } while ( 0 )
201#define FT_THROW( e ) FT_ERR_CAT( Raster_Err_, e )
204#define Raster_Err_None 0
205#define Raster_Err_Not_Ini -1
206#define Raster_Err_Overflow -2
207#define Raster_Err_Neg_Height -3
208#define Raster_Err_Invalid -4
209#define Raster_Err_Unsupported -5
211#define ft_memset memset
213#define FT_DEFINE_RASTER_FUNCS( class_, glyph_format_, raster_new_, \
214 raster_reset_, raster_set_mode_, \
215 raster_render_, raster_done_ ) \
216 const FT_Raster_Funcs class_ = \
229#include FT_INTERNAL_OBJECTS_H
230#include FT_INTERNAL_DEBUG_H
234#define Raster_Err_None FT_Err_Ok
235#define Raster_Err_Not_Ini Raster_Err_Raster_Uninitialized
236#define Raster_Err_Overflow Raster_Err_Raster_Overflow
237#define Raster_Err_Neg_Height Raster_Err_Raster_Negative_Height
238#define Raster_Err_Invalid Raster_Err_Invalid_Outline
239#define Raster_Err_Unsupported Raster_Err_Cannot_Render_Glyph
246#define FT_MEM_SET( d, s, c ) ft_memset( d, s, c )
250#define FT_MEM_ZERO( dest, count ) FT_MEM_SET( dest, 0, count )
254#define FT_ZERO( p ) FT_MEM_ZERO( p, sizeof ( *(p) ) )
260#define FMulDiv( a, b, c ) ( (a) * (b) / (c) )
265#define SMulDiv FT_MulDiv
266#define SMulDiv_No_Round FT_MulDiv_No_Round
338#define Overshoot_Top 0x10U
339#define Overshoot_Bottom 0x20U
389#define AlignProfileSize \
390 ( ( sizeof ( TProfile ) + sizeof ( Alignment ) - 1 ) / sizeof ( Long ) )
398#ifdef FT_STATIC_RASTER
407#define FT_UNUSED_RASTER do { } while ( 0 )
413#define RAS_ARGS black_PWorker worker,
414#define RAS_ARG black_PWorker worker
416#define RAS_VARS worker,
417#define RAS_VAR worker
419#define FT_UNUSED_RASTER FT_UNUSED( worker )
450#define FLOOR( x ) ( (x) & -ras.precision )
451#define CEILING( x ) ( ( (x) + ras.precision - 1 ) & -ras.precision )
452#define TRUNC( x ) ( (Long)(x) >> ras.precision_bits )
453#define FRAC( x ) ( (x) & ( ras.precision - 1 ) )
456#define SCALED( x ) ( (x) * ras.precision_scale - ras.precision_half )
458#define IS_BOTTOM_OVERSHOOT( x ) \
459 (Bool)( CEILING( x ) - x >= ras.precision_half )
460#define IS_TOP_OVERSHOOT( x ) \
461 (Bool)( x - FLOOR( x ) >= ras.precision_half )
463#if FT_RENDER_POOL_SIZE > 2048
464#define FT_MAX_BLACK_POOL ( FT_RENDER_POOL_SIZE / sizeof ( Long ) )
466#define FT_MAX_BLACK_POOL ( 2048 / sizeof ( Long ) )
547#ifdef FT_STATIC_RASTER
608 ras.precision_bits = 12;
609 ras.precision_step = 256;
610 ras.precision_jitter = 30;
614 ras.precision_bits = 6;
615 ras.precision_step = 32;
616 ras.precision_jitter = 2;
619 FT_TRACE6((
"Set_High_Precision(%s)\n",
High ?
"true" :
"false" ));
621 ras.precision = 1 <<
ras.precision_bits;
622 ras.precision_half =
ras.precision >> 1;
654 ras.fProfile =
ras.cProfile;
658 if (
ras.top >=
ras.maxBuff )
664 ras.cProfile->flags = 0;
665 ras.cProfile->start = 0;
666 ras.cProfile->height = 0;
667 ras.cProfile->offset =
ras.top;
670 ras.cProfile->flags =
ras.dropOutControl;
679 FT_TRACE6((
" new ascending profile = %p\n",
ras.cProfile ));
685 FT_TRACE6((
" new descending profile = %p\n",
ras.cProfile ));
689 FT_ERROR((
"New_Profile: invalid profile direction\n" ));
695 ras.gProfile =
ras.cProfile;
731 FT_ERROR((
"End_Profile: negative height encountered\n" ));
741 FT_TRACE6((
" ending profile %p, start = %ld, height = %ld\n",
742 ras.cProfile,
ras.cProfile->start,
h ));
744 ras.cProfile->height =
h;
753 oldProfile =
ras.cProfile;
758 ras.cProfile->height = 0;
759 ras.cProfile->offset =
ras.top;
761 oldProfile->
next =
ras.cProfile;
765 if (
ras.top >=
ras.maxBuff )
767 FT_TRACE1((
"overflow in End_Profile\n" ));
800 n =
ras.numTurns - 1;
801 y_turns =
ras.sizeBuff -
ras.numTurns;
804 while (
n >= 0 &&
y < y_turns[
n] )
808 if (
n >= 0 &&
y > y_turns[
n] )
816 }
while ( --
n >= 0 );
821 if (
ras.maxBuff <=
ras.top )
827 ras.sizeBuff[-
ras.numTurns] =
y;
870 top = (
Int)(
p->start +
p->height - 1 );
877 p->offset +=
p->height - 1;
920 base[2].x = (
a +
b ) / 2;
926 base[2].y = (
a +
b ) / 2;
958 c = (
c +
d + 1 ) >> 1;
959 base[2].x =
a = (
a +
c + 1 ) >> 1;
960 base[4].x =
b = (
b +
c + 1 ) >> 1;
961 base[3].x = (
a +
b + 1 ) >> 1;
968 c = (
c +
d + 1 ) >> 1;
969 base[2].y =
a = (
a +
c + 1 ) >> 1;
970 base[4].y =
b = (
b +
c + 1 ) >> 1;
971 base[3].y = (
a +
b + 1 ) >> 1;
1024 if ( Dy <= 0 || y2 < miny || y1 >
maxy )
1074 ras.cProfile->start = e1;
1088 Rx = (
ras.precision * Dx ) % Dy;
1094 Rx = (
ras.precision * -Dx ) % Dy;
1166 if ( fresh && !
ras.fresh )
1167 ras.cProfile->start = -
ras.cProfile->start;
1222 if ( y2 < miny || y1 >
maxy )
1248 *
top++ = arc[degree].
x;
1281 if (
y2 -
y1 >=
ras.precision_step )
1305 }
while ( arc >= start_arc &&
e <= e2 );
1349 arc[0].
y = -arc[0].
y;
1350 arc[1].
y = -arc[1].
y;
1351 arc[2].
y = -arc[2].
y;
1353 arc[3].
y = -arc[3].
y;
1359 if ( fresh && !
ras.fresh )
1360 ras.cProfile->start = -
ras.cProfile->start;
1362 arc[0].
y = -arc[0].
y;
1394 switch (
ras.state )
1397 if (
y >
ras.lastY )
1405 if (
y <
ras.lastY )
1413 if (
y <
ras.lastY )
1423 if (
y >
ras.lastY )
1438 switch (
ras.state )
1501 ras.arc[2].x =
ras.lastX;
1502 ras.arc[2].y =
ras.lastY;
1528 if ( y2 < ymin || y2 > ymax )
1534 else if (
y1 == y3 )
1544 if (
ras.state != state_bez )
1572 }
while (
ras.arc >=
ras.arcs );
1625 Long y1,
y2, y3, y4, x4, ymin1, ymax1, ymin2, ymax2;
1630 ras.arc[3].x =
ras.lastX;
1631 ras.arc[3].y =
ras.lastY;
1671 if ( ymin2 < ymin1 || ymax2 > ymax1 )
1677 else if (
y1 == y4 )
1687 if (
ras.state != state_bez )
1714 }
while (
ras.arc >=
ras.arcs );
1727#define SWAP_( x, y ) do \
1788 SWAP_( v_start.
x, v_start.
y );
1792 v_control = v_start;
1805 goto Invalid_Outline;
1822 v_start.
x = ( v_start.
x + v_last.
x ) / 2;
1823 v_start.
y = ( v_start.
y + v_last.
y ) / 2;
1831 ras.lastX = v_start.
x;
1832 ras.lastY = v_start.
y;
1863 SWAP_( v_control.
x, v_control.
y );
1890 goto Invalid_Outline;
1892 v_middle.
x = ( v_control.
x +
x ) / 2;
1893 v_middle.
y = ( v_control.
y +
y ) / 2;
1896 v_middle.
x, v_middle.
y ) )
1906 v_start.
x, v_start.
y ) )
1918 goto Invalid_Outline;
2002 ras.cProfile->offset =
ras.top;
2007 for (
i = 0;
i <
ras.outline.n_contours;
i++ )
2027 if (
ras.gProfile &&
2034 lastProfile =
ras.cProfile;
2035 if (
ras.top !=
ras.cProfile->offset &&
2045 lastProfile->
next =
ras.gProfile;
2097 if ( x < current->
X )
2212 Long pitch =
ras.target.pitch;
2218 ras.traceOfs = -*
min * pitch;
2232 Int dropOutControl =
left->flags & 7;
2241 FT_TRACE7((
" y=%d x=[%.12f;%.12f], drop-out=%d",
2243 x1 / (
double)
ras.precision,
2244 x2 / (
double)
ras.precision,
2254 if ( dropOutControl != 2 &&
2255 x2 -
x1 -
ras.precision <=
ras.precision_jitter &&
2256 e1 !=
x1 && e2 !=
x2 )
2262 if ( e2 >= 0 && e1 <
ras.bWidth )
2270 if ( e2 >=
ras.bWidth )
2271 e2 =
ras.bWidth - 1;
2275 c1 = (
Short)( e1 >> 3 );
2276 c2 = (
Short)( e2 >> 3 );
2278 f1 = (
Byte) ( 0xFF >> ( e1 & 7 ) );
2279 f2 = (
Byte) ~( 0x7F >> ( e2 & 7 ) );
2317 x1 / (
double)
ras.precision,
2318 x2 / (
double)
ras.precision ));
2349 Int dropOutControl =
left->flags & 7;
2352 FT_TRACE7((
", drop-out=%d", dropOutControl ));
2354 if ( e1 == e2 +
ras.precision )
2356 switch ( dropOutControl )
2363 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2397 left->height <= 0 &&
2399 x2 -
x1 >=
ras.precision_half ) )
2406 x2 -
x1 >=
ras.precision_half ) )
2409 if ( dropOutControl == 1 )
2412 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2424 else if (
TRUNC( pxl ) >=
ras.bWidth )
2428 e1 = ( pxl == e1 ) ? e2 : e1;
2432 c1 = (
Short)( e1 >> 3 );
2435 if ( e1 >= 0 && e1 <
ras.bWidth &&
2436 ras.bOrigin[
ras.traceOfs + c1] & ( 0x80 >>
f1 ) )
2445 if ( e1 >= 0 && e1 <
ras.bWidth )
2447 FT_TRACE7((
" -> x=%d (drop-out)", e1 ));
2449 c1 = (
Short)( e1 >> 3 );
2452 ras.bOrigin[
ras.traceOfs + c1] |= (
char)( 0x80 >>
f1 );
2463 ras.traceOfs +=
ras.traceIncr;
2498 if (
x2 -
x1 <
ras.precision )
2505 x1 / (
double)
ras.precision,
2506 x2 / (
double)
ras.precision ));
2515 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2521 FT_TRACE7((
" -> y=%d (drop-out)", e1 ));
2523 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2524 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2549 x1 / (
double)
ras.precision,
2550 x2 / (
double)
ras.precision ));
2570 Int dropOutControl =
left->flags & 7;
2573 FT_TRACE7((
", dropout=%d", dropOutControl ));
2575 if ( e1 == e2 +
ras.precision )
2577 switch ( dropOutControl )
2584 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2593 left->height <= 0 &&
2595 x2 -
x1 >=
ras.precision_half ) )
2602 x2 -
x1 >=
ras.precision_half ) )
2605 if ( dropOutControl == 1 )
2608 pxl =
FLOOR( (
x1 +
x2 - 1 ) / 2 +
ras.precision_half );
2624 e1 = ( pxl == e1 ) ? e2 : e1;
2628 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2629 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2642 if ( e1 >= 0 && (
ULong)e1 <
ras.target.rows )
2644 FT_TRACE7((
" -> y=%d (drop-out)", e1 ));
2646 bits =
ras.bOrigin + (
y >> 3 ) - e1 *
ras.target.pitch;
2647 f1 = (
Byte)( 0x80 >> (
y & 7 ) );
2674 Short y, y_change, y_height;
2718 if (
ras.numTurns == 0 )
2734 P->countL =
P->start - min_Y;
2743 if (
ras.numTurns > 0 &&
2744 ras.sizeBuff[-
ras.numTurns] == min_Y )
2747 while (
ras.numTurns > 0 )
2756 P->countL -= y_height;
2757 if (
P->countL == 0 )
2773 Sort( &draw_right );
2776 y_height = (
Short)( y_change -
y );
2778 while (
y < y_change )
2785 P_Right = draw_right;
2802 if (
x2 -
x1 <=
ras.precision &&
2803 e1 !=
x1 && e2 !=
x2 )
2805 if ( e1 > e2 || e2 == e1 +
ras.precision )
2807 Int dropOutControl = P_Left->
flags & 7;
2810 if ( dropOutControl != 2 )
2830 P_Left = P_Left->
link;
2831 P_Right = P_Right->
link;
2849 Sort( &draw_right );
2859 if (
P->height == 0 )
2868 if (
P->height == 0 )
2875 while (
y <= max_Y )
2886 P_Right = draw_right;
2903 P_Left = P_Left->
link;
2904 P_Right = P_Right->
link;
2953 Long xMin, yMin, xMax, yMax;
2971 xMin = xMax =
vec->
x;
2972 yMin = yMax =
vec->
y;
2981 if (
x < xMin ) xMin =
x;
2982 if (
x > xMax ) xMax =
x;
2985 if (
y < yMin ) yMin =
y;
2986 if (
y > yMax ) yMax =
y;
3020 while (
ras.band_top >= 0 )
3042 i =
ras.band_stack[
ras.band_top].y_min;
3043 j =
ras.band_stack[
ras.band_top].y_max;
3047 if (
ras.band_top >= 7 ||
k <
i )
3055 ras.band_stack[
ras.band_top + 1].y_min =
k;
3056 ras.band_stack[
ras.band_top + 1].y_max =
j;
3096 ras.dropOutControl = 2;
3100 ras.dropOutControl = 4;
3102 ras.dropOutControl = 0;
3105 ras.dropOutControl += 1;
3108 ras.second_pass = (
Bool)( !(
ras.outline.flags &
3112 FT_TRACE7((
"Vertical pass (ftraster)\n" ));
3120 ras.band_stack[0].y_min = 0;
3121 ras.band_stack[0].y_max = (
Short)(
ras.target.rows - 1 );
3126 if (
ras.target.pitch > 0 )
3127 ras.bOrigin += (
Long)(
ras.target.rows - 1 ) *
ras.target.pitch;
3133 if (
ras.second_pass &&
ras.dropOutControl != 2 )
3135 FT_TRACE7((
"Horizontal pass (ftraster)\n" ));
3143 ras.band_stack[0].y_min = 0;
3144 ras.band_stack[0].y_max = (
Short)(
ras.target.width - 1 );
3303 if ( !target_map->width || !target_map->rows )
3306 if ( !target_map->buffer )
3310 ras.target = *target_map;
#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
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