1 
2 //          Copyright Michael D. Parker 2018.
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.freetype.bind.ftwinfnt;
8 
9 import bindbc.freetype.bind.freetype,
10        bindbc.freetype.bind.fttypes;
11 
12 enum {
13     FT_WinFNT_ID_CP1252 = 0,
14     FT_WinFNT_ID_DEFAULT = 1,
15     FT_WinFNT_ID_SYMBOL = 2,
16     FT_WinFNT_ID_MAC = 77,
17     FT_WinFNT_ID_CP932 = 128,
18     FT_WinFNT_ID_CP949 = 129,
19     FT_WinFNT_ID_CP1361 = 130,
20     FT_WinFNT_ID_CP936 = 134,
21     FT_WinFNT_ID_CP950 = 136,
22     FT_WinFNT_ID_CP1253 = 161,
23     FT_WinFNT_ID_CP1254 = 162,
24     FT_WinFNT_ID_CP1258 = 163,
25     FT_WinFNT_ID_CP1255 = 177,
26     FT_WinFNT_ID_CP1256 = 178,
27     FT_WinFNT_ID_CP1257 = 186,
28     FT_WinFNT_ID_CP1251 = 204,
29     FT_WinFNT_ID_CP874 = 222,
30     FT_WinFNT_ID_CP1250 = 238,
31     FT_WinFNT_ID_OEM = 255,
32 }
33 
34 
35 struct FT_WinFNT_HeaderRec {
36     FT_UShort _version;
37     FT_ULong file_size;
38     FT_Byte[60] copyright;
39     FT_UShort file_type;
40     FT_UShort nominal_point_size;
41     FT_UShort vertical_resolution;
42     FT_UShort horizontal_resolution;
43     FT_UShort ascent;
44     FT_UShort internal_leading;
45     FT_UShort external_leading;
46     FT_Byte italic;
47     FT_Byte underline;
48     FT_Byte strike_out;
49     FT_UShort weight;
50     FT_Byte charset;
51     FT_UShort pixel_width;
52     FT_UShort pixel_height;
53     FT_Byte pitch_and_family;
54     FT_UShort avg_width;
55     FT_UShort max_width;
56     FT_Byte first_char;
57     FT_Byte last_char;
58     FT_Byte default_char;
59     FT_Byte break_char;
60     FT_UShort bytes_per_row;
61     FT_ULong device_offset;
62     FT_ULong face_name_offset;
63     FT_ULong bits_pointer;
64     FT_ULong bits_offset;
65     FT_Byte reserved;
66     FT_ULong flags;
67     FT_UShort A_space;
68     FT_UShort B_space;
69     FT_UShort C_space;
70     FT_UShort color_table_offset;
71     FT_ULong[4] reserved1;
72 }
73 
74 alias FT_WinFNT_Header = FT_WinFNT_HeaderRec*;
75 
76 version(BindFT_Static) {
77 	extern(C) @nogc nothrow {
78         FT_Error FT_Get_WinFNT_Header(FT_Face,FT_WinFNT_HeaderRec*);
79     }
80 }
81 else {
82     extern(C) @nogc nothrow {
83         alias pFT_Get_WinFNT_Header = FT_Error function(FT_Face,FT_WinFNT_HeaderRec*);
84     }
85 
86     __gshared {
87          pFT_Get_WinFNT_Header FT_Get_WinFNT_Header;
88     }
89 }