winfnt.c File Reference

#include <ft2build.h>
#include "winfnt.h"
#include "fnterrs.h"

Go to the source code of this file.

Classes

struct  FNT_CMapRec_

Defines

#define FT_COMPONENT   trace_winfnt
#define FT_STRUCTURE   WinMZ_HeaderRec
#define FT_STRUCTURE   WinNE_HeaderRec
#define FT_STRUCTURE   WinPE32_HeaderRec
#define FT_STRUCTURE   WinPE32_SectionRec
#define FT_STRUCTURE   WinPE_RsrcDirRec
#define FT_STRUCTURE   WinPE_RsrcDirEntryRec
#define FT_STRUCTURE   WinPE_RsrcDataEntryRec
#define FT_STRUCTURE   FT_WinFNT_HeaderRec

Typedefs

typedef FNT_CMapRec_ FNT_CMapRec
typedef FNT_CMapRec_FNT_CMap

Functions

static void fnt_font_done (FNT_Face face)
static FT_Error fnt_font_load (FNT_Font font, FT_Stream stream)
static FT_Error fnt_face_get_dll_font (FNT_Face face, FT_Int face_index)
static FT_Error fnt_cmap_init (FNT_CMap cmap)
static FT_UInt fnt_cmap_char_index (FNT_CMap cmap, FT_UInt32 char_code)
static FT_UInt32 fnt_cmap_char_next (FNT_CMap cmap, FT_UInt32 *pchar_code)
static void FNT_Face_Done (FNT_Face face)
static FT_Error FNT_Face_Init (FT_Stream stream, FNT_Face face, FT_Int face_index, FT_Int num_params, FT_Parameter *params)
static FT_Error FNT_Size_Select (FT_Size size)
static FT_Error FNT_Size_Request (FT_Size size, FT_Size_Request req)
static FT_Error FNT_Load_Glyph (FT_GlyphSlot slot, FT_Size size, FT_UInt glyph_index, FT_Int32 load_flags)
static FT_Error winfnt_get_header (FT_Face face, FT_WinFNT_HeaderRec *aheader)
static FT_Module_Interface winfnt_get_service (FT_Driver driver, const FT_String *service_id)

Variables

static const FT_Frame_Field winmz_header_fields []
static const FT_Frame_Field winne_header_fields []
static const FT_Frame_Field winpe32_header_fields []
static const FT_Frame_Field winpe32_section_fields []
static const FT_Frame_Field winpe_rsrc_dir_fields []
static const FT_Frame_Field winpe_rsrc_dir_entry_fields []
static const FT_Frame_Field winpe_rsrc_data_entry_fields []
static const FT_Frame_Field winfnt_header_fields []
static const FT_CMap_ClassRec fnt_cmap_class_rec
static FT_CMap_Class const fnt_cmap_class = &fnt_cmap_class_rec
static const FT_Service_WinFntRec winfnt_service_rec
static const FT_ServiceDescRec winfnt_services []
FT_CALLBACK_TABLE_DEF const
FT_Driver_ClassRec 
winfnt_driver_class


Define Documentation

#define FT_COMPONENT   trace_winfnt

Definition at line 39 of file winfnt.c.

#define FT_STRUCTURE   FT_WinFNT_HeaderRec

#define FT_STRUCTURE   WinPE_RsrcDataEntryRec

#define FT_STRUCTURE   WinPE_RsrcDirEntryRec

#define FT_STRUCTURE   WinPE_RsrcDirRec

#define FT_STRUCTURE   WinPE32_SectionRec

#define FT_STRUCTURE   WinPE32_HeaderRec

#define FT_STRUCTURE   WinNE_HeaderRec

#define FT_STRUCTURE   WinMZ_HeaderRec


Typedef Documentation

typedef struct FNT_CMapRec_ * FNT_CMap

typedef struct FNT_CMapRec_ FNT_CMapRec


Function Documentation

static FT_UInt fnt_cmap_char_index ( FNT_CMap  cmap,
FT_UInt32  char_code 
) [static]

Definition at line 607 of file winfnt.c.

References FNT_CMapRec_::first.

static FT_UInt32 fnt_cmap_char_next ( FNT_CMap  cmap,
FT_UInt32 pchar_code 
) [static]

Definition at line 623 of file winfnt.c.

References FNT_CMapRec_::first, and result().

