283 face_index =
FT_ABS( face_instance_index ) & 0xFFFF;
307 FT_ULong res_offset = mz_header.lfanew +
330 if ( size_shift > 16 )
332 FT_TRACE2((
"invalid alignment shift count for resource data\n" ));
362 if ( !font_count || !font_offset )
364 FT_TRACE2((
"this file doesn't contain any FNT resources\n" ));
373 FT_TRACE2((
"invalid number of faces\n" ));
378 face->root.num_faces = font_count;
380 if ( face_instance_index < 0 )
383 if ( face_index >= font_count )
413 FT_ULong root_dir_offset, name_dir_offset, lang_dir_offset;
423 FT_TRACE2((
"magic %04lx, machine %02x, number_of_sections %u, " 424 "size_of_optional_header %02x\n" 425 "magic32 %02x, rsrc_virtual_address %04lx, " 434 pe32_header.
machine != 0x014C ||
438 FT_TRACE2((
"this file has an invalid PE header\n" ));
443 face->root.num_faces = 0;
451 FT_TRACE2((
"name %.8s, va %04lx, size %04lx, offset %04lx\n",
458 goto Found_rsrc_section;
461 FT_TRACE2((
"this file doesn't contain any resources\n" ));
466 FT_TRACE2((
"found resources section %.8s\n", pe32_section.
name ));
474 for (
i = 0;
i <
root_dir.number_of_named_entries +
482 if ( !(dir_entry1.
offset & 0x80000000UL ) )
506 if ( !(dir_entry2.
offset & 0x80000000UL ) )
530 if ( dir_entry2.
offset & 0x80000000UL )
536 if ( dir_entry1.
name == 8 )
543 FT_TRACE2((
"found font #%lu, offset %04lx, " 544 "size %04lx, cp %lu\n",
551 if ( face_index ==
face->root.num_faces )
559 face->font->fnt_size = data_entry.
size;
564 FT_TRACE2((
"font #%lu load error 0x%x\n",
569 FT_TRACE2((
"font #%lu successfully loaded\n",
573 face->root.num_faces++;
580 if ( !
face->root.num_faces )
582 FT_TRACE2((
"this file doesn't contain any RT_FONT resources\n" ));
587 if ( face_index >=
face->root.num_faces )
FT_UShort number_of_named_entries
FT_UShort number_of_id_entries
GLuint GLuint GLsizei count
static const FT_Frame_Field winne_header_fields[]
FT_BEGIN_HEADER struct WinMZ_HeaderRec_ WinMZ_HeaderRec
FT_ULong pointer_to_raw_data
static char memory[1024 *256]
#define FT_STREAM_READ_FIELDS(fields, object)
static const char root_dir[]
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
static const FT_Frame_Field winpe32_section_fields[]
static void fnt_font_done(FNT_Face face)
static const FT_Frame_Field winmz_header_fields[]
#define FT_GET_USHORT_LE()
#define FT_TRACE2(varformat)
static FT_Error fnt_font_load(FNT_Font font, FT_Stream stream)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
static const FT_Frame_Field winpe32_header_fields[]
#define FT_STREAM_SEEK(position)
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
static const FT_Frame_Field winpe_rsrc_data_entry_fields[]
FT_ULong size_of_raw_data
#define FT_FRAME_ENTER(size)
static const FT_Frame_Field winpe_rsrc_dir_entry_fields[]
static const FT_Frame_Field winpe_rsrc_dir_fields[]
GLenum GLuint GLint GLenum face