1 /*
2 
3 Boost Software License - Version 1.0 - August 17th, 2003
4 
5 Permission is hereby granted, free of charge, to any person or organization
6 obtaining a copy of the software and accompanying documentation covered by
7 this license (the "Software") to use, reproduce, display, distribute,
8 execute, and transmit the Software, and to prepare derivative works of the
9 Software, and to permit third-parties to whom the Software is furnished to
10 do so, all subject to the following:
11 
12 The copyright notices in the Software and this entire statement, including
13 the above license grant, this restriction and the following disclaimer,
14 must be included in all copies of the Software, in whole or in part, and
15 all derivative works of the Software, unless such copies or derivative
16 works are solely in the form of machine-executable object code generated by
17 a source language processor.
18 
19 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21 FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
22 SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
23 FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
24 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25 DEALINGS IN THE SOFTWARE.
26 
27 */
28 module derelict.freetype.ft;
29 
30 public
31 {
32     import derelict.freetype.fttypes;
33     import derelict.freetype.ftfuncs;
34 }
35 
36 private
37 {
38     import derelict.util.loader;
39 }
40 
41 class DerelictFTLoader : SharedLibLoader
42 {
43 public:
44     this()
45     {
46         super(
47             "freetype.dll",
48             "libfreetype.so.6,libfreetype.so",
49             "libfreetype.dylib,libfreetype.6.dylib,libfreetype.6.3.16.dylib,/usr/X11/lib/libfreetype.dylib,/usr/X11/lib/libfreetype.6.dylib,/usr/X11/lib/libfreetype.6.3.16.dylib"
50         );
51     }
52 
53 protected:
54     override void loadSymbols()
55     {
56         // freetype.h
57         bindFunc(cast(void**)&FT_Init_FreeType, "FT_Init_FreeType");
58         bindFunc(cast(void**)&FT_Done_FreeType, "FT_Done_FreeType");
59         bindFunc(cast(void**)&FT_New_Face, "FT_New_Face");
60         bindFunc(cast(void**)&FT_New_Memory_Face, "FT_New_Memory_Face");
61         bindFunc(cast(void**)&FT_Open_Face, "FT_Open_Face");
62         bindFunc(cast(void**)&FT_Attach_File, "FT_Attach_File");
63         bindFunc(cast(void**)&FT_Attach_Stream, "FT_Attach_Stream");
64         bindFunc(cast(void**)&FT_Reference_Face, "FT_Reference_Face");
65         bindFunc(cast(void**)&FT_Done_Face, "FT_Done_Face");
66         bindFunc(cast(void**)&FT_Select_Size, "FT_Select_Size");
67         bindFunc(cast(void**)&FT_Request_Size, "FT_Request_Size");
68         bindFunc(cast(void**)&FT_Set_Char_Size, "FT_Set_Char_Size");
69         bindFunc(cast(void**)&FT_Set_Pixel_Sizes, "FT_Set_Pixel_Sizes");
70         bindFunc(cast(void**)&FT_Load_Glyph, "FT_Load_Glyph");
71         bindFunc(cast(void**)&FT_Load_Char, "FT_Load_Char");
72         bindFunc(cast(void**)&FT_Set_Transform, "FT_Set_Transform");
73         bindFunc(cast(void**)&FT_Render_Glyph, "FT_Render_Glyph");
74         bindFunc(cast(void**)&FT_Get_Kerning, "FT_Get_Kerning");
75         bindFunc(cast(void**)&FT_Get_Track_Kerning, "FT_Get_Track_Kerning");
76         bindFunc(cast(void**)&FT_Get_Glyph_Name, "FT_Get_Glyph_Name");
77         bindFunc(cast(void**)&FT_Get_Postscript_Name, "FT_Get_Postscript_Name");
78         bindFunc(cast(void**)&FT_Select_Charmap, "FT_Select_Charmap");
79         bindFunc(cast(void**)&FT_Set_Charmap, "FT_Set_Charmap");
80         bindFunc(cast(void**)&FT_Get_Charmap_Index, "FT_Get_Charmap_Index");
81         bindFunc(cast(void**)&FT_Get_Char_Index, "FT_Get_Char_Index");
82         bindFunc(cast(void**)&FT_Get_First_Char, "FT_Get_First_Char");
83         bindFunc(cast(void**)&FT_Get_Next_Char, "FT_Get_Next_Char");
84         bindFunc(cast(void**)&FT_Get_Name_Index, "FT_Get_Name_Index");
85         bindFunc(cast(void**)&FT_MulDiv, "FT_MulDiv");
86         bindFunc(cast(void**)&FT_MulFix, "FT_MulFix");
87         bindFunc(cast(void**)&FT_DivFix, "FT_DivFix");
88         bindFunc(cast(void**)&FT_RoundFix, "FT_RoundFix");
89         bindFunc(cast(void**)&FT_CeilFix, "FT_CeilFix");
90         bindFunc(cast(void**)&FT_FloorFix, "FT_FloorFix");
91         bindFunc(cast(void**)&FT_Vector_Transform, "FT_Vector_Transform");
92         bindFunc(cast(void**)&FT_Library_Version, "FT_Library_Version");
93         bindFunc(cast(void**)&FT_Face_CheckTrueTypePatents, "FT_Face_CheckTrueTypePatents");
94         bindFunc(cast(void**)&FT_Face_SetUnpatentedHinting, "FT_Face_SetUnpatentedHinting");
95 
96         // ftlist.
97         bindFunc(cast(void**)&FT_List_Find, "FT_List_Find");
98         bindFunc(cast(void**)&FT_List_Add, "FT_List_Add");
99         bindFunc(cast(void**)&FT_List_Insert, "FT_List_Insert");
100         bindFunc(cast(void**)&FT_List_Remove, "FT_List_Remove");
101         bindFunc(cast(void**)&FT_List_Up, "FT_List_Up");
102         bindFunc(cast(void**)&FT_List_Iterate, "FT_List_Iterate");
103         bindFunc(cast(void**)&FT_List_Finalize, "FT_List_Finalize");
104 
105         // ftoutln
106         bindFunc(cast(void**)&FT_Outline_Decompose, "FT_Outline_Decompose");
107         bindFunc(cast(void**)&FT_Outline_New, "FT_Outline_New");
108         bindFunc(cast(void**)&FT_Outline_New_Internal, "FT_Outline_New_Internal");
109         bindFunc(cast(void**)&FT_Outline_Done, "FT_Outline_Done");
110         bindFunc(cast(void**)&FT_Outline_Done_Internal, "FT_Outline_Done_Internal");
111         bindFunc(cast(void**)&FT_Outline_Check, "FT_Outline_Check");
112         bindFunc(cast(void**)&FT_Outline_Get_CBox, "FT_Outline_Get_CBox");
113         bindFunc(cast(void**)&FT_Outline_Translate, "FT_Outline_Translate");
114         bindFunc(cast(void**)&FT_Outline_Copy, "FT_Outline_Copy");
115         bindFunc(cast(void**)&FT_Outline_Transform, "FT_Outline_Transform");
116         bindFunc(cast(void**)&FT_Outline_Embolden, "FT_Outline_Embolden");
117         bindFunc(cast(void**)&FT_Outline_Reverse, "FT_Outline_Reverse");
118         bindFunc(cast(void**)&FT_Outline_Get_Bitmap, "FT_Outline_Get_Bitmap");
119         bindFunc(cast(void**)&FT_Outline_Render, "FT_Outline_Render");
120         bindFunc(cast(void**)&FT_Outline_Get_Orientation, "FT_Outline_Get_Orientation");
121 
122         // ftsizes.h
123         bindFunc(cast(void**)&FT_New_Size, "FT_New_Size");
124         bindFunc(cast(void**)&FT_Done_Size, "FT_Done_Size");
125         bindFunc(cast(void**)&FT_Activate_Size, "FT_Activate_Size");
126 
127         // ftmodapi.h
128         bindFunc(cast(void**)&FT_Add_Module, "FT_Add_Module");
129         bindFunc(cast(void**)&FT_Get_Module, "FT_Get_Module");
130         bindFunc(cast(void**)&FT_Remove_Module, "FT_Remove_Module");
131         bindFunc(cast(void**)&FT_Reference_Library, "FT_Reference_Library");
132         bindFunc(cast(void**)&FT_New_Library, "FT_New_Library");
133         bindFunc(cast(void**)&FT_Done_Library, "FT_Done_Library");
134         bindFunc(cast(void**)&FT_Set_Debug_Hook, "FT_Set_Debug_Hook");
135         bindFunc(cast(void**)&FT_Add_Default_Modules, "FT_Add_Default_Modules");
136         bindFunc(cast(void**)&FT_Get_TrueType_Engine_Type, "FT_Get_TrueType_Engine_Type");
137 
138         // ftrender.h
139         bindFunc(cast(void**)&FT_Get_Renderer, "FT_Get_Renderer");
140         bindFunc(cast(void**)&FT_Set_Renderer, "FT_Set_Renderer");
141 
142         // t1tables.h
143         bindFunc(cast(void**)&FT_Has_PS_Glyph_Names, "FT_Has_PS_Glyph_Names");
144         bindFunc(cast(void**)&FT_Get_PS_Font_Info, "FT_Get_PS_Font_Info");
145         bindFunc(cast(void**)&FT_Get_PS_Font_Private, "FT_Get_PS_Font_Private");
146         //bindFunc(cast(void**)&FT_Get_PS_Font_Value, "FT_Get_PS_Font_Value");
147 
148         // tttables.h
149         bindFunc(cast(void**)&FT_Get_Sfnt_Table, "FT_Get_Sfnt_Table");
150         bindFunc(cast(void**)&FT_Load_Sfnt_Table, "FT_Load_Sfnt_Table");
151         bindFunc(cast(void**)&FT_Sfnt_Table_Info, "FT_Sfnt_Table_Info");
152         bindFunc(cast(void**)&FT_Get_CMap_Language_ID, "FT_Get_CMap_Language_ID");
153         bindFunc(cast(void**)&FT_Get_CMap_Format, "FT_Get_CMap_Format");
154 
155         // ftbdf.h
156         bindFunc(cast(void**)&FT_Get_BDF_Charset_ID, "FT_Get_BDF_Charset_ID");
157         bindFunc(cast(void**)&FT_Get_BDF_Property, "FT_Get_BDF_Property");
158 
159         // ftgzip.h
160         bindFunc(cast(void**)&FT_Stream_OpenGzip, "FT_Stream_OpenGzip");
161 
162         // ftlzw.h
163         bindFunc(cast(void**)&FT_Stream_OpenLZW, "FT_Stream_OpenLZW");
164 
165         // ftwinfnt.h
166         bindFunc(cast(void**)&FT_Get_WinFNT_Header, "FT_Get_WinFNT_Header");
167 
168         // ftglyph.h
169         bindFunc(cast(void**)&FT_Get_Glyph, "FT_Get_Glyph");
170         bindFunc(cast(void**)&FT_Glyph_Copy, "FT_Glyph_Copy");
171         bindFunc(cast(void**)&FT_Glyph_Transform, "FT_Glyph_Transform");
172         bindFunc(cast(void**)&FT_Glyph_Get_CBox, "FT_Glyph_Get_CBox");
173         bindFunc(cast(void**)&FT_Glyph_To_Bitmap, "FT_Glyph_To_Bitmap");
174         bindFunc(cast(void**)&FT_Done_Glyph, "FT_Done_Glyph");
175         bindFunc(cast(void**)&FT_Matrix_Multiply, "FT_Matrix_Multiply");
176         bindFunc(cast(void**)&FT_Matrix_Invert, "FT_Matrix_Invert");
177 
178         // ftbitmap.h
179         bindFunc(cast(void**)&FT_Bitmap_New, "FT_Bitmap_New");
180         bindFunc(cast(void**)&FT_Bitmap_Copy, "FT_Bitmap_Copy");
181         bindFunc(cast(void**)&FT_Bitmap_Embolden, "FT_Bitmap_Embolden");
182         bindFunc(cast(void**)&FT_Bitmap_Convert, "FT_Bitmap_Convert");
183         bindFunc(cast(void**)&FT_Bitmap_Done, "FT_Bitmap_Done");
184 
185         // ftbbox.h
186         bindFunc(cast(void**)&FT_Outline_Get_BBox, "FT_Outline_Get_BBox");
187 
188         // ftcache.h
189         bindFunc(cast(void**)&FTC_Manager_New, "FTC_Manager_New");
190         bindFunc(cast(void**)&FTC_Manager_Reset, "FTC_Manager_Reset");
191         bindFunc(cast(void**)&FTC_Manager_Done, "FTC_Manager_Done");
192         bindFunc(cast(void**)&FTC_Manager_LookupFace, "FTC_Manager_LookupFace");
193         bindFunc(cast(void**)&FTC_Manager_LookupSize, "FTC_Manager_LookupSize");
194         bindFunc(cast(void**)&FTC_Node_Unref, "FTC_Node_Unref");
195         bindFunc(cast(void**)&FTC_Manager_RemoveFaceID, "FTC_Manager_RemoveFaceID");
196         bindFunc(cast(void**)&FTC_CMapCache_New, "FTC_CMapCache_New");
197         bindFunc(cast(void**)&FTC_CMapCache_Lookup, "FTC_CMapCache_Lookup");
198         bindFunc(cast(void**)&FTC_ImageCache_New, "FTC_ImageCache_New");
199         bindFunc(cast(void**)&FTC_ImageCache_Lookup, "FTC_ImageCache_Lookup");
200         bindFunc(cast(void**)&FTC_ImageCache_LookupScaler, "FTC_ImageCache_LookupScaler");
201         bindFunc(cast(void**)&FTC_SBitCache_New, "FTC_SBitCache_New");
202         bindFunc(cast(void**)&FTC_SBitCache_Lookup, "FTC_SBitCache_Lookup");
203         bindFunc(cast(void**)&FTC_SBitCache_LookupScaler, "FTC_SBitCache_LookupScaler");
204 
205         // ftmm.h
206         bindFunc(cast(void**)&FT_Get_Multi_Master, "FT_Get_Multi_Master");
207         bindFunc(cast(void**)&FT_Get_MM_Var, "FT_Get_MM_Var");
208         bindFunc(cast(void**)&FT_Set_MM_Design_Coordinates, "FT_Set_MM_Design_Coordinates");
209         bindFunc(cast(void**)&FT_Set_Var_Design_Coordinates, "FT_Set_Var_Design_Coordinates");
210         bindFunc(cast(void**)&FT_Set_MM_Blend_Coordinates, "FT_Set_MM_Blend_Coordinates");
211         bindFunc(cast(void**)&FT_Set_Var_Blend_Coordinates, "FT_Set_Var_Blend_Coordinates");
212 
213         // ftsnames.h
214         bindFunc(cast(void**)&FT_Get_Sfnt_Name_Count, "FT_Get_Sfnt_Name_Count");
215         bindFunc(cast(void**)&FT_Get_Sfnt_Name, "FT_Get_Sfnt_Name");
216 
217         // ftotval.h
218         bindFunc(cast(void**)&FT_OpenType_Validate, "FT_OpenType_Validate");
219         bindFunc(cast(void**)&FT_OpenType_Free, "FT_OpenType_Free");
220 
221         // ftgxval.h
222         bindFunc(cast(void**)&FT_TrueTypeGX_Validate, "FT_TrueTypeGX_Validate");
223         bindFunc(cast(void**)&FT_TrueTypeGX_Free, "FT_TrueTypeGX_Free");
224         bindFunc(cast(void**)&FT_ClassicKern_Validate, "FT_ClassicKern_Validate");
225         bindFunc(cast(void**)&FT_ClassicKern_Free, "FT_ClassicKern_Free");
226 
227         // ftpfr
228         bindFunc(cast(void**)&FT_Get_PFR_Metrics, "FT_Get_PFR_Metrics");
229         bindFunc(cast(void**)&FT_Get_PFR_Kerning, "FT_Get_PFR_Kerning");
230         bindFunc(cast(void**)&FT_Get_PFR_Advance, "FT_Get_PFR_Advance");
231 
232         // ftstroke.h
233         bindFunc(cast(void**)&FT_Outline_GetInsideBorder, "FT_Outline_GetInsideBorder");
234         bindFunc(cast(void**)&FT_Outline_GetOutsideBorder, "FT_Outline_GetOutsideBorder");
235         bindFunc(cast(void**)&FT_Stroker_New, "FT_Stroker_New");
236         bindFunc(cast(void**)&FT_Stroker_Set, "FT_Stroker_Set");
237         bindFunc(cast(void**)&FT_Stroker_Rewind, "FT_Stroker_Rewind");
238         bindFunc(cast(void**)&FT_Stroker_ParseOutline, "FT_Stroker_ParseOutline");
239         bindFunc(cast(void**)&FT_Stroker_BeginSubPath, "FT_Stroker_BeginSubPath");
240         bindFunc(cast(void**)&FT_Stroker_EndSubPath, "FT_Stroker_EndSubPath");
241         bindFunc(cast(void**)&FT_Stroker_LineTo, "FT_Stroker_LineTo");
242         bindFunc(cast(void**)&FT_Stroker_ConicTo, "FT_Stroker_ConicTo");
243         bindFunc(cast(void**)&FT_Stroker_CubicTo, "FT_Stroker_CubicTo");
244         bindFunc(cast(void**)&FT_Stroker_GetBorderCounts, "FT_Stroker_GetBorderCounts");
245         bindFunc(cast(void**)&FT_Stroker_ExportBorder, "FT_Stroker_ExportBorder");
246         bindFunc(cast(void**)&FT_Stroker_GetCounts, "FT_Stroker_GetCounts");
247         bindFunc(cast(void**)&FT_Stroker_Export, "FT_Stroker_Export");
248         bindFunc(cast(void**)&FT_Stroker_Done, "FT_Stroker_Done");
249         bindFunc(cast(void**)&FT_Glyph_Stroke, "FT_Glyph_Stroke");
250         bindFunc(cast(void**)&FT_Glyph_StrokeBorder, "FT_Glyph_StrokeBorder");
251 
252         // ftsynth.h
253         bindFunc(cast(void**)&FT_GlyphSlot_Own_Bitmap, "FT_GlyphSlot_Own_Bitmap");
254         bindFunc(cast(void**)&FT_GlyphSlot_Embolden, "FT_GlyphSlot_Embolden");
255         bindFunc(cast(void**)&FT_GlyphSlot_Oblique, "FT_GlyphSlot_Oblique");
256 
257         // ftxf86.h
258         bindFunc(cast(void**)&FT_Get_X11_Font_Format, "FT_Get_X11_Font_Format");
259 
260         // fttrigon.h
261         bindFunc(cast(void**)&FT_Sin, "FT_Sin");
262         bindFunc(cast(void**)&FT_Cos, "FT_Cos");
263         bindFunc(cast(void**)&FT_Tan, "FT_Tan");
264         bindFunc(cast(void**)&FT_Atan2, "FT_Atan2");
265         bindFunc(cast(void**)&FT_Angle_Diff, "FT_Angle_Diff");
266         bindFunc(cast(void**)&FT_Vector_Unit, "FT_Vector_Unit");
267         bindFunc(cast(void**)&FT_Vector_Rotate, "FT_Vector_Rotate");
268         bindFunc(cast(void**)&FT_Vector_Length, "FT_Vector_Length");
269         bindFunc(cast(void**)&FT_Vector_Polarize, "FT_Vector_Polarize");
270         bindFunc(cast(void**)&FT_Vector_From_Polar, "FT_Vector_From_Polar");
271 
272         // ftlcdfil.h
273         bindFunc(cast(void**)&FT_Library_SetLcdFilter, "FT_Library_SetLcdFilter");
274         bindFunc(cast(void**)&FT_Library_SetLcdFilterWeights, "FT_Library_SetLcdFilterWeights");
275 
276         // ftgasp.h
277         bindFunc(cast(void**)&FT_Get_Gasp, "FT_Get_Gasp");
278 
279         /+ other
280         //bindFunc(cast(void**)&ftc_node_destroy, "ftc_node_destroy");
281         bindFunc(cast(void**)&FT_Alloc, "FT_Alloc");
282         bindFunc(cast(void**)&FT_QAlloc, "FT_QAlloc");
283         bindFunc(cast(void**)&FT_Realloc, "FT_Realloc");
284         bindFunc(cast(void**)&FT_QRealloc, "FT_QRealloc");
285         bindFunc(cast(void**)&FT_Free, "FT_Free");
286         bindFunc(cast(void**)&FT_GlyphLoader_New, "FT_GlyphLoader_New");
287         bindFunc(cast(void**)&FT_GlyphLoader_CreateExtra, "FT_GlyphLoader_CreateExtra");
288         bindFunc(cast(void**)&FT_GlyphLoader_Done, "FT_GlyphLoader_Done");
289         bindFunc(cast(void**)&FT_GlyphLoader_Reset, "FT_GlyphLoader_Reset");
290         bindFunc(cast(void**)&FT_GlyphLoader_Rewind, "FT_GlyphLoader_Rewind");
291         bindFunc(cast(void**)&FT_GlyphLoader_CheckPoints, "FT_GlyphLoader_CheckPoints");
292         bindFunc(cast(void**)&FT_GlyphLoader_CheckSubGlyphs, "FT_GlyphLoader_CheckSubGlyphs");
293         bindFunc(cast(void**)&FT_GlyphLoader_Prepare, "FT_GlyphLoader_Prepare");
294         bindFunc(cast(void**)&FT_GlyphLoader_Add, "FT_GlyphLoader_Add");
295         bindFunc(cast(void**)&FT_GlyphLoader_CopyPoints, "FT_GlyphLoader_CopyPoints");
296         bindFunc(cast(void**)&ft_service_list_lookup, "ft_service_list_lookup");
297         bindFunc(cast(void**)&FT_CMap_New, "FT_CMap_New");
298         bindFunc(cast(void**)&FT_CMap_Done, "FT_CMap_Done");
299         bindFunc(cast(void**)&FT_Get_Module_Interface, "FT_Get_Module_Interface");
300         bindFunc(cast(void**)&ft_module_get_service, "ft_module_get_service");
301         bindFunc(cast(void**)&FT_New_GlyphSlot, "FT_New_GlyphSlot");
302         bindFunc(cast(void**)&FT_Done_GlyphSlot, "FT_Done_GlyphSlot");
303         bindFunc(cast(void**)&ft_glyphslot_free_bitmap, "ft_glyphslot_free_bitmap");
304         bindFunc(cast(void**)&ft_glyphslot_alloc_bitmap, "ft_glyphslot_alloc_bitmap");
305         bindFunc(cast(void**)&ft_glyphslot_set_bitmap, "ft_glyphslot_set_bitmap");
306         bindFunc(cast(void**)&FT_Lookup_Renderer, "FT_Lookup_Renderer");
307         bindFunc(cast(void**)&FT_Render_Glyph_Internal, "FT_Render_Glyph_Internal");
308         bindFunc(cast(void**)&FT_New_Memory, "FT_New_Memory");
309         bindFunc(cast(void**)&FT_Done_Memory, "FT_Done_Memory");
310         bindFunc(cast(void**)&FT_Stream_Open, "FT_Stream_Open");
311         bindFunc(cast(void**)&FT_Stream_New, "FT_Stream_New");
312         bindFunc(cast(void**)&FT_Stream_Free, "FT_Stream_Free");
313         bindFunc(cast(void**)&FT_Stream_OpenMemory, "FT_Stream_OpenMemory");
314         bindFunc(cast(void**)&FT_Stream_Close, "FT_Stream_Close");
315         bindFunc(cast(void**)&FT_Stream_Seek, "FT_Stream_Seek");
316         bindFunc(cast(void**)&FT_Stream_Skip, "FT_Stream_Skip");
317         bindFunc(cast(void**)&FT_Stream_Pos, "FT_Stream_Pos");
318         bindFunc(cast(void**)&FT_Stream_Read, "FT_Stream_Read");
319         bindFunc(cast(void**)&FT_Stream_ReadAt, "FT_Stream_ReadAt");
320         bindFunc(cast(void**)&FT_Stream_TryRead, "FT_Stream_TryRead");
321         bindFunc(cast(void**)&FT_Stream_EnterFrame, "FT_Stream_EnterFrame");
322         bindFunc(cast(void**)&FT_Stream_ExitFrame, "FT_Stream_ExitFrame");
323         bindFunc(cast(void**)&FT_Stream_ExtractFrame, "FT_Stream_ExtractFrame");
324         bindFunc(cast(void**)&FT_Stream_ReleaseFrame, "FT_Stream_ReleaseFrame");
325         bindFunc(cast(void**)&FT_Stream_GetChar, "FT_Stream_GetChar");
326         bindFunc(cast(void**)&FT_Stream_GetShort, "FT_Stream_GetShort");
327         bindFunc(cast(void**)&FT_Stream_GetOffset, "FT_Stream_GetOffset");
328         bindFunc(cast(void**)&FT_Stream_GetLong, "FT_Stream_GetLong");
329         bindFunc(cast(void**)&FT_Stream_GetShortLE, "FT_Stream_GetShortLE");
330         bindFunc(cast(void**)&FT_Stream_GetLongLE, "FT_Stream_GetLongLE");
331         bindFunc(cast(void**)&FT_Stream_ReadChar, "FT_Stream_ReadChar");
332         bindFunc(cast(void**)&FT_Stream_ReadShort, "FT_Stream_ReadShort");
333         bindFunc(cast(void**)&FT_Stream_ReadOffset, "FT_Stream_ReadOffset");
334         bindFunc(cast(void**)&FT_Stream_ReadLong, "FT_Stream_ReadLong");
335         bindFunc(cast(void**)&FT_Stream_ReadShortLE, "FT_Stream_ReadShortLE");
336         bindFunc(cast(void**)&FT_Stream_ReadLongLE, "FT_Stream_ReadLongLE");
337         bindFunc(cast(void**)&FT_Stream_ReadFields, "FT_Stream_ReadFields");
338         bindFunc(cast(void**)&FT_Trace_Get_Count, "FT_Trace_Get_Count");
339         bindFunc(cast(void**)&FT_Trace_Get_Name, "FT_Trace_Get_Name");
340         bindFunc(cast(void**)&ft_debug_init, "ft_debug_init");
341         bindFunc(cast(void**)&FT_SqrtFixed, "FT_SqrtFixed");
342         bindFunc(cast(void**)&FT_Raccess_Guess, "FT_Raccess_Guess");
343         bindFunc(cast(void**)&FT_Raccess_Get_HeaderInfo, "FT_Raccess_Get_HeaderInfo");
344         bindFunc(cast(void**)&FT_Raccess_Get_DataOffsets, "FT_Raccess_Get_DataOffsets");
345         bindFunc(cast(void**)&ft_validator_init, "ft_validator_init");
346         bindFunc(cast(void**)&ft_validator_run, "ft_validator_run");
347         bindFunc(cast(void**)&ft_validator_error, "ft_validator_error");
348         +/
349     }
350 }
351 
352 DerelictFTLoader DerelictFT;
353 
354 static this()
355 {
356     DerelictFT = new DerelictFTLoader();
357 }
358 
359 static ~this()
360 {
361     if(SharedLibLoader.isAutoUnloadEnabled())
362         DerelictFT.unload();
363 }