static FT_Error fnt_cmap_init ( FNT_CMap  cmap  )  [static]

Definition at line 593 of file winfnt.c.

References FNT_CMapRec_::count, FNT_CMapRec_::first, FT_WinFNT_HeaderRec_::first_char, FT_CMAP_FACE, FNT_FontRec_::header, and FT_WinFNT_HeaderRec_::last_char.

static void FNT_Face_Done ( FNT_Face  face  )  [static]

Definition at line 667 of file winfnt.c.

References fnt_font_done(), FT_FACE_MEMORY, and FT_FREE.

Referenced by FNT_Face_Init().

static FT_Error fnt_face_get_dll_font ( FNT_Face  face,
FT_Int  face_index 
) [static]

Definition at line 270 of file winfnt.c.

References WinPE_RsrcDataEntryRec_::code_page, error, fnt_font_load(), FT_FACE, FT_FRAME_ENTER, FT_FRAME_EXIT, FT_GET_USHORT_LE, FT_NEW, FT_STREAM_POS, FT_STREAM_READ_FIELDS, FT_STREAM_SEEK, FT_TRACE2, i, if(), j, k, WinPE32_HeaderRec_::machine, WinPE32_HeaderRec_::magic, WinNE_HeaderRec_::magic, WinPE32_HeaderRec_::magic32, WinPE32_SectionRec_::name, WinPE_RsrcDirEntryRec_::name, WinPE_RsrcDirRec_::number_of_id_entries, WinPE_RsrcDirRec_::number_of_named_entries, WinPE32_HeaderRec_::number_of_sections, WinPE_RsrcDirEntryRec_::offset, WinPE_RsrcDataEntryRec_::offset_to_data, WinPE32_SectionRec_::pointer_to_raw_data, WinNE_HeaderRec_::resource_tab_offset, WinNE_HeaderRec_::rname_tab_offset, WinPE32_HeaderRec_::rsrc_size, WinPE32_HeaderRec_::rsrc_virtual_address, WinPE_RsrcDataEntryRec_::size, WinPE32_HeaderRec_::size_of_optional_header, WinPE32_SectionRec_::size_of_raw_data, PC3::stream(), WinPE32_SectionRec_::virtual_address, WINFNT_MZ_MAGIC, WINFNT_NE_MAGIC, WINFNT_PE_MAGIC, winmz_header_fields, winne_header_fields, winpe32_header_fields, winpe32_section_fields, winpe_rsrc_data_entry_fields, winpe_rsrc_dir_entry_fields, and winpe_rsrc_dir_fields.

Referenced by FNT_Face_Init().

static FT_Error FNT_Face_Init ( FT_Stream  stream,
FNT_Face  face,
FT_Int  face_index,
FT_Int  num_params,
FT_Parameter params 
) [static]

Definition at line 685 of file winfnt.c.

References FT_WinFNT_HeaderRec_::avg_width, bsize, FT_WinFNT_HeaderRec_::charset, FT_CharMapRec_::encoding, FT_CharMapRec_::encoding_id, error, FT_WinFNT_HeaderRec_::external_leading, FT_CharMapRec_::face, FT_WinFNT_HeaderRec_::face_name_offset, FNT_FontRec_::family_name, FT_WinFNT_HeaderRec_::file_size, FT_WinFNT_HeaderRec_::first_char, fnt_cmap_class, FNT_Face_Done(), fnt_face_get_dll_font(), fnt_font_load(), FNT_FontRec_::fnt_frame, FNT_FontRec_::fnt_size, FT_ALLOC, FT_CMap_New(), FT_ENCODING_NONE, FT_FACE, FT_FACE_FLAG_FIXED_SIZES, FT_FACE_FLAG_FIXED_WIDTH, FT_FACE_FLAG_HORIZONTAL, FT_FACE_MEMORY, FT_MEM_COPY, FT_MulDiv(), FT_NEW, FT_NEW_ARRAY, FT_PIX_ROUND, FT_REALLOC, ft_strlen, FT_STYLE_FLAG_BOLD, FT_STYLE_FLAG_ITALIC, FT_TRACE2, FT_UNUSED, FT_WinFNT_ID_MAC, FNT_FontRec_::header, FT_WinFNT_HeaderRec_::horizontal_resolution, FT_WinFNT_HeaderRec_::italic, FT_WinFNT_HeaderRec_::last_char, FT_WinFNT_HeaderRec_::max_width, FT_WinFNT_HeaderRec_::nominal_point_size, NULL, FNT_FontRec_::offset, params, FT_WinFNT_HeaderRec_::pixel_height, FT_CharMapRec_::platform_id, root, PC3::stream(), FT_WinFNT_HeaderRec_::vertical_resolution, and FT_WinFNT_HeaderRec_::weight.

