44 #define FT_UPDATE_BBOX( p, bbox ) \
46 if ( p->x < bbox.xMin ) \
48 if ( p->x > bbox.xMax ) \
50 if ( p->y < bbox.yMin ) \
52 if ( p->y > bbox.yMax ) \
56 #define CHECK_X( p, bbox ) \
57 ( p->x < bbox.xMin || p->x > bbox.xMax )
59 #define CHECK_Y( p, bbox ) \
60 ( p->y < bbox.yMin || p->y > bbox.yMax )
217 BBox_Conic_Check( user->
last.
x,
224 BBox_Conic_Check( user->
last.
y,
311 while ( q2 > 0 || q3 > 0 )
314 if ( q1 + q2 > q3 + q4 )
321 q4 = ( q4 + q3 ) >> 3;
332 q1 = ( q1 + q2 ) >> 3;
338 if ( q1 == q2 && q1 >= q3 )
343 if ( q3 == q4 && q2 <= q4 )
372 if (
p2 > *max || p3 > *max )
373 *max += cubic_peak(
p1 - *max,
p2 - *max, p3 - *max, p4 - *max );
376 if (
p2 < *min || p3 < *min )
377 *min -= cubic_peak( *min -
p1, *min -
p2, *min - p3, *min - p4 );
425 BBox_Cubic_Check( user->
last.
x,
434 BBox_Cubic_Check( user->
last.
y,
465 FT_BBox cbox = { 0x7FFFFFFFL, 0x7FFFFFFFL,
466 -0x7FFFFFFFL, -0x7FFFFFFFL };
468 -0x7FFFFFFFL, -0x7FFFFFFFL };
474 return FT_THROW( Invalid_Argument );
480 if ( outline->n_points == 0 || outline->n_contours <= 0 )
492 vec = outline->points;
494 for (
n = 0;
n < outline->n_points;
n++ )
FT_MulDiv(FT_Long a, FT_Long b, FT_Long c)
#define FT_UPDATE_BBOX(p, bbox)
struct TBBox_Rec_ TBBox_Rec
FT_DEFINE_OUTLINE_FUNCS(bbox_interface,(FT_Outline_MoveTo_Func) BBox_Move_To,(FT_Outline_LineTo_Func) BBox_Line_To,(FT_Outline_ConicTo_Func) BBox_Conic_To,(FT_Outline_CubicTo_Func) BBox_Cubic_To, 0, 0) FT_Outline_Get_BBox(FT_Outline *outline
FT_BEGIN_HEADER FT_Outline_Get_BBox(FT_Outline *outline, FT_BBox *abbox)
#define FT_Outline_CubicTo_Func
#define FT_Outline_LineTo_Func
#define FT_CURVE_TAG(flag)
#define FT_Outline_ConicTo_Func
#define FT_Outline_MoveTo_Func
FT_BEGIN_HEADER typedef signed long FT_Pos
FT_BEGIN_HEADER FT_Outline_Decompose(FT_Outline *outline, const FT_Outline_Funcs *func_interface, void *user)
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLfixed GLfixed GLfixed y2