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
280 #define NULL (void*)0
336 #define Flow_Up 0x08U
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
557 #define ras (*worker)
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;
848 Finalize_Profile_Table(
RAS_ARG )
872 top = (
Int)(
p->start +
p->height - 1 );
879 p->offset +=
p->height - 1;
1078 ras.joint = (char)( f2 == 0 );
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;
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;
1539 Split_Conic(
ras.arc );
1542 else if (
y1 == y3 )
1552 if (
ras.state != state_bez )
1565 if ( New_Profile(
RAS_VARS state_bez,
o ) )
1576 if ( Bezier_Down(
RAS_VARS 2, Split_Conic,
ras.minY,
ras.maxY ) )
1580 }
while (
ras.arc >=
ras.arcs );
1633 Long y1,
y2, y3, y4, x4, ymin1, ymax1, ymin2, ymax2;
1638 ras.arc[3].x =
ras.lastX;
1639 ras.arc[3].y =
ras.lastY;
1679 if ( ymin2 < ymin1 || ymax2 > ymax1 )
1682 Split_Cubic(
ras.arc );
1685 else if (
y1 == y4 )
1695 if (
ras.state != state_bez )
1707 if ( New_Profile(
RAS_VARS state_bez,
o ) )
1718 if ( Bezier_Down(
RAS_VARS 3, Split_Cubic,
ras.minY,
ras.maxY ) )
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;
1807 ras.dropOutControl = (
Byte)tags[0] >> 5;
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;
1842 while ( point <
limit )
1867 v_control.
x =
SCALED( point[0].
x );
1868 v_control.
y =
SCALED( point[0].
y );
1871 SWAP_( v_control.
x, v_control.
y );
1874 if ( point <
limit )
1892 if ( Conic_To(
RAS_VARS v_control.
x, v_control.
y,
x,
y ) )
1898 goto Invalid_Outline;
1900 v_middle.
x = ( v_control.
x +
x ) / 2;
1901 v_middle.
y = ( v_control.
y +
y ) / 2;
1903 if ( Conic_To(
RAS_VARS v_control.
x, v_control.
y,
1904 v_middle.
x, v_middle.
y ) )
1913 if ( Conic_To(
RAS_VARS v_control.
x, v_control.
y,
1914 v_start.
x, v_start.
y ) )
1924 if ( point + 1 >
limit ||
1926 goto Invalid_Outline;
1942 if ( point <=
limit )
1963 if ( Line_To(
RAS_VARS v_start.
x, v_start.
y ) )
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;
2056 if ( Finalize_Profile_Table(
RAS_VAR ) )
2107 old = ¤t->
link;
2111 profile->
link = current;
2134 if ( current == profile )
2136 *old = current->
link;
2140 old = ¤t->
link;
2167 current->
X = *current->
offset;
2170 current = current->
link;
2184 if ( current->
X <=
next->X )
2186 old = ¤t->
link;
2196 next->link = current;
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 );
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 );
2438 f1 = (
Short)( e1 & 7 );
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 );
2455 f1 = (
Short)( e1 & 7 );
2457 ras.bOrigin[
ras.traceOfs + c1] |= (char)( 0x80 >> f1 );
2466 Vertical_Sweep_Step(
RAS_ARG )
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 ) );
2685 Horizontal_Sweep_Step(
RAS_ARG )
2701 Short y, y_change, y_height;
2715 Init_Linked( &waiting );
2717 Init_Linked( &draw_left );
2718 Init_Linked( &draw_right );
2739 InsNew( &waiting,
P );
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 )
2786 DelOld( &waiting,
P );
2789 InsNew( &draw_left,
P );
2791 InsNew( &draw_right,
P );
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 )
2887 DelOld( &draw_left,
P );
2895 if (
P->height == 0 )
2896 DelOld( &draw_right,
P );
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;
2983 if ( outline && acbox )
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 )
3056 if ( Convert_Glyph(
RAS_VARS flipped ) )
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;
3085 ras.band_stack[
ras.band_top].y_max = (
Short)( k - 1 );
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" ));
3141 ras.Proc_Sweep_Init = Vertical_Sweep_Init;
3142 ras.Proc_Sweep_Span = Vertical_Sweep_Span;
3143 ras.Proc_Sweep_Drop = Vertical_Sweep_Drop;
3144 ras.Proc_Sweep_Step = Vertical_Sweep_Step;
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" ));
3164 ras.Proc_Sweep_Init = Horizontal_Sweep_Init;
3165 ras.Proc_Sweep_Span = Horizontal_Sweep_Span;
3166 ras.Proc_Sweep_Drop = Horizontal_Sweep_Drop;
3167 ras.Proc_Sweep_Step = Horizontal_Sweep_Step;
3170 ras.band_stack[0].y_min = 0;
3171 ras.band_stack[0].y_max = (
Short)(
ras.target.width - 1 );
3196 ft_black_new(
void*
memory,
3205 ft_black_init( &the_raster );
3234 ft_black_init( raster );
3287 #ifndef FT_STATIC_RASTER
3322 if ( !target_map->width || !target_map->rows )
3325 if ( !target_map->buffer )
3328 ras.outline = *outline;
3329 ras.target = *target_map;
3334 return Render_Glyph(
RAS_VAR );
3341 FT_GLYPH_FORMAT_OUTLINE,
small capitals from c petite p scientific i
[1]
for(n=0;n< outline->n_points;n++)
#define FT_ERROR(varformat)
#define FT_TRACE6(varformat)
#define FT_TRACE1(varformat)
FT_TRACE7(("band [%d..%d]: to be bisected\n", ras.min_ey, ras.max_ey))
#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
void(* TSplitter)(TPoint *base)
union Alignment_ * PAlignment
struct black_TWorker_ * black_PWorker
struct black_TBand_ black_TBand
void Function_Sweep_Step(RAS_ARG)
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)
#define IS_BOTTOM_OVERSHOOT(x)
#define IS_TOP_OVERSHOOT(x)
struct black_TRaster_ black_TRaster
#define Raster_Err_Overflow
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro vuzp8 reg2 vuzp d d ®2 endm macro vzip8 reg2 vzip d d ®2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld endif[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld SRC pixld MASK if DST_R else pixld DST_R endif if
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro vuzp8 reg2 vuzp d d ®2 endm macro vzip8 reg2 vzip d d ®2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld if[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1(dst_w_bpp<=(lowbit *8)) &&((lowbit *8)<(pixblock_size *dst_w_bpp)) .if lowbit< 16 tst DST_R
[3]
GLboolean GLboolean GLboolean b
GLint GLint GLint GLint GLint x
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLuint GLfloat GLfloat GLfloat x1
GLdouble GLdouble GLdouble GLdouble top
GLsizei GLenum GLsizei GLsizei GLuint memory
GLfloat GLfloat GLfloat GLfloat h
GLfixed GLfixed GLint GLint GLfixed points
GLfixed GLfixed GLfixed y2
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const void * bits
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]
virtual HRESULT STDMETHODCALLTYPE Close(void)=0
XmlOutput::xml_output tag(const QString &name)