static void fnt_font_done ( FNT_Face  face  )  [static]

Definition at line 188 of file winfnt.c.

References FNT_FontRec_::family_name, FNT_FontRec_::fnt_frame, FT_FACE, FT_FRAME_RELEASE, FT_FREE, and PC3::stream().

Referenced by FNT_Face_Done().

static FT_Error fnt_font_load ( FNT_Font  font,
FT_Stream  stream 
) [static]

Definition at line 208 of file winfnt.c.

References FT_WinFNT_HeaderRec_::A_space, FT_WinFNT_HeaderRec_::B_space, FT_WinFNT_HeaderRec_::C_space, FT_WinFNT_HeaderRec_::color_table_offset, error, FT_WinFNT_HeaderRec_::file_size, FT_WinFNT_HeaderRec_::file_type, FT_WinFNT_HeaderRec_::flags, FNT_FontRec_::fnt_frame, FT_Bool, FT_BOOL, FT_FRAME_EXTRACT, FT_STREAM_READ_FIELDS, FT_STREAM_SEEK, FT_TRACE2, FNT_FontRec_::header, FNT_FontRec_::offset, size, FT_WinFNT_HeaderRec_::version, and winfnt_header_fields.

Referenced by fnt_face_get_dll_font(), and FNT_Face_Init().

static FT_Error FNT_Load_Glyph ( FT_GlyphSlot  slot,
FT_Size  size,
FT_UInt  glyph_index,
FT_Int32  load_flags 
) [static]

Definition at line 939 of file winfnt.c.

References FT_WinFNT_HeaderRec_::ascent, FT_GlyphSlotRec_::bitmap, FT_GlyphSlotRec_::bitmap_left, FT_GlyphSlotRec_::bitmap_top, FT_Bitmap_::buffer, FT_WinFNT_HeaderRec_::default_char, error, FT_GlyphSlotRec_::face, FT_WinFNT_HeaderRec_::file_size, FT_Slot_InternalRec_::flags, FNT_FontRec_::fnt_frame, for(), FT_GlyphSlotRec_::format, FT_ALLOC_MULT, FT_Bool, FT_BOOL, FT_FACE, FT_FACE_MEMORY, FT_GLYPH_FORMAT_BITMAP, FT_GLYPH_OWN_BITMAP, FT_NEXT_SHORT_LE, FT_NEXT_ULONG_LE, FT_NEXT_USHORT_LE, FT_PIXEL_MODE_MONO, FT_SIZE_FACE, ft_synthesize_vertical_metrics(), FT_TRACE2, FT_UNUSED, FNT_FontRec_::header, FT_GlyphSlotRec_::internal, len, FT_GlyphSlotRec_::metrics, p, FT_Bitmap_::pitch, FT_WinFNT_HeaderRec_::pixel_height, FT_Bitmap_::pixel_mode, FT_Bitmap_::rows, size, FT_WinFNT_HeaderRec_::version, FT_Bitmap_::width, and write.

static FT_Error FNT_Size_Request ( FT_Size  size,
FT_Size_Request  req 
) [static]

Definition at line 901 of file winfnt.c.

References bsize, error, FNT_Size_Select(), FT_REQUEST_HEIGHT, FT_SIZE_REQUEST_TYPE_NOMINAL, FT_SIZE_REQUEST_TYPE_REAL_DIM, height, size, and FT_Size_RequestRec_::type.

static FT_Error FNT_Size_Select ( FT_Size  size  )  [static]

Definition at line 883 of file winfnt.c.

References FT_Select_Metrics(), and size.

Referenced by FNT_Size_Request().

static FT_Error winfnt_get_header ( FT_Face  face,
FT_WinFNT_HeaderRec aheader 
) [static]

Definition at line 1048 of file winfnt.c.

References FNT_FontRec_::header.

static FT_Module_Interface winfnt_get_service ( FT_Driver  driver,
const FT_String service_id 
) [static]

