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