misc/libfreetype/src/winfonts/winfnt.h
branchwebgl
changeset 9521 8054d9d775fd
parent 9282 92af50454cf2
parent 9519 b8b5c82eb61b
child 9950 2759212a27de
equal deleted inserted replaced
9282:92af50454cf2 9521:8054d9d775fd
     1 /***************************************************************************/
       
     2 /*                                                                         */
       
     3 /*  winfnt.h                                                               */
       
     4 /*                                                                         */
       
     5 /*    FreeType font driver for Windows FNT/FON files                       */
       
     6 /*                                                                         */
       
     7 /*  Copyright 1996-2001, 2002, 2003, 2004, 2007 by                         */
       
     8 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
       
     9 /*  Copyright 2007 Dmitry Timoshkov for Codeweavers                        */
       
    10 /*                                                                         */
       
    11 /*  This file is part of the FreeType project, and may only be used,       */
       
    12 /*  modified, and distributed under the terms of the FreeType project      */
       
    13 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
       
    14 /*  this file you indicate that you have read the license and              */
       
    15 /*  understand and accept it fully.                                        */
       
    16 /*                                                                         */
       
    17 /***************************************************************************/
       
    18 
       
    19 
       
    20 #ifndef __WINFNT_H__
       
    21 #define __WINFNT_H__
       
    22 
       
    23 
       
    24 #include <ft2build.h>
       
    25 #include FT_WINFONTS_H
       
    26 #include FT_INTERNAL_DRIVER_H
       
    27 
       
    28 
       
    29 FT_BEGIN_HEADER
       
    30 
       
    31 #ifdef FT_CONFIG_OPTION_PIC
       
    32 #error "this module does not support PIC yet"
       
    33 #endif 
       
    34 
       
    35   typedef struct  WinMZ_HeaderRec_
       
    36   {
       
    37     FT_UShort  magic;
       
    38     /* skipped content */
       
    39     FT_UShort  lfanew;
       
    40 
       
    41   } WinMZ_HeaderRec;
       
    42 
       
    43 
       
    44   typedef struct  WinNE_HeaderRec_
       
    45   {
       
    46     FT_UShort  magic;
       
    47     /* skipped content */
       
    48     FT_UShort  resource_tab_offset;
       
    49     FT_UShort  rname_tab_offset;
       
    50 
       
    51   } WinNE_HeaderRec;
       
    52 
       
    53 
       
    54   typedef struct  WinPE32_HeaderRec_
       
    55   {
       
    56     FT_ULong   magic;
       
    57     FT_UShort  machine;
       
    58     FT_UShort  number_of_sections;
       
    59     /* skipped content */
       
    60     FT_UShort  size_of_optional_header;
       
    61     /* skipped content */
       
    62     FT_UShort  magic32;
       
    63     /* skipped content */
       
    64     FT_ULong   rsrc_virtual_address;
       
    65     FT_ULong   rsrc_size;
       
    66     /* skipped content */
       
    67 
       
    68   } WinPE32_HeaderRec;
       
    69 
       
    70 
       
    71   typedef struct  WinPE32_SectionRec_
       
    72   {
       
    73     FT_Byte   name[8];
       
    74     /* skipped content */
       
    75     FT_ULong  virtual_address;
       
    76     FT_ULong  size_of_raw_data;
       
    77     FT_ULong  pointer_to_raw_data;
       
    78     /* skipped content */
       
    79 
       
    80   } WinPE32_SectionRec;
       
    81 
       
    82 
       
    83   typedef struct  WinPE_RsrcDirRec_
       
    84   {
       
    85     FT_ULong   characteristics;
       
    86     FT_ULong   time_date_stamp;
       
    87     FT_UShort  major_version;
       
    88     FT_UShort  minor_version;
       
    89     FT_UShort  number_of_named_entries;
       
    90     FT_UShort  number_of_id_entries;
       
    91 
       
    92   } WinPE_RsrcDirRec;
       
    93 
       
    94 
       
    95   typedef struct  WinPE_RsrcDirEntryRec_
       
    96   {
       
    97     FT_ULong  name;
       
    98     FT_ULong  offset;
       
    99 
       
   100   } WinPE_RsrcDirEntryRec;
       
   101 
       
   102 
       
   103   typedef struct  WinPE_RsrcDataEntryRec_
       
   104   {
       
   105     FT_ULong  offset_to_data;
       
   106     FT_ULong  size;
       
   107     FT_ULong  code_page;
       
   108     FT_ULong  reserved;
       
   109 
       
   110   } WinPE_RsrcDataEntryRec;
       
   111 
       
   112 
       
   113   typedef struct  WinNameInfoRec_
       
   114   {
       
   115     FT_UShort  offset;
       
   116     FT_UShort  length;
       
   117     FT_UShort  flags;
       
   118     FT_UShort  id;
       
   119     FT_UShort  handle;
       
   120     FT_UShort  usage;
       
   121 
       
   122   } WinNameInfoRec;
       
   123 
       
   124 
       
   125   typedef struct  WinResourceInfoRec_
       
   126   {
       
   127     FT_UShort  type_id;
       
   128     FT_UShort  count;
       
   129 
       
   130   } WinResourceInfoRec;
       
   131 
       
   132 
       
   133 #define WINFNT_MZ_MAGIC  0x5A4D
       
   134 #define WINFNT_NE_MAGIC  0x454E
       
   135 #define WINFNT_PE_MAGIC  0x4550
       
   136 
       
   137 
       
   138   typedef struct  FNT_FontRec_
       
   139   {
       
   140     FT_ULong             offset;
       
   141 
       
   142     FT_WinFNT_HeaderRec  header;
       
   143 
       
   144     FT_Byte*             fnt_frame;
       
   145     FT_ULong             fnt_size;
       
   146     FT_String*           family_name;
       
   147 
       
   148   } FNT_FontRec, *FNT_Font;
       
   149 
       
   150 
       
   151   typedef struct  FNT_FaceRec_
       
   152   {
       
   153     FT_FaceRec     root;
       
   154     FNT_Font       font;
       
   155 
       
   156     FT_CharMap     charmap_handle;
       
   157     FT_CharMapRec  charmap;  /* a single charmap per face */
       
   158 
       
   159   } FNT_FaceRec, *FNT_Face;
       
   160 
       
   161 
       
   162   FT_EXPORT_VAR( const FT_Driver_ClassRec )  winfnt_driver_class;
       
   163 
       
   164 
       
   165 FT_END_HEADER
       
   166 
       
   167 
       
   168 #endif /* __WINFNT_H__ */
       
   169 
       
   170 
       
   171 /* END */