xref: /inferno-os/include/freetype/internal/fnttypes.h (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
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