Definition at line 1079 of file winfnt.c.

References ft_service_list_lookup(), FT_UNUSED, and winfnt_services.


Variable Documentation

FT_CMap_Class const fnt_cmap_class = &fnt_cmap_class_rec [static]

Definition at line 663 of file winfnt.c.

Referenced by FNT_Face_Init().

const FT_CMap_ClassRec fnt_cmap_class_rec [static]

Initial value:

Definition at line 651 of file winfnt.c.

FT_CALLBACK_TABLE_DEF const FT_Driver_ClassRec winfnt_driver_class

Definition at line 1091 of file winfnt.c.

const FT_Frame_Field winfnt_header_fields[] [static]

Definition at line 141 of file winfnt.c.

Referenced by fnt_font_load().

const FT_Service_WinFntRec winfnt_service_rec [static]

Initial value:

Definition at line 1060 of file winfnt.c.

const FT_ServiceDescRec winfnt_services[] [static]

Initial value:

Definition at line 1070 of file winfnt.c.

Referenced by winfnt_get_service().

const FT_Frame_Field winmz_header_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 64 ),
      FT_FRAME_USHORT_LE ( magic ),
      FT_FRAME_SKIP_BYTES( 29 * 2 ),
      FT_FRAME_ULONG_LE  ( lfanew ),
    FT_FRAME_END
  }

Definition at line 42 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winne_header_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 40 ),
      FT_FRAME_USHORT_LE ( magic ),
      FT_FRAME_SKIP_BYTES( 34 ),
      FT_FRAME_USHORT_LE ( resource_tab_offset ),
      FT_FRAME_USHORT_LE ( rname_tab_offset ),
    FT_FRAME_END
  }

Definition at line 54 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winpe32_header_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 248 ),
      FT_FRAME_ULONG_LE  ( magic ),   
      FT_FRAME_USHORT_LE ( machine ), 
      FT_FRAME_USHORT_LE ( number_of_sections ),
      FT_FRAME_SKIP_BYTES( 12 ),
      FT_FRAME_USHORT_LE ( size_of_optional_header ),
      FT_FRAME_SKIP_BYTES( 2 ),
      FT_FRAME_USHORT_LE ( magic32 ), 
      FT_FRAME_SKIP_BYTES( 110 ),
      FT_FRAME_ULONG_LE  ( rsrc_virtual_address ),
      FT_FRAME_ULONG_LE  ( rsrc_size ),
      FT_FRAME_SKIP_BYTES( 104 ),
    FT_FRAME_END
  }

Definition at line 67 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winpe32_section_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 40 ),
      FT_FRAME_BYTES     ( name, 8 ),
      FT_FRAME_SKIP_BYTES( 4 ),
      FT_FRAME_ULONG_LE  ( virtual_address ),
      FT_FRAME_ULONG_LE  ( size_of_raw_data ),
      FT_FRAME_ULONG_LE  ( pointer_to_raw_data ),
      FT_FRAME_SKIP_BYTES( 16 ),
    FT_FRAME_END
  }

Definition at line 87 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winpe_rsrc_data_entry_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 16 ),
      FT_FRAME_ULONG_LE( offset_to_data ),
      FT_FRAME_ULONG_LE( size ),
      FT_FRAME_ULONG_LE( code_page ),
      FT_FRAME_ULONG_LE( reserved ),
    FT_FRAME_END
  }

Definition at line 128 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winpe_rsrc_dir_entry_fields[] [static]

Initial value:

Definition at line 117 of file winfnt.c.

Referenced by fnt_face_get_dll_font().

const FT_Frame_Field winpe_rsrc_dir_fields[] [static]

Initial value:

  {

#define FT_STRUCTURE

    FT_FRAME_START( 16 ),
      FT_FRAME_ULONG_LE ( characteristics ),
      FT_FRAME_ULONG_LE ( time_date_stamp ),
      FT_FRAME_USHORT_LE( major_version ),
      FT_FRAME_USHORT_LE( minor_version ),
      FT_FRAME_USHORT_LE( number_of_named_entries ),
      FT_FRAME_USHORT_LE( number_of_id_entries ),
    FT_FRAME_END
  }

Definition at line 102 of file winfnt.c.

Referenced by fnt_face_get_dll_font().


Generated on Tue Jul 5 15:58:27 2011 for ROOT_528-00b_version by  doxygen 1.5.1