1*37da2899SCharles.Forsyth /***************************************************************************/ 2*37da2899SCharles.Forsyth /* */ 3*37da2899SCharles.Forsyth /* fnttypes.h */ 4*37da2899SCharles.Forsyth /* */ 5*37da2899SCharles.Forsyth /* Basic Windows FNT/FON type definitions and interface (specification */ 6*37da2899SCharles.Forsyth /* only). */ 7*37da2899SCharles.Forsyth /* */ 8*37da2899SCharles.Forsyth /* Copyright 1996-2001, 2002 by */ 9*37da2899SCharles.Forsyth /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 10*37da2899SCharles.Forsyth /* */ 11*37da2899SCharles.Forsyth /* This file is part of the FreeType project, and may only be used, */ 12*37da2899SCharles.Forsyth /* modified, and distributed under the terms of the FreeType project */ 13*37da2899SCharles.Forsyth /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 14*37da2899SCharles.Forsyth /* this file you indicate that you have read the license and */ 15*37da2899SCharles.Forsyth /* understand and accept it fully. */ 16*37da2899SCharles.Forsyth /* */ 17*37da2899SCharles.Forsyth /***************************************************************************/ 18*37da2899SCharles.Forsyth 19*37da2899SCharles.Forsyth 20*37da2899SCharles.Forsyth #ifndef __FNTTYPES_H__ 21*37da2899SCharles.Forsyth #define __FNTTYPES_H__ 22*37da2899SCharles.Forsyth 23*37da2899SCharles.Forsyth 24*37da2899SCharles.Forsyth #include <ft2build.h> 25*37da2899SCharles.Forsyth #include FT_FREETYPE_H 26*37da2899SCharles.Forsyth 27*37da2899SCharles.Forsyth 28*37da2899SCharles.Forsyth FT_BEGIN_HEADER 29*37da2899SCharles.Forsyth 30*37da2899SCharles.Forsyth 31*37da2899SCharles.Forsyth typedef struct WinMZ_HeaderRec_ 32*37da2899SCharles.Forsyth { 33*37da2899SCharles.Forsyth FT_UShort magic; 34*37da2899SCharles.Forsyth /* skipped content */ 35*37da2899SCharles.Forsyth FT_UShort lfanew; 36*37da2899SCharles.Forsyth 37*37da2899SCharles.Forsyth } WinMZ_HeaderRec; 38*37da2899SCharles.Forsyth 39*37da2899SCharles.Forsyth 40*37da2899SCharles.Forsyth typedef struct WinNE_HeaderRec_ 41*37da2899SCharles.Forsyth { 42*37da2899SCharles.Forsyth FT_UShort magic; 43*37da2899SCharles.Forsyth /* skipped content */ 44*37da2899SCharles.Forsyth FT_UShort resource_tab_offset; 45*37da2899SCharles.Forsyth FT_UShort rname_tab_offset; 46*37da2899SCharles.Forsyth 47*37da2899SCharles.Forsyth } WinNE_HeaderRec; 48*37da2899SCharles.Forsyth 49*37da2899SCharles.Forsyth 50*37da2899SCharles.Forsyth typedef struct WinNameInfoRec_ 51*37da2899SCharles.Forsyth { 52*37da2899SCharles.Forsyth FT_UShort offset; 53*37da2899SCharles.Forsyth FT_UShort length; 54*37da2899SCharles.Forsyth FT_UShort flags; 55*37da2899SCharles.Forsyth FT_UShort id; 56*37da2899SCharles.Forsyth FT_UShort handle; 57*37da2899SCharles.Forsyth FT_UShort usage; 58*37da2899SCharles.Forsyth 59*37da2899SCharles.Forsyth } WinNameInfoRec; 60*37da2899SCharles.Forsyth 61*37da2899SCharles.Forsyth 62*37da2899SCharles.Forsyth typedef struct WinResourceInfoRec_ 63*37da2899SCharles.Forsyth { 64*37da2899SCharles.Forsyth FT_UShort type_id; 65*37da2899SCharles.Forsyth FT_UShort count; 66*37da2899SCharles.Forsyth 67*37da2899SCharles.Forsyth } WinResourceInfoRec; 68*37da2899SCharles.Forsyth 69*37da2899SCharles.Forsyth 70*37da2899SCharles.Forsyth #define WINFNT_MZ_MAGIC 0x5A4D 71*37da2899SCharles.Forsyth #define WINFNT_NE_MAGIC 0x454E 72*37da2899SCharles.Forsyth 73*37da2899SCharles.Forsyth 74*37da2899SCharles.Forsyth typedef struct WinFNT_HeaderRec_ 75*37da2899SCharles.Forsyth { 76*37da2899SCharles.Forsyth FT_UShort version; 77*37da2899SCharles.Forsyth FT_ULong file_size; 78*37da2899SCharles.Forsyth FT_Byte copyright[60]; 79*37da2899SCharles.Forsyth FT_UShort file_type; 80*37da2899SCharles.Forsyth FT_UShort nominal_point_size; 81*37da2899SCharles.Forsyth FT_UShort vertical_resolution; 82*37da2899SCharles.Forsyth FT_UShort horizontal_resolution; 83*37da2899SCharles.Forsyth FT_UShort ascent; 84*37da2899SCharles.Forsyth FT_UShort internal_leading; 85*37da2899SCharles.Forsyth FT_UShort external_leading; 86*37da2899SCharles.Forsyth FT_Byte italic; 87*37da2899SCharles.Forsyth FT_Byte underline; 88*37da2899SCharles.Forsyth FT_Byte strike_out; 89*37da2899SCharles.Forsyth FT_UShort weight; 90*37da2899SCharles.Forsyth FT_Byte charset; 91*37da2899SCharles.Forsyth FT_UShort pixel_width; 92*37da2899SCharles.Forsyth FT_UShort pixel_height; 93*37da2899SCharles.Forsyth FT_Byte pitch_and_family; 94*37da2899SCharles.Forsyth FT_UShort avg_width; 95*37da2899SCharles.Forsyth FT_UShort max_width; 96*37da2899SCharles.Forsyth FT_Byte first_char; 97*37da2899SCharles.Forsyth FT_Byte last_char; 98*37da2899SCharles.Forsyth FT_Byte default_char; 99*37da2899SCharles.Forsyth FT_Byte break_char; 100*37da2899SCharles.Forsyth FT_UShort bytes_per_row; 101*37da2899SCharles.Forsyth FT_ULong device_offset; 102*37da2899SCharles.Forsyth FT_ULong face_name_offset; 103*37da2899SCharles.Forsyth FT_ULong bits_pointer; 104*37da2899SCharles.Forsyth FT_ULong bits_offset; 105*37da2899SCharles.Forsyth FT_Byte reserved; 106*37da2899SCharles.Forsyth FT_ULong flags; 107*37da2899SCharles.Forsyth FT_UShort A_space; 108*37da2899SCharles.Forsyth FT_UShort B_space; 109*37da2899SCharles.Forsyth FT_UShort C_space; 110*37da2899SCharles.Forsyth FT_UShort color_table_offset; 111*37da2899SCharles.Forsyth FT_Byte reserved2[4]; 112*37da2899SCharles.Forsyth 113*37da2899SCharles.Forsyth } WinFNT_HeaderRec, *WinFNT_Header; 114*37da2899SCharles.Forsyth 115*37da2899SCharles.Forsyth 116*37da2899SCharles.Forsyth typedef struct FNT_FontRec_ 117*37da2899SCharles.Forsyth { 118*37da2899SCharles.Forsyth FT_ULong offset; 119*37da2899SCharles.Forsyth FT_Int size_shift; 120*37da2899SCharles.Forsyth 121*37da2899SCharles.Forsyth WinFNT_HeaderRec header; 122*37da2899SCharles.Forsyth 123*37da2899SCharles.Forsyth FT_Byte* fnt_frame; 124*37da2899SCharles.Forsyth FT_ULong fnt_size; 125*37da2899SCharles.Forsyth 126*37da2899SCharles.Forsyth } FNT_FontRec, *FNT_Font; 127*37da2899SCharles.Forsyth 128*37da2899SCharles.Forsyth 129*37da2899SCharles.Forsyth typedef struct FNT_SizeRec_ 130*37da2899SCharles.Forsyth { 131*37da2899SCharles.Forsyth FT_SizeRec root; 132*37da2899SCharles.Forsyth FNT_Font font; 133*37da2899SCharles.Forsyth 134*37da2899SCharles.Forsyth } FNT_SizeRec, *FNT_Size; 135*37da2899SCharles.Forsyth 136*37da2899SCharles.Forsyth 137*37da2899SCharles.Forsyth typedef struct FNT_FaceRec_ 138*37da2899SCharles.Forsyth { 139*37da2899SCharles.Forsyth FT_FaceRec root; 140*37da2899SCharles.Forsyth 141*37da2899SCharles.Forsyth FT_UInt num_fonts; 142*37da2899SCharles.Forsyth FNT_Font fonts; 143*37da2899SCharles.Forsyth 144*37da2899SCharles.Forsyth FT_CharMap charmap_handle; 145*37da2899SCharles.Forsyth FT_CharMapRec charmap; /* a single charmap per face */ 146*37da2899SCharles.Forsyth 147*37da2899SCharles.Forsyth } FNT_FaceRec, *FNT_Face; 148*37da2899SCharles.Forsyth 149*37da2899SCharles.Forsyth 150*37da2899SCharles.Forsyth FT_END_HEADER 151*37da2899SCharles.Forsyth 152*37da2899SCharles.Forsyth #endif /* __FNTTYPES_H__ */ 153*37da2899SCharles.Forsyth 154*37da2899SCharles.Forsyth 155*37da2899SCharles.Forsyth /* END */ 156