22 #include FT_INTERNAL_DEBUG_H 27 #define FT_COMPONENT trace_pfr 45 glyph->loader = loader;
46 glyph->path_begun = 0;
59 glyph->y_control =
NULL;
61 glyph->max_xy_control = 0;
63 glyph->num_x_control = 0;
64 glyph->num_y_control = 0;
73 glyph->path_begun = 0;
103 if ( p1->
x == p2->
x && p1->
y == p2->
y )
139 FT_ERROR((
"pfr_glyph_line_to: invalid glyph data\n" ));
175 FT_ERROR((
"pfr_glyph_line_to: invalid glyph data\n" ));
273 x_count =
count & 15;
274 y_count =
count >> 4;
291 count = x_count + y_count;
314 if ( (
i & 7 ) == 0 )
387 args_format = format_low;
392 FT_TRACE6((
"- horizontal line to cx.%d", format_low ));
393 if ( format_low >= x_count )
402 FT_TRACE6((
"- vertical line to cy.%d", format_low ));
403 if ( format_low >= y_count )
426 args_format = format_low;
433 for (
n = 0;
n < args_count;
n++ )
440 switch ( args_format & 3 )
445 if (
idx >= x_count )
460 cur->x =
pos[3].x + delta;
470 switch ( ( args_format >> 2 ) & 3 )
475 if (
idx >= y_count )
490 cur->y =
pos[3].y + delta;
500 if (
n == 0 && args_count == 4 )
552 FT_ERROR((
"pfr_glyph_load_simple: invalid glyph data\n" ));
609 FT_ERROR((
"pfr_glyph_load_compound:" 610 " too many compound glyphs components\n" ));
620 subglyph = glyph->
subs + org_count;
622 for (
i = 0;
i <
count;
i++, subglyph++ )
665 switch ( (
format >> 2 ) & 3 )
716 FT_ERROR((
"pfr_glyph_load_compound: invalid glyph data\n" ));
759 FT_TRACE4((
"compound glyph with %d element%s (offset %lu):\n",
761 count == 1 ?
"" :
"s",
767 FT_Int i, old_points, num_points;
773 subglyph = glyph->
subs + old_count +
n;
774 old_points =
base->n_points;
783 subglyph = glyph->
subs + old_count +
n;
784 num_points =
base->n_points - old_points;
787 if ( subglyph->
x_scale != 0x10000L || subglyph->
y_scale != 0x10000L )
792 for (
i = 0;
i < num_points;
i++,
vec++ )
805 for (
i = 0;
i < num_points;
i++,
vec++ )
815 FT_TRACE4((
"end compound glyph with %d element%s\n",
817 count == 1 ?
"" :
"s" ));
#define PFR_GLYPH_1BYTE_XYCOUNT
#define FT_CURVE_TAG_CUBIC
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint x
static char memory[1024 *256]
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static FT_Error pfr_glyph_curve_to(PFR_Glyph glyph, FT_Vector *control1, FT_Vector *control2, FT_Vector *to)
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
#define FT_ERROR(varformat)
#define FT_PAD_CEIL(x, n)
#define FT_TRACE4(varformat)
static FT_Error pfr_glyph_load_simple(PFR_Glyph glyph, FT_Byte *p, FT_Byte *limit)
static FT_Error pfr_glyph_line_to(PFR_Glyph glyph, FT_Vector *to)
pfr_glyph_done(PFR_Glyph glyph)
#define PFR_SUBGLYPH_XSCALE
FT_GlyphLoader_Add(FT_GlyphLoader loader)
pfr_extra_items_skip(FT_Byte **pp, FT_Byte *limit)
static FT_Error pfr_glyph_load_rec(PFR_Glyph glyph, FT_Stream stream, FT_ULong gps_offset, FT_ULong offset, FT_ULong size)
static FT_Error pfr_glyph_move_to(PFR_Glyph glyph, FT_Vector *to)
#define FT_TRACE7(varformat)
#define FT_RENEW_ARRAY(ptr, curcnt, newcnt)
pfr_glyph_init(PFR_Glyph glyph, FT_GlyphLoader loader)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
#define PFR_GLYPH_COMPOUND_EXTRA_ITEMS
#define FT_STREAM_SEEK(position)
FT_MulFix(FT_Long a, FT_Long b)
static void pfr_glyph_start(PFR_Glyph glyph)
#define FT_TRACE6(varformat)
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
#define PFR_GLYPH_SINGLE_EXTRA_ITEMS
pfr_glyph_load(PFR_Glyph glyph, FT_Stream stream, FT_ULong gps_offset, FT_ULong offset, FT_ULong size)
FT_GlyphLoader_Rewind(FT_GlyphLoader loader)
#define PFR_SUBGLYPH_2BYTE_SIZE
#define PFR_SUBGLYPH_YSCALE
#define FT_FRAME_ENTER(size)
#define PFR_SUBGLYPH_3BYTE_OFFSET
static FT_Error pfr_glyph_load_compound(PFR_Glyph glyph, FT_Byte *p, FT_Byte *limit)
#define PFR_NEXT_USHORT(p)
#define PFR_NEXT_ULONG(p)
static void pfr_glyph_close_contour(PFR_Glyph glyph)
#define FT_GLYPHLOADER_CHECK_POINTS(_loader, _points, _contours)
static void pfr_glyph_end(PFR_Glyph glyph)
#define PFR_GLYPH_IS_COMPOUND
#define PFR_NEXT_SHORT(p)