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