]> gitweb.factorcode.org Git - factor.git/blob - library/freetype/freetype.factor
cargo-culting freetype fix for amd64
[factor.git] / library / freetype / freetype.factor
1 ! Copyright (C) 2005 Slava Pestov.
2 ! See http://factor.sf.net/license.txt for BSD license.
3 USING: alien kernel ;
4 IN: freetype
5
6 ! Some code to render TrueType fonts with OpenGL.
7
8 "freetype" {
9     { [ os "macosx" = ] [ "libfreetype.dylib" ] }
10     { [ os "win32" = ] [ "freetype6.dll" ] }
11     { [ t ] [ "libfreetype.so.6" ] }
12 } cond "cdecl" add-library
13
14 LIBRARY: freetype
15
16 TYPEDEF: uchar FT_Byte
17 TYPEDEF: uchar* FT_Bytes
18 TYPEDEF: char FT_Char
19 TYPEDEF: int FT_Int
20 TYPEDEF: int FT_Int32
21 TYPEDEF: uint FT_UInt
22 TYPEDEF: short FT_Short
23 TYPEDEF: ushort FT_UShort
24 TYPEDEF: long FT_Long
25 TYPEDEF: ulong FT_ULong
26 TYPEDEF: uchar FT_Bool
27 TYPEDEF: cell FT_Offset
28 TYPEDEF: int FT_PtrDist
29 TYPEDEF: char FT_String
30 TYPEDEF: int FT_Tag
31 TYPEDEF: int FT_Error
32 TYPEDEF: long FT_Fixed
33 TYPEDEF: void* FT_Pointer
34 TYPEDEF: long FT_Pos
35 TYPEDEF: ushort FT_UFWord
36 TYPEDEF: short FT_F2Dot14
37 TYPEDEF: long FT_F26Dot6
38
39 FUNCTION: FT_Error FT_Init_FreeType ( void* library ) ;
40
41 ! circular reference between glyph and face
42 TYPEDEF: void face
43 TYPEDEF: void glyph
44
45 BEGIN-STRUCT: glyph
46     FIELD: void*    library
47     FIELD: face*    face
48     FIELD: glyph*   next
49     FIELD: FT_UInt  reserved
50     FIELD: void*    generic
51     FIELD: void*    generic
52
53     FIELD: FT_Pos   width
54     FIELD: FT_Pos   height
55                   
56     FIELD: FT_Pos   hori-bearing-x
57     FIELD: FT_Pos   hori-bearing-y
58     FIELD: FT_Pos   hori-advance
59                   
60     FIELD: FT_Pos   vert-bearing-x
61     FIELD: FT_Pos   vert-bearing-y
62     FIELD: FT_Pos   vert-advance
63
64     FIELD: FT_Fixed linear-hori-advance
65     FIELD: FT_Fixed linear-vert-advance
66     FIELD: FT_Pos   advance-x
67     FIELD: FT_Pos   advance-y
68                     
69     FIELD: long     format
70                     
71     FIELD: int      bitmap-rows
72     FIELD: int      bitmap-width
73     FIELD: int      bitmap-pitch
74     FIELD: uchar*   bitmap-buffer
75     FIELD: short    bitmap-num-grays
76     FIELD: char     bitmap-pixel-mode
77     FIELD: char     bitmap-palette-mode
78     FIELD: void*    bitmap-palette
79
80     FIELD: FT_Int   bitmap-left
81     FIELD: FT_Int   bitmap-top
82
83     FIELD: short    n-contours
84     FIELD: short    n-points
85
86     FIELD: void*    points
87     FIELD: char*    tags
88     FIELD: short*   contours
89
90     FIELD: int      outline-flags
91                     
92     FIELD: FT_UInt  num_subglyphs
93     FIELD: void*    subglyphs
94                     
95     FIELD: void*    control-data
96     FIELD: long     control-len
97                     
98     FIELD: FT_Pos   lsb-delta
99     FIELD: FT_Pos   rsb-delta
100                     
101     FIELD: void*    other
102 END-STRUCT
103
104 BEGIN-STRUCT: face-size
105     FIELD: face*     face
106     FIELD: void*     generic
107     FIELD: void*     generic
108
109     FIELD: FT_UShort x-ppem
110     FIELD: FT_UShort y-ppem
111                      
112     FIELD: FT_Fixed  x-scale
113     FIELD: FT_Fixed  y-scale
114                      
115     FIELD: FT_Pos    ascender
116     FIELD: FT_Pos    descender
117     FIELD: FT_Pos    height
118     FIELD: FT_Pos    max-advance
119 END-STRUCT
120
121 BEGIN-STRUCT: face
122     FIELD: FT_Long    num-faces
123     FIELD: FT_Long    index
124                       
125     FIELD: FT_Long    flags
126     FIELD: FT_Long    style-flags
127                       
128     FIELD: FT_Long    num-glyphs
129                       
130     FIELD: FT_Char*   family-name
131     FIELD: FT_Char*   style-name
132                       
133     FIELD: FT_Int     num-fixed-sizes
134     FIELD: void*      available-sizes
135                       
136     FIELD: FT_Int     num-charmaps
137     FIELD: void*      charmaps
138                       
139     FIELD: void*      generic
140     FIELD: void*      generic
141                       
142     FIELD: FT_Pos     x-min
143     FIELD: FT_Pos     y-min
144     FIELD: FT_Pos     x-max
145     FIELD: FT_Pos     y-max
146                       
147     FIELD: FT_UShort  units-per-em
148     FIELD: FT_Short   ascender
149     FIELD: FT_Short   descender
150     FIELD: FT_Short   height
151                       
152     FIELD: FT_Short   max-advance-width
153     FIELD: FT_Short   max-advance-height
154                       
155     FIELD: FT_Short   underline-position
156     FIELD: FT_Short   underline-thickness
157                       
158     FIELD: glyph*     glyph
159     FIELD: face-size* size
160     FIELD: void*      charmap
161 END-STRUCT
162
163 FUNCTION: FT_Error FT_New_Face ( void* library, FT_Char* font, FT_Long index, face* face ) ;
164
165 FUNCTION: FT_Error FT_Set_Char_Size ( face* face, FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horizontal_dpi, FT_UInt vertical_dpi ) ;
166
167 FUNCTION: FT_Error FT_Load_Char ( face* face, FT_ULong charcode, FT_Int32 load_flags ) ;
168
169 BEGIN-ENUM: 0
170     ENUM: FT_RENDER_MODE_NORMAL
171     ENUM: FT_RENDER_MODE_LIGHT
172     ENUM: FT_RENDER_MODE_MONO
173     ENUM: FT_RENDER_MODE_LCD
174     ENUM: FT_RENDER_MODE_LCD_V
175 END-ENUM
176
177 FUNCTION: int FT_Render_Glyph ( glyph* slot, int render_mode ) ;
178
179 FUNCTION: void FT_Done_Face ( face* face ) ;
180
181 FUNCTION: void FT_Done_FreeType ( void* library ) ;
182
183 FUNCTION: FT_Long FT_MulFix ( FT_Long a, FT_Long b ) ;