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.allegro5.functions;
29 
30 private {
31     import core.stdc.stdarg,
32            core.stdc.stdint,
33            core.stdc.time;
34 
35     import derelict.util.system;
36     import derelict.allegro5.types;
37 }
38 
39 nothrow {
40     // memory.h
41     void* al_malloc(size_t n,int line = __LINE__,const(char)* file = __FILE__.ptr) {
42         return al_malloc_with_context(n,line,file,"");
43     }
44 
45     void al_free(void* p,int line = __LINE__,const(char)* file = __FILE__.ptr) {
46         al_free_with_context(p,line,file,"");
47     }
48 
49     void* al_realloc(void* p,size_t n,int line = __LINE__,const(char)* file = __FILE__.ptr) {
50         return al_realloc_with_context(p,n,line,file,"");
51     }
52 
53     void* al_calloc(size_t c,size_t n,int line = __LINE__,const(char)* file = __FILE__.ptr) {
54         return al_calloc_with_context(c,n,line,file,"");
55     }
56 
57     // system.h
58     bool al_init() {
59         import core.stdc.stdlib;
60         return al_install_system(ALLEGRO_VERSION_INT,&atexit);
61     }
62 }
63 
64 
65 extern(C) @nogc nothrow {
66     // altime.h
67     alias da_al_get_time = double function();
68     alias da_al_rest = void function(double);
69     alias da_al_init_timeout = void function(ALLEGRO_TIMEOUT*,double);
70 
71     // base.h
72     alias da_al_get_allegro_version = uint function();
73     alias da_al_run_main = int function(int,char**,int function(int,char**));
74 
75     // bitmap.h
76     alias da_al_set_new_bitmap_format = void function(int);
77     alias da_al_set_new_bitmap_flags = void function(int);
78     alias da_al_get_new_bitmap_format = int function();
79     alias da_al_get_new_bitmap_flags = int function();
80     alias da_al_add_new_bitmap_flag = void function(int);
81 
82     alias da_al_get_bitmap_width = int function(ALLEGRO_BITMAP*);
83     alias da_al_get_bitmap_height = int function(ALLEGRO_BITMAP*);
84     alias da_al_get_bitmap_format = int function(ALLEGRO_BITMAP*);
85     alias da_al_get_bitmap_flags = int function(ALLEGRO_BITMAP*);
86 
87     alias da_al_create_bitmap = ALLEGRO_BITMAP* function(int,int);
88     alias da_al_destroy_bitmap = void function(ALLEGRO_BITMAP*);
89 
90     alias da_al_put_pixel = void function(int,int,ALLEGRO_COLOR);
91     alias da_al_put_blended_pixel = void function(int,int,ALLEGRO_COLOR);
92     alias da_al_get_pixel = ALLEGRO_COLOR function(ALLEGRO_BITMAP*,int,int);
93 
94     alias da_al_convert_mask_to_alpha = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR);
95 
96     alias da_al_set_clipping_rectangle = void function(int,int,int,int);
97     alias da_al_reset_clipping_rectangle = void function();
98     alias da_al_get_clipping_rectangle = void function(int*,int*,int*,int*);
99 
100     alias da_al_create_sub_bitmap = ALLEGRO_BITMAP* function (ALLEGRO_BITMAP*,int,int,int,int);
101     alias da_al_is_sub_bitmap = bool function(ALLEGRO_BITMAP*);
102     alias da_al_get_parent_bitmap = ALLEGRO_BITMAP* function(ALLEGRO_BITMAP*);
103     alias da_al_get_bitmap_x = int function(ALLEGRO_BITMAP*);
104     alias da_al_get_bitmap_y = int function(ALLEGRO_BITMAP*);
105     alias da_al_reparent_bitmap = void function(ALLEGRO_BITMAP*,ALLEGRO_BITMAP*,int,int,int,int);
106 
107     alias da_al_clone_bitmap = ALLEGRO_BITMAP* function(ALLEGRO_BITMAP*);
108     alias da_al_convert_bitmap = void function(ALLEGRO_BITMAP*);
109     alias da_al_convert_memory_bitmaps = void function();
110 
111     // bitmap_draw.h
112     alias da_al_draw_bitmap = void function(ALLEGRO_BITMAP*,float,float,int);
113     alias da_al_draw_bitmap_region = void function(ALLEGRO_BITMAP*,float,float,float,float,float,float,int);
114     alias da_al_draw_scaled_bitmap = void function(ALLEGRO_BITMAP*,float,float,float,float,float,float,float,float,int);
115     alias da_al_draw_rotated_bitmap = void function(ALLEGRO_BITMAP*,float,float,float,float,float,int);
116     alias da_al_draw_scaled_rotated_bitmap = void function(ALLEGRO_BITMAP*,float,float,float,float,float,float,float,int);
117 
118     alias da_al_draw_tinted_bitmap = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR,float,float,int);
119     alias da_al_draw_tinted_bitmap_region = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR,float,float,float,float,float,float,int);
120     alias da_al_draw_tinted_scaled_bitmap = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR,float,float,float,float,float,float,float,float,int);
121     alias da_al_draw_tinted_rotated_bitmap = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR,float,float,float,float,float,int);
122     alias da_al_draw_tinted_scaled_rotated_bitmap = void function(ALLEGRO_BITMAP*,ALLEGRO_COLOR,float,float,float,float,float,float,float,int);
123     alias da_al_draw_tinted_scaled_rotated_bitmap_region = void function(ALLEGRO_BITMAP*,float,float,float,float,ALLEGRO_COLOR,float,float,float,float,float,float,float,int);
124 
125     // bitmap_io.h
126     alias da_al_register_bitmap_loader = bool function(const(char)*,ALLEGRO_IIO_LOADER_FUNCTION);
127     alias da_al_register_bitmap_saver = bool function(const(char)*,ALLEGRO_IIO_SAVER_FUNCTION);
128     alias da_al_register_bitmap_loader_f = bool function(const(char)*,ALLEGRO_IIO_FS_LOADER_FUNCTION);
129     alias da_al_register_bitmap_saver_f = bool function(const(char)*,ALLEGRO_IIO_FS_SAVER_FUNCTION);
130     alias da_al_register_bitmap_identifier = bool function(const(char)*, ALLEGRO_IIO_IDENTIFIER_FUNCTION);
131     alias da_al_load_bitmap = ALLEGRO_BITMAP* function(const(char)*);
132     alias da_al_load_bitmap_flags = ALLEGRO_BITMAP* function(const(char)*,int);
133     alias da_al_load_bitmap_f = ALLEGRO_BITMAP* function(ALLEGRO_FILE*,const(char)*);
134     alias da_al_load_bitmap_flags_f = ALLEGRO_BITMAP* function(ALLEGRO_FILE*,const(char)*,int);
135     alias da_al_save_bitmap = bool function(const(char)*,ALLEGRO_BITMAP*);
136     alias da_al_save_bitmap_f = bool function(ALLEGRO_FILE*,const(char)*,ALLEGRO_BITMAP*);
137     alias da_al_identify_bitmap_f = const(char)* function(ALLEGRO_FILE*);
138     alias da_al_identify_bitmap = const(char)* function(const(char)*);
139 
140     // bitmap_lock.h
141     alias da_al_lock_bitmap = ALLEGRO_LOCKED_REGION* function(ALLEGRO_BITMAP*,int,int);
142     alias da_al_lock_bitmap_region = ALLEGRO_LOCKED_REGION* function(ALLEGRO_BITMAP*,int,int,int,int,int,int);
143     alias da_al_lock_bitmap_blocked = ALLEGRO_LOCKED_REGION* function(ALLEGRO_BITMAP*,int);
144     alias da_al_lock_bitmap_region_blocked = ALLEGRO_LOCKED_REGION* function(ALLEGRO_BITMAP*,int,int,int,int,int);
145     alias da_al_unlock_bitmap = void function(ALLEGRO_BITMAP*);
146     alias da_al_is_bitmap_locked = bool function(ALLEGRO_BITMAP*);
147 
148     // blender.h
149     alias da_al_set_blender = void function(int,int,int);
150     alias da_al_set_blend_color = void function(ALLEGRO_COLOR);
151     alias da_al_get_blender = void function(int*,int*,int*);
152     alias da_al_get_blend_color = ALLEGRO_COLOR function();
153     alias da_al_set_separate_blender = void function(int,int,int,int,int,int);
154     alias da_al_get_separate_blender = void function(int*,int*,int*,int*,int*,int*);
155 
156     // clipboard.h
157     alias da_al_get_clipboard_text = char* function(ALLEGRO_DISPLAY*);
158     alias da_al_set_clipboard_text = bool function(ALLEGRO_DISPLAY*, const(char)*);
159     alias da_al_clipboard_has_text = bool function(ALLEGRO_DISPLAY*);
160 
161     // color.h
162     alias da_al_map_rgb = ALLEGRO_COLOR function(ubyte,ubyte,ubyte);
163     alias da_al_map_rgba = ALLEGRO_COLOR function(ubyte,ubyte,ubyte,ubyte);
164     alias da_al_map_rgb_f = ALLEGRO_COLOR function(float,float,float);
165     alias da_al_map_rgba_f = ALLEGRO_COLOR function(float,float,float,float);
166     alias da_al_premul_rgba = ALLEGRO_COLOR function(ubyte,ubyte,ubyte,ubyte);
167     alias da_al_premul_rgba_f = ALLEGRO_COLOR function(float,float,float,float);
168 
169     alias da_al_unmap_rgb = void function(ALLEGRO_COLOR,ubyte*,ubyte*,ubyte*);
170     alias da_al_unmap_rgba = void function(ALLEGRO_COLOR,ubyte*,ubyte*,ubyte*,ubyte*);
171     alias da_al_unmap_rgb_f = void function(ALLEGRO_COLOR,float*,float*,float*);
172     alias da_al_unmap_rgba_f = void function(ALLEGRO_COLOR,float*,float*,float*,float*);
173 
174     alias da_al_get_pixel_size = int function(int);
175     alias da_al_get_pixel_format_bits = int function(int);
176     alias da_al_get_pixel_block_size = int function(int);
177     alias da_al_get_pixel_block_width = int function(int);
178     alias da_al_get_pixel_block_height = int function(int);
179 
180     // config.h
181     alias da_al_create_config = ALLEGRO_CONFIG* function();
182     alias da_al_add_config_section = void function(ALLEGRO_CONFIG*,const(char)*);
183     alias da_al_set_config_value = void function(ALLEGRO_CONFIG*,const(char)*,const(char)*,const(char)*);
184     alias da_al_add_config_comment = void function(ALLEGRO_CONFIG*,const(char)*,const(char)*);
185     alias da_al_get_config_value = const(char)* function(const(ALLEGRO_CONFIG)*,const(char)*,const(char)*);
186     alias da_al_load_config_file = ALLEGRO_CONFIG* function(const(char)*);
187     alias da_al_load_config_file_f = ALLEGRO_CONFIG* function(ALLEGRO_FILE*);
188     alias da_al_save_config_file = bool function(const(char)*,const(ALLEGRO_CONFIG)*);
189     alias da_al_save_config_file_f = bool function(ALLEGRO_FILE*,const(ALLEGRO_CONFIG)*);
190     alias da_al_merge_config_into = void function(ALLEGRO_CONFIG*,const(ALLEGRO_CONFIG)*);
191     alias da_al_merge_config = ALLEGRO_CONFIG* function(const(ALLEGRO_CONFIG)*,const(ALLEGRO_CONFIG)*);
192     alias da_al_destroy_config = void function(ALLEGRO_CONFIG*);
193     alias da_al_remove_config_section = bool function(ALLEGRO_CONFIG*,const(char)*,const(char)*);
194     alias da_al_remove_config_key = bool function(ALLEGRO_CONFIG*,const(char)*,const(char)*);
195 
196     alias da_al_get_first_config_section = const(char)* function(const(ALLEGRO_CONFIG)*,ALLEGRO_CONFIG_SECTION**);
197     alias da_al_get_next_config_section = const(char)* function(ALLEGRO_CONFIG_SECTION**);
198     alias da_al_get_first_config_entry = const(char)* function(const(ALLEGRO_CONFIG)*,const(char)*,ALLEGRO_CONFIG_ENTRY**);
199     alias da_al_get_next_config_entry = const(char)* function(ALLEGRO_CONFIG_ENTRY**);
200 
201     // cpu.h
202     alias da_al_get_cpu_count = int function();
203     alias da_al_get_ram_size = int function();
204 
205     // display.h
206     alias da_al_set_new_display_refresh_rate = void function(int);
207     alias da_al_set_new_display_flags = void function(int);
208     alias da_al_get_new_display_refresh_rate = int function();
209     alias da_al_get_new_display_flags = int function();
210 
211     alias da_al_get_display_width = int function(ALLEGRO_DISPLAY*);
212     alias da_al_get_display_height = int function(ALLEGRO_DISPLAY*);
213     alias da_al_get_display_format = int function(ALLEGRO_DISPLAY*);
214     alias da_al_get_display_refresh_rate = int function(ALLEGRO_DISPLAY*);
215     alias da_al_get_display_flags = int function(ALLEGRO_DISPLAY*);
216     alias da_al_get_display_orientation = int function(ALLEGRO_DISPLAY*);
217     alias da_al_set_display_flag = bool function(ALLEGRO_DISPLAY*,int,bool);
218 
219     alias da_al_create_display = ALLEGRO_DISPLAY* function(int,int);
220     alias da_al_destroy_display = void function(ALLEGRO_DISPLAY*);
221     alias da_al_get_current_display = ALLEGRO_DISPLAY* function();
222     alias da_al_set_target_bitmap = void function(ALLEGRO_BITMAP*);
223     alias da_al_set_target_backbuffer = void function(ALLEGRO_DISPLAY*);
224     alias da_al_get_backbuffer = ALLEGRO_BITMAP* function(ALLEGRO_DISPLAY*);
225     alias da_al_get_target_bitmap = ALLEGRO_BITMAP* function();
226 
227     alias da_al_acknowledge_resize = bool function(ALLEGRO_DISPLAY*);
228     alias da_al_resize_display = bool function(ALLEGRO_DISPLAY*);
229     alias da_al_flip_display = void function();
230     alias da_al_update_display_region = void function(int,int,int,int);
231     alias da_al_is_compatible_bitmap = bool function(ALLEGRO_BITMAP*);
232 
233     alias da_al_wait_for_vsync = bool function();
234 
235     alias da_al_get_display_event_source = ALLEGRO_EVENT_SOURCE* function(ALLEGRO_DISPLAY*);
236 
237     alias da_al_set_display_icon = void function(ALLEGRO_DISPLAY*,ALLEGRO_BITMAP*);
238     alias da_al_set_display_icons = void function(ALLEGRO_DISPLAY*,int,ALLEGRO_BITMAP**);
239 
240     alias da_al_get_new_display_adapter = int function();
241     alias da_al_set_new_display_adapter = void function(int);
242     alias da_al_set_new_window_position = void function(int,int);
243     alias da_al_get_new_window_position = void function(int*,int*);
244     alias da_al_set_window_position = void function(ALLEGRO_DISPLAY*,int,int);
245     alias da_al_get_window_position = void function(ALLEGRO_DISPLAY*,int*,int*);
246     alias da_al_set_window_constraints = bool function(ALLEGRO_DISPLAY*,int,int,int,int);
247     alias da_al_get_window_constraints = bool function(ALLEGRO_DISPLAY*,int*,int*,int*,int*);
248 
249     alias da_al_set_window_title = void function(ALLEGRO_DISPLAY*,const(char)*);
250 
251     alias da_al_set_new_display_option = void function(int,int,int);
252     alias da_al_get_new_display_option = int function(int,int*);
253     alias da_al_reset_new_display_options = void function();
254     alias da_al_set_display_option = void function(ALLEGRO_DISPLAY*,int,int);
255     alias da_al_get_display_option = int function(ALLEGRO_DISPLAY*,int);
256 
257     alias da_al_hold_bitmap_drawing = void function(bool);
258     alias da_al_is_bitmap_drawing_held = bool function();
259 
260     alias da_al_acknowledge_drawing_halt = void function(ALLEGRO_DISPLAY*);
261     alias da_al_acknowledge_drawing_resume = void function(ALLEGRO_DISPLAY*);
262 
263     // drawing.h
264     alias da_al_clear_to_color = void function(ALLEGRO_COLOR);
265     alias da_al_clear_depth_buffer = void function(float);
266     alias da_al_draw_pixel = void function(float,float,ALLEGRO_COLOR);
267 
268     // error.h
269     alias da_al_get_errno = int function();
270     alias da_al_set_errno = void function(int);
271 
272     // events.h
273     alias da_al_init_user_event_source = void function(ALLEGRO_EVENT_SOURCE*);
274     alias da_al_destroy_user_event_source = void function(ALLEGRO_EVENT_SOURCE*);
275     alias da_al_emit_user_event = bool function(ALLEGRO_EVENT_SOURCE*,ALLEGRO_EVENT*,void function(ALLEGRO_USER_EVENT*));
276     alias da_al_unref_user_event = void function(ALLEGRO_USER_EVENT*);
277     alias da_al_set_event_source_data = void function(ALLEGRO_EVENT_SOURCE*,intptr_t);
278     alias da_al_get_event_source_data = intptr_t function(const(ALLEGRO_EVENT_SOURCE*));
279 
280     alias da_al_create_event_queue = ALLEGRO_EVENT_QUEUE* function();
281     alias da_al_destroy_event_queue = void function(ALLEGRO_EVENT_QUEUE*);
282     alias da_al_is_event_source_registered = bool function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT_SOURCE*);
283     alias da_al_register_event_source = void function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT_SOURCE*);
284     alias da_al_unregister_event_source = void function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT_SOURCE*);
285     alias da_al_pause_event_queue = void function(ALLEGRO_EVENT_QUEUE*);
286     alias da_al_is_event_queue_empty = bool function(ALLEGRO_EVENT_QUEUE*);
287     alias da_al_get_next_event = bool function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT*);
288     alias da_al_peek_next_event = bool function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT*);
289     alias da_al_drop_next_event = bool function(ALLEGRO_EVENT_QUEUE*);
290     alias da_al_flush_event_queue = void function(ALLEGRO_EVENT_QUEUE*);
291     alias da_al_wait_for_event = void function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT*);
292     alias da_al_wait_for_event_timed = bool function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT*,float);
293     alias da_al_wait_for_event_until = bool function(ALLEGRO_EVENT_QUEUE*,ALLEGRO_EVENT*,ALLEGRO_TIMEOUT*);
294 
295     // file.h
296     alias da_al_fopen = ALLEGRO_FILE* function(const(char)*,const(char)*);
297     alias da_al_fopen_interface = ALLEGRO_FILE* function(const(ALLEGRO_FILE_INTERFACE)*,const(char)*,const(char)*);
298     alias da_al_create_file_handle = ALLEGRO_FILE* function(const(ALLEGRO_FILE_INTERFACE)*,void*);
299     alias da_al_fclose = void function(ALLEGRO_FILE*);
300     alias da_al_fread = size_t function(ALLEGRO_FILE*,void*,size_t);
301     alias da_al_fwrite = size_t function(ALLEGRO_FILE*,const(void)*,size_t);
302     alias da_al_fflush = bool function(ALLEGRO_FILE*);
303     alias da_al_ftell = long function(ALLEGRO_FILE*);
304     alias da_al_fseek = bool function(ALLEGRO_FILE*,long,int);
305     alias da_al_feof = bool function(ALLEGRO_FILE*);
306     alias da_al_ferror = bool function(ALLEGRO_FILE*);
307     alias da_al_ferrmsg = const(char)* function(ALLEGRO_FILE*);
308     alias da_al_fclearerr = void function(ALLEGRO_FILE*);
309     alias da_al_fungetc = int function(ALLEGRO_FILE*,int);
310     alias da_al_fsize = long function(ALLEGRO_FILE*);
311 
312     alias da_al_fgetc = int function(ALLEGRO_FILE*);
313     alias da_al_fputc = int function(ALLEGRO_FILE*,int);
314     alias da_al_fread16le = short function(ALLEGRO_FILE*);
315     alias da_al_fread16be = short function(ALLEGRO_FILE*);
316     alias da_al_fwrite16le = size_t function(ALLEGRO_FILE*,short);
317     alias da_al_fwrite16be = size_t function(ALLEGRO_FILE*,short);
318     alias da_al_fread32le = int function(ALLEGRO_FILE*);
319     alias da_al_fread32be = int function(ALLEGRO_FILE*);
320     alias da_al_fwrite32le = size_t function(ALLEGRO_FILE*,int);
321     alias da_al_fwrite32be = size_t function(ALLEGRO_FILE*,int);
322     alias da_al_fgets = char* function(ALLEGRO_FILE*);
323     alias da_al_fget_ustr = ALLEGRO_USTR* function(ALLEGRO_FILE*);
324     alias da_al_fputs = int function(ALLEGRO_FILE*,const(char)*);
325     alias da_al_fprintf = int function(ALLEGRO_FILE*,const(char)*,...);
326     alias da_al_vfprintf = int function(ALLEGRO_FILE*,const(char)*,va_list);
327 
328     alias da_al_fopen_fd = ALLEGRO_FILE* function(int,const(char)*);
329     alias da_al_make_temp_file = ALLEGRO_FILE* function(const(char)*,ALLEGRO_PATH**);
330 
331     alias da_al_fopen_slice = ALLEGRO_FILE* function(ALLEGRO_FILE*,size_t,const(char)*);
332 
333     alias da_al_get_new_file_interface = const(ALLEGRO_FILE_INTERFACE)* function();
334     alias da_al_set_new_file_interface = void function(const(ALLEGRO_FILE_INTERFACE)*);
335     alias da_al_set_standard_file_interface = void function();
336 
337     alias da_al_get_file_userdata = void* function(ALLEGRO_FILE*);
338 
339     // fshook.h
340     alias da_al_create_fs_entry = ALLEGRO_FS_ENTRY* function(const(char*));
341     alias da_al_destroy_fs_entry = void function(ALLEGRO_FS_ENTRY*);
342     alias da_al_get_fs_entry_name = const(char)* function(ALLEGRO_FS_ENTRY*);
343     alias da_al_update_fs_entry = bool function(ALLEGRO_FS_ENTRY*);
344     alias da_al_get_fs_entry_mode = uint function(ALLEGRO_FS_ENTRY*);
345     alias da_al_get_fs_entry_atime = time_t function(ALLEGRO_FS_ENTRY*);
346     alias da_al_get_fs_entry_mtime = time_t function(ALLEGRO_FS_ENTRY*);
347     alias da_al_get_fs_entry_ctime = time_t function(ALLEGRO_FS_ENTRY*);
348     alias da_al_get_fs_entry_size = off_t function(ALLEGRO_FS_ENTRY*);
349     alias da_al_fs_entry_exists = bool function(ALLEGRO_FS_ENTRY*);
350     alias da_al_remove_fs_entry = bool function(ALLEGRO_FS_ENTRY*);
351 
352     alias da_al_open_directory = bool function(ALLEGRO_FS_ENTRY*);
353     alias da_al_read_directory = ALLEGRO_FS_ENTRY* function(ALLEGRO_FS_ENTRY*);
354     alias da_al_close_directory = bool function(ALLEGRO_FS_ENTRY*);
355 
356     alias da_al_filename_exists = bool function(const(char)*);
357     alias da_al_remove_filename = bool function(const(char)*);
358     alias da_al_get_current_directory = char* function();
359     alias da_al_change_directory = bool function(const(char)*);
360     alias da_al_make_directory = bool function(const(char)*);
361 
362     alias da_al_open_fs_entry = ALLEGRO_FILE* function(ALLEGRO_FS_ENTRY*,const(char)*);
363 
364     alias da_al_for_each_fs_entry = int function(ALLEGRO_FS_ENTRY*,foreachCallback,void*);
365 
366     alias da_al_get_fs_interface = const(ALLEGRO_FS_INTERFACE)* function();
367     alias da_al_set_fs_interface = void function(const(ALLEGRO_FS_INTERFACE)*);
368     alias da_al_set_standard_fs_interface = void function();
369 
370     // fullscreen_mode.h
371     alias da_al_get_num_display_modes = int function();
372     alias da_al_get_display_mode = ALLEGRO_DISPLAY_MODE* function(int,ALLEGRO_DISPLAY_MODE*);
373 
374     // joystick.h
375     alias da_al_install_joystick = bool function();
376     alias da_al_uninstall_joystick = void function();
377     alias da_al_is_joystick_installed = bool function();
378     alias da_al_reconfigure_joysticks = bool function();
379 
380     alias da_al_get_num_joysticks = int function();
381     alias da_al_get_joystick = ALLEGRO_JOYSTICK* function(int);
382     alias da_al_release_joystick = void function(ALLEGRO_JOYSTICK*);
383     alias da_al_get_joystick_active = bool function(ALLEGRO_JOYSTICK*);
384     alias da_al_get_joystick_name = const(char)* function(ALLEGRO_JOYSTICK*);
385 
386     alias da_al_get_joystick_num_sticks = int function(ALLEGRO_JOYSTICK*);
387     alias da_al_get_joystick_stick_flags = int function(ALLEGRO_JOYSTICK*,int);
388     alias da_al_get_joystick_stick_name = const(char)* function(ALLEGRO_JOYSTICK*,int);
389 
390     alias da_al_get_joystick_num_axes = int function(ALLEGRO_JOYSTICK*);
391     alias da_al_get_joystick_axis_name = const(char)* function(ALLEGRO_JOYSTICK*,int,int);
392 
393     alias da_al_get_joystick_num_buttons = int function(ALLEGRO_JOYSTICK*);
394     alias da_al_get_joystick_button_name = const(char)* function(ALLEGRO_JOYSTICK*,int);
395 
396     alias da_al_get_joystick_state = void function(ALLEGRO_JOYSTICK*,ALLEGRO_JOYSTICK_STATE*);
397 
398     alias da_al_get_joystick_event_source = ALLEGRO_EVENT_SOURCE* function();
399 
400     // keyboard.h
401     alias da_al_is_keyboard_installed = bool function();
402     alias da_al_install_keyboard = bool function();
403     alias da_al_uninstall_keyboard = void function();
404 
405     alias da_al_set_keyboard_leds = bool function(int);
406 
407     alias da_al_keycode_to_name = const(char)* function(int);
408 
409     alias da_al_get_keyboard_state = void function(ALLEGRO_KEYBOARD_STATE*);
410     alias da_al_key_down = bool function(const(ALLEGRO_KEYBOARD_STATE)*,int);
411 
412     alias da_al_get_keyboard_event_source = ALLEGRO_EVENT_SOURCE* function();
413 
414     // memory.h
415     alias da_al_malloc_with_context = void* function(size_t,int,const(char)*,const(char)*);
416     alias da_al_free_with_context = void function(void*,int,const(char)*,const(char)*);
417     alias da_al_realloc_with_context = void* function(void*,size_t,int,const(char)*,const(char)*);
418     alias da_al_calloc_with_context = void* function(size_t,size_t,int,const(char)*,const(char)*);
419 
420     // monitor.h
421     alias da_al_get_num_video_adapters = int function();
422     alias da_al_get_monitor_info = bool function(int,ALLEGRO_MONITOR_INFO*);
423 
424     // mouse.h
425     alias da_al_is_mouse_installed = bool function();
426     alias da_al_install_mouse = bool function();
427     alias da_al_uninstall_mouse = void function();
428     alias da_al_get_mouse_num_buttons = uint function();
429     alias da_al_get_mouse_num_axes = uint function();
430     alias da_al_set_mouse_xy = bool function(ALLEGRO_DISPLAY*,int,int);
431     alias da_al_set_mouse_z = bool function(int);
432     alias da_al_set_mouse_w = bool function(int);
433     alias da_al_set_mouse_axis = bool function(int,int);
434     alias da_al_get_mouse_state = void function(ALLEGRO_MOUSE_STATE*);
435     alias da_al_mouse_button_down = bool function(const(ALLEGRO_MOUSE_STATE)*,int);
436     alias da_al_get_mouse_state_axis = int function(const(ALLEGRO_MOUSE_STATE)*,int);
437     alias da_al_get_mouse_cursor_position = bool function(int*,int*);
438     alias da_al_grab_mouse = bool function(ALLEGRO_DISPLAY*);
439     alias da_al_ungrab_mouse = bool function();
440     alias da_al_set_mouse_wheel_precision = void function(int);
441     alias da_al_get_mouse_wheel_precision = int function();
442 
443     alias da_al_get_mouse_event_source = ALLEGRO_EVENT_SOURCE* function();
444 
445     // mouse_cursor.h
446     alias da_al_create_mouse_cursor = ALLEGRO_MOUSE_CURSOR* function(ALLEGRO_BITMAP*,int,int);
447     alias da_al_destroy_mouse_cursor = void function(ALLEGRO_MOUSE_CURSOR*);
448     alias da_al_set_mouse_cursor = bool function(ALLEGRO_DISPLAY*,ALLEGRO_MOUSE_CURSOR*);
449     alias da_al_set_system_mouse_cursor = bool function(ALLEGRO_DISPLAY*,ALLEGRO_SYSTEM_MOUSE_CURSOR);
450     alias da_al_show_mouse_cursor = bool function(ALLEGRO_DISPLAY*);
451     alias da_al_hide_mouse_cursor = bool function(ALLEGRO_DISPLAY*);
452 
453     // path.h
454     alias da_al_create_path = ALLEGRO_PATH* function(const(char)*);
455     alias da_al_create_path_for_directory = ALLEGRO_PATH* function(const(char)*);
456     alias da_al_clone_path = ALLEGRO_PATH* function(const(ALLEGRO_PATH)*);
457 
458     alias da_al_get_path_num_components = int function(const(ALLEGRO_PATH)*);
459     alias da_al_get_path_component = const(char)* function(const(ALLEGRO_PATH)*,int);
460     alias da_al_replace_path_component = void function(ALLEGRO_PATH*,int,const(char)*);
461     alias da_al_remove_path_component = void function(ALLEGRO_PATH*,int);
462     alias da_al_insert_path_component = void function(ALLEGRO_PATH*,int,const(char)*);
463     alias da_al_get_path_tail = const(char)* function(const(ALLEGRO_PATH)*);
464     alias da_al_drop_path_tail = void function(ALLEGRO_PATH*);
465     alias da_al_append_path_component = void function(ALLEGRO_PATH*,const(char)*);
466     alias da_al_join_paths = bool function(ALLEGRO_PATH*,const(ALLEGRO_PATH)*);
467     alias da_al_rebase_path = bool function(const(ALLEGRO_PATH)*,ALLEGRO_PATH*);
468     alias da_al_path_cstr = const(char)* function(const(ALLEGRO_PATH)*,char);
469     alias da_al_destroy_path = void function(ALLEGRO_PATH*);
470 
471     alias da_al_set_path_drive = void function(ALLEGRO_PATH*,const(char)*);
472     alias da_al_get_path_drive = const(char)* function(const(ALLEGRO_PATH)*);
473 
474     alias da_al_set_path_filename = void function(ALLEGRO_PATH*,const(char)*);
475     alias da_al_get_path_filename = const(char)* function(const(ALLEGRO_PATH)*);
476 
477     alias da_al_get_path_extension = const(char)* function(const(ALLEGRO_PATH)*);
478     alias da_al_set_path_extension = bool function(ALLEGRO_PATH*,const(char)*);
479     alias da_al_get_path_basename = const(char)* function(const(ALLEGRO_PATH)*);
480 
481     alias da_al_make_path_canonical = bool function(ALLEGRO_PATH*);
482 
483     // render_state.h
484     alias da_al_set_render_state = void function(ALLEGRO_RENDER_STATE,int);
485 
486     // shader.h
487     alias da_al_create_shader = ALLEGRO_SHADER* function(ALLEGRO_SHADER_PLATFORM);
488     alias da_al_attach_shader_source = bool function(ALLEGRO_SHADER*,ALLEGRO_SHADER_TYPE,const(char)*);
489     alias da_al_attach_shader_source_file = bool function(ALLEGRO_SHADER*,ALLEGRO_SHADER_TYPE,const(char)*);
490     alias da_al_build_shader = bool function(ALLEGRO_SHADER*);
491     alias da_al_get_shader_log = const(char)* function(ALLEGRO_SHADER*);
492     alias da_al_get_shader_platform = ALLEGRO_SHADER_PLATFORM function(ALLEGRO_SHADER*);
493     alias da_al_use_shader = bool function(ALLEGRO_SHADER*);
494     alias da_al_destroy_shader = bool function(ALLEGRO_SHADER*);
495 
496     alias da_al_set_shader_sampler = bool function(const(char)*,ALLEGRO_BITMAP*,int);
497     alias da_al_set_shader_matrix = bool function(const(char)*,const(ALLEGRO_TRANSFORM)*);
498     alias da_al_set_shader_int = bool function(const(char)*,int);
499     alias da_al_set_shader_float = bool function(const(char)*,float);
500     alias da_al_set_shader_int_vector = bool function(const(char)*,int,const(int)*,int);
501     alias da_al_set_shader_float_vector = bool function(const(char)*,int,const(float)*,int);
502     alias da_al_set_shader_bool = bool function(const(char)*,bool);
503 
504     alias da_al_get_default_shader_source = const(char)* function(ALLEGRO_SHADER_PLATFORM,ALLEGRO_SHADER_TYPE);
505 
506     // system.h
507     alias da_al_install_system = bool function(int,int function(void function()));
508     alias da_al_uninstall_system = void function();
509     alias da_al_is_system_installed = bool function();
510     alias da_al_get_system_driver = ALLEGRO_SYSTEM* function();
511     alias da_al_get_system_config = ALLEGRO_CONFIG* function();
512 
513     alias da_al_get_standard_path = ALLEGRO_PATH* function(int);
514     alias da_al_set_exe_name = void function(const(char)*);
515 
516     alias da_al_set_org_name = void function(const(char)*);
517     alias da_al_set_app_name = void function(const(char)*);
518     alias da_al_get_org_name = const(char)* function();
519     alias da_al_get_app_name = const(char)* function();
520 
521     alias da_al_inhibit_screensaver = bool function(bool);
522 
523     // threads.h
524     alias da_al_create_thread = ALLEGRO_THREAD* function(threadProc,void*);
525     alias da_al_start_thread = void function(ALLEGRO_THREAD*);
526     alias da_al_join_thread = void function(ALLEGRO_THREAD*,void**);
527     alias da_al_set_thread_should_stop = void function(ALLEGRO_THREAD*);
528     alias da_al_get_thread_should_stop = void function(ALLEGRO_THREAD*);
529     alias da_al_destroy_thread = void function(ALLEGRO_THREAD*);
530     alias da_al_run_detached_thread = void function(threadProc,void*);
531 
532     alias da_al_create_mutex = ALLEGRO_MUTEX* function();
533     alias da_al_create_mutex_recursive = ALLEGRO_MUTEX* function();
534     alias da_al_lock_mutex = void function(ALLEGRO_MUTEX*);
535     alias da_al_unlock_mutex = void function(ALLEGRO_MUTEX*);
536     alias da_al_destroy_mutex = void function(ALLEGRO_MUTEX*);
537 
538     alias da_al_create_cond = ALLEGRO_COND* function();
539     alias da_al_destroy_cond = void function(ALLEGRO_COND*);
540     alias da_al_wait_cond = void function(ALLEGRO_COND*,ALLEGRO_MUTEX*);
541     alias da_al_wait_cond_until = int function(ALLEGRO_COND*,ALLEGRO_MUTEX*,const(ALLEGRO_TIMEOUT)*);
542     alias da_al_broadcast_cond = void function(ALLEGRO_COND*);
543     alias da_al_signal_cond = void function(ALLEGRO_COND*);
544 
545     // timer.h
546     alias da_al_create_timer = ALLEGRO_TIMER* function(double);
547     alias da_al_destroy_timer = void function(ALLEGRO_TIMER*);
548     alias da_al_start_timer = void function(ALLEGRO_TIMER*);
549     alias da_al_stop_timer = void function(ALLEGRO_TIMER*);
550     alias da_al_resume_timer = void function(const(ALLEGRO_TIMER)*);
551     alias da_al_get_timer_started = bool function(const(ALLEGRO_TIMER)*);
552     alias da_al_get_timer_speed = double function(const(ALLEGRO_TIMER)*);
553     alias da_al_set_timer_speed = void function(ALLEGRO_TIMER*,double);
554     alias da_al_get_timer_count = long function(const(ALLEGRO_TIMER)*);
555     alias da_al_set_timer_count = void function(ALLEGRO_TIMER*,long);
556     alias da_al_add_timer_count = void function(ALLEGRO_TIMER*,long);
557     alias da_al_get_timer_event_source = ALLEGRO_EVENT_SOURCE* function(ALLEGRO_TIMER*);
558 
559     // tls.h
560     alias da_al_store_state = void function(ALLEGRO_STATE*,int);
561     alias da_al_restore_state = void function(const(ALLEGRO_STATE)*);
562 
563     // touch_input.h
564     alias da_al_is_touch_input_installed = bool function();
565     alias da_al_install_touch_input = bool function();
566     alias da_al_uninstall_touch_input = void function();
567     alias da_al_get_touch_input_state = void function(ALLEGRO_TOUCH_INPUT_STATE*);
568     alias da_al_get_touch_input_event_source = ALLEGRO_EVENT_SOURCE* function();
569 
570     // transformations.h
571     alias da_al_use_transform = void function(const(ALLEGRO_TRANSFORM)*);
572     alias da_al_use_projection_transform = void function(const(ALLEGRO_TRANSFORM)*);
573     alias da_al_copy_transform = void function(ALLEGRO_TRANSFORM*,const(ALLEGRO_TRANSFORM)*);
574     alias da_al_identity_transform = void function(ALLEGRO_TRANSFORM*);
575     alias da_al_build_transform = void function(ALLEGRO_TRANSFORM*,float,float,float,float,float);
576     alias da_al_build_camera_transform = void function(ALLEGRO_TRANSFORM*,float,float,float,float,float,float,float,float,float);
577     alias da_al_translate_transform = void function(ALLEGRO_TRANSFORM*,float,float);
578     alias da_al_translate_transform_3d = void function(ALLEGRO_TRANSFORM*,float,float,float);
579     alias da_al_rotate_transform = void function(ALLEGRO_TRANSFORM*,float);
580     alias da_al_rotate_transform_3d = void function(ALLEGRO_TRANSFORM*,float,float,float,float);
581     alias da_al_scale_transform = void function(ALLEGRO_TRANSFORM*,float,float);
582     alias da_al_scale_transform_3d = void function(ALLEGRO_TRANSFORM*,float,float,float);
583     alias da_al_transform_coordinates = void function(const(ALLEGRO_TRANSFORM)*,float*,float*);
584     alias da_al_transform_coordinates_3d = void function(const(ALLEGRO_TRANSFORM)*,float*,float*,float*);
585     alias da_al_compose_transform = void function(ALLEGRO_TRANSFORM*,const(ALLEGRO_TRANSFORM)*);
586     alias da_al_get_current_transform = const(ALLEGRO_TRANSFORM)* function();
587     alias da_al_get_current_inverse_transform = const(ALLEGRO_TRANSFORM)* function();
588     alias da_al_get_current_projection_transform = const(ALLEGRO_TRANSFORM)* function();
589     alias da_al_invert_transform = void function(ALLEGRO_TRANSFORM*);
590     alias da_al_check_inverse = int function(const(ALLEGRO_TRANSFORM)*,float);
591     alias da_al_orthographic_transform = void function(ALLEGRO_TRANSFORM*,float,float,float,float,float,float);
592     alias da_al_perspective_transform = void function(ALLEGRO_TRANSFORM*,float,float,float,float,float,float);
593     alias da_al_horizontal_shear_transform = void function(ALLEGRO_TRANSFORM*,float);
594     alias da_al_vertical_shear_transform = void function(ALLEGRO_TRANSFORM*,float);
595 
596     // utf8.h
597     alias da_al_ustr_new = ALLEGRO_USTR* function(const(char)*);
598     alias da_al_ustr_new_from_buffer = ALLEGRO_USTR* function(const(char)*,size_t);
599     alias da_al_ustr_newf = ALLEGRO_USTR* function(const(char)*,...);
600     alias da_al_ustr_free = void function(ALLEGRO_USTR*);
601     alias da_al_cstr = const(char)* function(const(ALLEGRO_USTR)*);
602     alias da_al_ustr_to_buffer = void function(const(ALLEGRO_USTR)*,char*,int);
603     alias da_al_cstr_dup = char* function(const(ALLEGRO_USTR)*);
604     alias da_al_ustr_dup = ALLEGRO_USTR* function(const(ALLEGRO_USTR)*);
605     alias da_al_ustr_dup_substr = ALLEGRO_USTR* function(const(ALLEGRO_USTR)*,int,int);
606 
607     alias da_al_ustr_empty_string = ALLEGRO_USTR* function();
608 
609     alias da_al_ref_cstr = const(ALLEGRO_USTR)* function(ALLEGRO_USTR_INFO*,const(char)*);
610     alias da_al_ref_buffer = const(ALLEGRO_USTR)* function(ALLEGRO_USTR_INFO*,const(char)*,size_t);
611     alias da_al_ref_ustr = const(ALLEGRO_USTR)* function(ALLEGRO_USTR_INFO*,const(ALLEGRO_USTR)*,int,int);
612 
613     alias da_al_ustr_size = size_t function(const(ALLEGRO_USTR)*);
614     alias da_al_ustr_length = size_t function(const(ALLEGRO_USTR)*);
615     alias da_al_ustr_offset = int function(const(ALLEGRO_USTR)*,int);
616     alias da_al_ustr_next = bool function(const(ALLEGRO_USTR)*,int*);
617     alias da_al_ustr_prev = bool function(const(ALLEGRO_USTR)*,int*);
618 
619     alias da_al_ustr_get = int function(const(ALLEGRO_USTR)*,int);
620     alias da_al_ustr_get_next = int function(const(ALLEGRO_USTR)*,int*);
621     alias da_al_ustr_prev_get = int function(const(ALLEGRO_USTR)*,int*);
622 
623     alias da_al_ustr_insert = bool function(ALLEGRO_USTR*,int,const(ALLEGRO_USTR)*);
624     alias da_al_ustr_insert_cstr = bool function(ALLEGRO_USTR*,int,const(char)*);
625     alias da_al_ustr_insert_chr = size_t function(ALLEGRO_USTR*,int,int);
626 
627     alias da_al_ustr_append = bool function(ALLEGRO_USTR*,const(ALLEGRO_USTR)*);
628     alias da_al_ustr_append_cstr = bool function(ALLEGRO_USTR*,const(char)*);
629     alias da_al_ustr_append_chr = size_t function(ALLEGRO_USTR*,int);
630     alias da_al_ustr_appendf = bool function(ALLEGRO_USTR*,const(char)*,...);
631     alias da_al_ustr_vappendf = bool function(ALLEGRO_USTR*,const(char)*,va_list);
632 
633     alias da_al_ustr_remove_chr = bool function(ALLEGRO_USTR*,int);
634     alias da_al_ustr_remove_range = bool function(ALLEGRO_USTR*,int,int);
635     alias da_al_ustr_truncate = bool function(ALLEGRO_USTR*,int);
636     alias da_al_ustr_ltrim_ws = bool function(ALLEGRO_USTR*);
637     alias da_al_ustr_rtrim_ws = bool function(ALLEGRO_USTR*);
638     alias da_al_ustr_trim_ws = bool function(ALLEGRO_USTR*);
639 
640     alias da_al_ustr_assign = bool function(ALLEGRO_USTR*,const(ALLEGRO_USTR)*);
641     alias da_al_ustr_assign_substr = bool function(ALLEGRO_USTR*,const(ALLEGRO_USTR)*,int,int);
642     alias da_al_ustr_assign_cstr = bool function(ALLEGRO_USTR*,const(char)*);
643 
644     alias da_al_ustr_set_chr = size_t function(ALLEGRO_USTR*,int,int);
645     alias da_al_ustr_replace_range = bool function(ALLEGRO_USTR*,int,int,const(ALLEGRO_USTR)*);
646 
647     alias da_al_ustr_find_chr = int function(const(ALLEGRO_USTR)*,int,int);
648     alias da_al_ustr_rfind_chr = int function(const(ALLEGRO_USTR)*,int,int);
649     alias da_al_ustr_find_set = int function(const(ALLEGRO_USTR)*,int,const(ALLEGRO_USTR)*);
650     alias da_al_ustr_find_set_cstr = int function(const(ALLEGRO_USTR)*,int,const(char)*);
651     alias da_al_ustr_find_cset = int function(const(ALLEGRO_USTR)*,int,const(ALLEGRO_USTR)*);
652     alias da_al_ustr_find_cset_cstr = int function(const(ALLEGRO_USTR)*,int,const(char)*);
653     alias da_al_ustr_find_str = int function(const(ALLEGRO_USTR)*,int,const(ALLEGRO_USTR)*);
654     alias da_al_ustr_find_cstr = int function(const(ALLEGRO_USTR)*,int,const(char)*);
655     alias da_al_ustr_rfind_str = int function(const(ALLEGRO_USTR)*,int,const(ALLEGRO_USTR)*);
656     alias da_al_ustr_rfind_cstr = int function(const(ALLEGRO_USTR)*,int,const(char)*);
657     alias da_al_ustr_find_replace = bool function(ALLEGRO_USTR*,int,const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
658     alias da_al_ustr_find_replace_cstr = bool function(ALLEGRO_USTR*,int,const(char)*,const(char)*);
659 
660     alias da_al_ustr_equal = bool function(const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
661     alias da_al_ustr_compare = int function(const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
662     alias da_al_ustr_ncompare = int function(const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
663     alias da_al_ustr_has_prefix = bool function(const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
664     alias da_al_ustr_has_prefix_cstr = bool function(const(ALLEGRO_USTR)*,const(char)*);
665     alias da_al_ustr_has_suffix = bool function(const(ALLEGRO_USTR)*,const(ALLEGRO_USTR)*);
666     alias da_al_ustr_has_suffix_cstr = bool function(const(ALLEGRO_USTR)*,const(char)*);
667 
668     alias da_al_utf8_width = size_t function(int);
669     alias da_al_utf8_encode = size_t function(char*,int);
670 
671     alias da_al_ustr_new_from_utf16 = ALLEGRO_USTR* function(const(ushort)*);
672     alias da_al_ustr_size_utf16 = size_t function(const(ALLEGRO_USTR)*);
673     alias da_al_ustr_encode_utf16 = size_t function(const(ALLEGRO_USTR)*,ushort*,size_t);
674     alias da_al_utf16_width = size_t function(int);
675     alias da_al_utf16_encode = size_t function(ushort*,int);
676 }
677 
678 __gshared {
679     da_al_get_time al_get_time;
680     da_al_rest al_rest;
681     da_al_init_timeout al_init_timeout;
682     da_al_get_allegro_version al_get_allegro_version;
683     da_al_run_main al_run_main;
684     da_al_set_new_bitmap_format al_set_new_bitmap_format;
685     da_al_set_new_bitmap_flags al_set_new_bitmap_flags;
686     da_al_get_new_bitmap_format al_get_new_bitmap_format;
687     da_al_get_new_bitmap_flags al_get_new_bitmap_flags;
688     da_al_add_new_bitmap_flag al_add_new_bitmap_flag;
689     da_al_get_bitmap_width al_get_bitmap_width;
690     da_al_get_bitmap_height al_get_bitmap_height;
691     da_al_get_bitmap_format al_get_bitmap_format;
692     da_al_get_bitmap_flags al_get_bitmap_flags;
693     da_al_create_bitmap al_create_bitmap;
694     da_al_destroy_bitmap al_destroy_bitmap;
695     da_al_put_pixel al_put_pixel;
696     da_al_put_blended_pixel al_put_blended_pixel;
697     da_al_get_pixel al_get_pixel;
698     da_al_convert_mask_to_alpha al_convert_mask_to_alpha;
699     da_al_set_clipping_rectangle al_set_clipping_rectangle;
700     da_al_reset_clipping_rectangle al_reset_clipping_rectangle;
701     da_al_get_clipping_rectangle al_get_clipping_rectangle;
702     da_al_create_sub_bitmap al_create_sub_bitmap;
703     da_al_is_sub_bitmap al_is_sub_bitmap;
704     da_al_get_parent_bitmap al_get_parent_bitmap;
705     da_al_get_bitmap_x al_get_bitmap_x;
706     da_al_get_bitmap_y al_get_bitmap_y;
707     da_al_reparent_bitmap al_reparent_bitmap;
708     da_al_clone_bitmap al_clone_bitmap;
709     da_al_convert_bitmap al_convert_bitmap;
710     da_al_convert_memory_bitmaps al_convert_memory_bitmaps;
711     da_al_draw_bitmap al_draw_bitmap;
712     da_al_draw_bitmap_region al_draw_bitmap_region;
713     da_al_draw_scaled_bitmap al_draw_scaled_bitmap;
714     da_al_draw_rotated_bitmap al_draw_rotated_bitmap;
715     da_al_draw_scaled_rotated_bitmap al_draw_scaled_rotated_bitmap;
716     da_al_draw_tinted_bitmap al_draw_tinted_bitmap;
717     da_al_draw_tinted_bitmap_region al_draw_tinted_bitmap_region;
718     da_al_draw_tinted_scaled_bitmap al_draw_tinted_scaled_bitmap;
719     da_al_draw_tinted_rotated_bitmap al_draw_tinted_rotated_bitmap;
720     da_al_draw_tinted_scaled_rotated_bitmap al_draw_tinted_scaled_rotated_bitmap;
721     da_al_draw_tinted_scaled_rotated_bitmap_region al_draw_tinted_scaled_rotated_bitmap_region;
722     da_al_register_bitmap_loader al_register_bitmap_loader;
723     da_al_register_bitmap_saver al_register_bitmap_saver;
724     da_al_register_bitmap_loader_f al_register_bitmap_loader_f;
725     da_al_register_bitmap_saver_f al_register_bitmap_saver_f;
726     da_al_register_bitmap_identifier al_register_bitmap_identifier;
727     da_al_load_bitmap al_load_bitmap;
728     da_al_load_bitmap_flags al_load_bitmap_flags;
729     da_al_load_bitmap_f al_load_bitmap_f;
730     da_al_load_bitmap_flags_f al_load_bitmap_flags_f;
731     da_al_save_bitmap al_save_bitmap;
732     da_al_save_bitmap_f al_save_bitmap_f;
733     da_al_identify_bitmap_f al_identify_bitmap_f;
734     da_al_identify_bitmap al_identify_bitmap;
735     da_al_lock_bitmap al_lock_bitmap;
736     da_al_lock_bitmap_region al_lock_bitmap_region;
737     da_al_lock_bitmap_blocked al_lock_bitmap_blocked;
738     da_al_lock_bitmap_region_blocked al_lock_bitmap_region_blocked;
739     da_al_unlock_bitmap al_unlock_bitmap;
740     da_al_is_bitmap_locked al_is_bitmap_locked;
741     da_al_set_blender al_set_blender;
742     da_al_set_blend_color al_set_blend_color;
743     da_al_get_blender al_get_blender;
744     da_al_get_blend_color al_get_blend_color;
745     da_al_set_separate_blender al_set_separate_blender;
746     da_al_get_separate_blender al_get_separate_blender;
747     da_al_get_clipboard_text al_get_clipboard_text;
748     da_al_set_clipboard_text al_set_clipboard_text;
749     da_al_clipboard_has_text al_clipboard_has_text;
750     da_al_map_rgb al_map_rgb;
751     da_al_map_rgba al_map_rgba;
752     da_al_map_rgb_f al_map_rgb_f;
753     da_al_map_rgba_f al_map_rgba_f;
754     da_al_premul_rgba al_premul_rgba;
755     da_al_premul_rgba_f al_premul_rgba_f;
756     da_al_unmap_rgb al_unmap_rgb;
757     da_al_unmap_rgba al_unmap_rgba;
758     da_al_unmap_rgb_f al_unmap_rgb_f;
759     da_al_unmap_rgba_f al_unmap_rgba_f;
760     da_al_get_pixel_size al_get_pixel_size;
761     da_al_get_pixel_format_bits al_get_pixel_format_bits;
762     da_al_get_pixel_block_size al_get_pixel_block_size;
763     da_al_get_pixel_block_width al_get_pixel_block_width;
764     da_al_get_pixel_block_height al_get_pixel_block_height;
765     da_al_create_config al_create_config;
766     da_al_add_config_section al_add_config_section;
767     da_al_set_config_value al_set_config_value;
768     da_al_add_config_comment al_add_config_comment;
769     da_al_get_config_value al_get_config_value;
770     da_al_load_config_file al_load_config_file;
771     da_al_load_config_file_f al_load_config_file_f;
772     da_al_save_config_file al_save_config_file;
773     da_al_save_config_file_f al_save_config_file_f;
774     da_al_merge_config_into al_merge_config_into;
775     da_al_merge_config al_merge_config;
776     da_al_destroy_config al_destroy_config;
777     da_al_remove_config_section al_remove_config_section;
778     da_al_remove_config_key al_remove_config_key;
779     da_al_get_first_config_section al_get_first_config_section;
780     da_al_get_next_config_section al_get_next_config_section;
781     da_al_get_first_config_entry al_get_first_config_entry;
782     da_al_get_next_config_entry al_get_next_config_entry;
783     da_al_get_cpu_count al_get_cpu_count;
784     da_al_get_ram_size al_get_ram_size;
785     da_al_set_new_display_refresh_rate al_set_new_display_refresh_rate;
786     da_al_set_new_display_flags al_set_new_display_flags;
787     da_al_get_new_display_refresh_rate al_get_new_display_refresh_rate;
788     da_al_get_new_display_flags al_get_new_display_flags;
789     da_al_get_display_width al_get_display_width;
790     da_al_get_display_height al_get_display_height;
791     da_al_get_display_format al_get_display_format;
792     da_al_get_display_refresh_rate al_get_display_refresh_rate;
793     da_al_get_display_flags al_get_display_flags;
794     da_al_get_display_orientation al_get_display_orientation;
795     da_al_set_display_flag al_set_display_flag;
796     da_al_create_display al_create_display;
797     da_al_destroy_display al_destroy_display;
798     da_al_get_current_display al_get_current_display;
799     da_al_set_target_bitmap al_set_target_bitmap;
800     da_al_set_target_backbuffer al_set_target_backbuffer;
801     da_al_get_backbuffer al_get_backbuffer;
802     da_al_get_target_bitmap al_get_target_bitmap;
803     da_al_acknowledge_resize al_acknowledge_resize;
804     da_al_resize_display al_resize_display;
805     da_al_flip_display al_flip_display;
806     da_al_update_display_region al_update_display_region;
807     da_al_is_compatible_bitmap al_is_compatible_bitmap;
808     da_al_wait_for_vsync al_wait_for_vsync;
809     da_al_get_display_event_source al_get_display_event_source;
810     da_al_set_display_icon al_set_display_icon;
811     da_al_set_display_icons al_set_display_icons;
812     da_al_get_new_display_adapter al_get_new_display_adapter;
813     da_al_set_new_display_adapter al_set_new_display_adapter;
814     da_al_set_new_window_position al_set_new_window_position;
815     da_al_get_new_window_position al_get_new_window_position;
816     da_al_set_window_position al_set_window_position;
817     da_al_get_window_position al_get_window_position;
818     da_al_set_window_constraints al_set_window_constraints;
819     da_al_get_window_constraints al_get_window_constraints;
820     da_al_set_window_title al_set_window_title;
821     da_al_set_new_display_option al_set_new_display_option;
822     da_al_get_new_display_option al_get_new_display_option;
823     da_al_reset_new_display_options al_reset_new_display_options;
824     da_al_set_display_option al_set_display_option;
825     da_al_get_display_option al_get_display_option;
826     da_al_hold_bitmap_drawing al_hold_bitmap_drawing;
827     da_al_is_bitmap_drawing_held al_is_bitmap_drawing_held;
828     da_al_acknowledge_drawing_halt al_acknowledge_drawing_halt;
829     da_al_acknowledge_drawing_resume al_acknowledge_drawing_resume;
830     da_al_clear_to_color al_clear_to_color;
831     da_al_clear_depth_buffer al_clear_depth_buffer;
832     da_al_draw_pixel al_draw_pixel;
833     da_al_get_errno al_get_errno;
834     da_al_set_errno al_set_errno;
835     da_al_init_user_event_source al_init_user_event_source;
836     da_al_destroy_user_event_source al_destroy_user_event_source;
837     da_al_emit_user_event al_emit_user_event;
838     da_al_unref_user_event al_unref_user_event;
839     da_al_set_event_source_data al_set_event_source_data;
840     da_al_get_event_source_data al_get_event_source_data;
841     da_al_create_event_queue al_create_event_queue;
842     da_al_destroy_event_queue al_destroy_event_queue;
843     da_al_is_event_source_registered al_is_event_source_registered;
844     da_al_register_event_source al_register_event_source;
845     da_al_unregister_event_source al_unregister_event_source;
846     da_al_pause_event_queue al_pause_event_queue;
847     da_al_is_event_queue_empty al_is_event_queue_empty;
848     da_al_get_next_event al_get_next_event;
849     da_al_peek_next_event al_peek_next_event;
850     da_al_drop_next_event al_drop_next_event;
851     da_al_flush_event_queue al_flush_event_queue;
852     da_al_wait_for_event al_wait_for_event;
853     da_al_wait_for_event_timed al_wait_for_event_timed;
854     da_al_wait_for_event_until al_wait_for_event_until;
855     da_al_fopen al_fopen;
856     da_al_fopen_interface al_fopen_interface;
857     da_al_create_file_handle al_create_file_handle;
858     da_al_fclose al_fclose;
859     da_al_fread al_fread;
860     da_al_fwrite al_fwrite;
861     da_al_fflush al_fflush;
862     da_al_ftell al_ftell;
863     da_al_fseek al_fseek;
864     da_al_feof al_feof;
865     da_al_ferror al_ferror;
866     da_al_ferrmsg al_ferrmsg;
867     da_al_fclearerr al_fclearerr;
868     da_al_fungetc al_fungetc;
869     da_al_fsize al_fsize;
870     da_al_fgetc al_fgetc;
871     da_al_fputc al_fputc;
872     da_al_fread16le al_fread16le;
873     da_al_fread16be al_fread16be;
874     da_al_fwrite16le al_fwrite16le;
875     da_al_fwrite16be al_fwrite16be;
876     da_al_fread32le al_fread32le;
877     da_al_fread32be al_fread32be;
878     da_al_fwrite32le al_fwrite32le;
879     da_al_fwrite32be al_fwrite32be;
880     da_al_fgets al_fgets;
881     da_al_fget_ustr al_fget_ustr;
882     da_al_fputs al_fputs;
883     da_al_fprintf al_fprintf;
884     da_al_vfprintf al_vfprintf;
885     da_al_fopen_fd al_fopen_fd;
886     da_al_make_temp_file al_make_temp_file;
887     da_al_fopen_slice al_fopen_slice;
888     da_al_get_new_file_interface al_get_new_file_interface;
889     da_al_set_new_file_interface al_set_new_file_interface;
890     da_al_set_standard_file_interface al_set_standard_file_interface;
891     da_al_get_file_userdata al_get_file_userdata;
892     da_al_create_fs_entry al_create_fs_entry;
893     da_al_destroy_fs_entry al_destroy_fs_entry;
894     da_al_get_fs_entry_name al_get_fs_entry_name;
895     da_al_update_fs_entry al_update_fs_entry;
896     da_al_get_fs_entry_mode al_get_fs_entry_mode;
897     da_al_get_fs_entry_atime al_get_fs_entry_atime;
898     da_al_get_fs_entry_mtime al_get_fs_entry_mtime;
899     da_al_get_fs_entry_ctime al_get_fs_entry_ctime;
900     da_al_get_fs_entry_size al_get_fs_entry_size;
901     da_al_fs_entry_exists al_fs_entry_exists;
902     da_al_remove_fs_entry al_remove_fs_entry;
903     da_al_open_directory al_open_directory;
904     da_al_read_directory al_read_directory;
905     da_al_close_directory al_close_directory;
906     da_al_filename_exists al_filename_exists;
907     da_al_remove_filename al_remove_filename;
908     da_al_get_current_directory al_get_current_directory;
909     da_al_change_directory al_change_directory;
910     da_al_make_directory al_make_directory;
911     da_al_open_fs_entry al_open_fs_entry;
912     da_al_for_each_fs_entry al_for_each_fs_entry;
913     da_al_get_fs_interface al_get_fs_interface;
914     da_al_set_fs_interface al_set_fs_interface;
915     da_al_set_standard_fs_interface al_set_standard_fs_interface;
916     da_al_get_num_display_modes al_get_num_display_modes;
917     da_al_get_display_mode al_get_display_mode;
918     da_al_install_joystick al_install_joystick;
919     da_al_uninstall_joystick al_uninstall_joystick;
920     da_al_is_joystick_installed al_is_joystick_installed;
921     da_al_reconfigure_joysticks al_reconfigure_joysticks;
922     da_al_get_num_joysticks al_get_num_joysticks;
923     da_al_get_joystick al_get_joystick;
924     da_al_release_joystick al_release_joystick;
925     da_al_get_joystick_active al_get_joystick_active;
926     da_al_get_joystick_name al_get_joystick_name;
927     da_al_get_joystick_num_sticks al_get_joystick_num_sticks;
928     da_al_get_joystick_stick_flags al_get_joystick_stick_flags;
929     da_al_get_joystick_stick_name al_get_joystick_stick_name;
930     da_al_get_joystick_num_axes al_get_joystick_num_axes;
931     da_al_get_joystick_axis_name al_get_joystick_axis_name;
932     da_al_get_joystick_num_buttons al_get_joystick_num_buttons;
933     da_al_get_joystick_button_name al_get_joystick_button_name;
934     da_al_get_joystick_state al_get_joystick_state;
935     da_al_get_joystick_event_source al_get_joystick_event_source;
936     da_al_is_keyboard_installed al_is_keyboard_installed;
937     da_al_install_keyboard al_install_keyboard;
938     da_al_uninstall_keyboard al_uninstall_keyboard;
939     da_al_set_keyboard_leds al_set_keyboard_leds;
940     da_al_keycode_to_name al_keycode_to_name;
941     da_al_get_keyboard_state al_get_keyboard_state;
942     da_al_key_down al_key_down;
943     da_al_get_keyboard_event_source al_get_keyboard_event_source;
944     da_al_malloc_with_context al_malloc_with_context;
945     da_al_free_with_context al_free_with_context;
946     da_al_realloc_with_context al_realloc_with_context;
947     da_al_calloc_with_context al_calloc_with_context;
948     da_al_get_num_video_adapters al_get_num_video_adapters;
949     da_al_get_monitor_info al_get_monitor_info;
950     da_al_is_mouse_installed al_is_mouse_installed;
951     da_al_install_mouse al_install_mouse;
952     da_al_uninstall_mouse al_uninstall_mouse;
953     da_al_get_mouse_num_buttons al_get_mouse_num_buttons;
954     da_al_get_mouse_num_axes al_get_mouse_num_axes;
955     da_al_set_mouse_xy al_set_mouse_xy;
956     da_al_set_mouse_z al_set_mouse_z;
957     da_al_set_mouse_w al_set_mouse_w;
958     da_al_set_mouse_axis al_set_mouse_axis;
959     da_al_get_mouse_state al_get_mouse_state;
960     da_al_mouse_button_down al_mouse_button_down;
961     da_al_get_mouse_state_axis al_get_mouse_state_axis;
962     da_al_get_mouse_cursor_position al_get_mouse_cursor_position;
963     da_al_grab_mouse al_grab_mouse;
964     da_al_ungrab_mouse al_ungrab_mouse;
965     da_al_set_mouse_wheel_precision al_set_mouse_wheel_precision;
966     da_al_get_mouse_wheel_precision al_get_mouse_wheel_precision;
967     da_al_get_mouse_event_source al_get_mouse_event_source;
968     da_al_create_mouse_cursor al_create_mouse_cursor;
969     da_al_destroy_mouse_cursor al_destroy_mouse_cursor;
970     da_al_set_mouse_cursor al_set_mouse_cursor;
971     da_al_set_system_mouse_cursor al_set_system_mouse_cursor;
972     da_al_show_mouse_cursor al_show_mouse_cursor;
973     da_al_hide_mouse_cursor al_hide_mouse_cursor;
974     da_al_create_path al_create_path;
975     da_al_create_path_for_directory al_create_path_for_directory;
976     da_al_clone_path al_clone_path;
977     da_al_get_path_num_components al_get_path_num_components;
978     da_al_get_path_component al_get_path_component;
979     da_al_replace_path_component al_replace_path_component;
980     da_al_remove_path_component al_remove_path_component;
981     da_al_insert_path_component al_insert_path_component;
982     da_al_get_path_tail al_get_path_tail;
983     da_al_drop_path_tail al_drop_path_tail;
984     da_al_append_path_component al_append_path_component;
985     da_al_join_paths al_join_paths;
986     da_al_rebase_path al_rebase_path;
987     da_al_path_cstr al_path_cstr;
988     da_al_destroy_path al_destroy_path;
989     da_al_set_path_drive al_set_path_drive;
990     da_al_get_path_drive al_get_path_drive;
991     da_al_set_path_filename al_set_path_filename;
992     da_al_get_path_filename al_get_path_filename;
993     da_al_get_path_extension al_get_path_extension;
994     da_al_set_path_extension al_set_path_extension;
995     da_al_get_path_basename al_get_path_basename;
996     da_al_make_path_canonical al_make_path_canonical;
997     da_al_set_render_state al_set_render_state;
998     da_al_create_shader al_create_shader;
999     da_al_attach_shader_source al_attach_shader_source;
1000     da_al_attach_shader_source_file al_attach_shader_source_file;
1001     da_al_build_shader al_build_shader;
1002     da_al_get_shader_log al_get_shader_log;
1003     da_al_get_shader_platform al_get_shader_platform;
1004     da_al_use_shader al_use_shader;
1005     da_al_destroy_shader al_destroy_shader;
1006     da_al_set_shader_sampler al_set_shader_sampler;
1007     da_al_set_shader_matrix al_set_shader_matrix;
1008     da_al_set_shader_int al_set_shader_int;
1009     da_al_set_shader_float al_set_shader_float;
1010     da_al_set_shader_int_vector al_set_shader_int_vector;
1011     da_al_set_shader_float_vector al_set_shader_float_vector;
1012     da_al_set_shader_bool al_set_shader_bool;
1013     da_al_get_default_shader_source al_get_default_shader_source;
1014     da_al_install_system al_install_system;
1015     da_al_uninstall_system al_uninstall_system;
1016     da_al_is_system_installed al_is_system_installed;
1017     da_al_get_system_driver al_get_system_driver;
1018     da_al_get_system_config al_get_system_config;
1019     da_al_get_standard_path al_get_standard_path;
1020     da_al_set_exe_name al_set_exe_name;
1021     da_al_set_org_name al_set_org_name;
1022     da_al_set_app_name al_set_app_name;
1023     da_al_get_org_name al_get_org_name;
1024     da_al_get_app_name al_get_app_name;
1025     da_al_inhibit_screensaver al_inhibit_screensaver;
1026     da_al_create_thread al_create_thread;
1027     da_al_start_thread al_start_thread;
1028     da_al_join_thread al_join_thread;
1029     da_al_set_thread_should_stop al_set_thread_should_stop;
1030     da_al_get_thread_should_stop al_get_thread_should_stop;
1031     da_al_destroy_thread al_destroy_thread;
1032     da_al_run_detached_thread al_run_detached_thread;
1033     da_al_create_mutex al_create_mutex;
1034     da_al_create_mutex_recursive al_create_mutex_recursive;
1035     da_al_lock_mutex al_lock_mutex;
1036     da_al_unlock_mutex al_unlock_mutex;
1037     da_al_destroy_mutex al_destroy_mutex;
1038     da_al_create_cond al_create_cond;
1039     da_al_destroy_cond al_destroy_cond;
1040     da_al_wait_cond al_wait_cond;
1041     da_al_wait_cond_until al_wait_cond_until;
1042     da_al_broadcast_cond al_broadcast_cond;
1043     da_al_signal_cond al_signal_cond;
1044     da_al_create_timer al_create_timer;
1045     da_al_destroy_timer al_destroy_timer;
1046     da_al_start_timer al_start_timer;
1047     da_al_stop_timer al_stop_timer;
1048     da_al_resume_timer al_resume_timer;
1049     da_al_get_timer_started al_get_timer_started;
1050     da_al_get_timer_speed al_get_timer_speed;
1051     da_al_set_timer_speed al_set_timer_speed;
1052     da_al_get_timer_count al_get_timer_count;
1053     da_al_set_timer_count al_set_timer_count;
1054     da_al_add_timer_count al_add_timer_count;
1055     da_al_get_timer_event_source al_get_timer_event_source;
1056     da_al_store_state al_store_state;
1057     da_al_restore_state al_restore_state;
1058     da_al_is_touch_input_installed al_is_touch_input_installed;
1059     da_al_install_touch_input al_install_touch_input;
1060     da_al_uninstall_touch_input al_uninstall_touch_input;
1061     da_al_get_touch_input_state al_get_touch_input_state;
1062     da_al_get_touch_input_event_source al_get_touch_input_event_source;
1063     da_al_use_transform al_use_transform;
1064     da_al_use_projection_transform al_use_projection_transform;
1065     da_al_copy_transform al_copy_transform;
1066     da_al_identity_transform al_identity_transform;
1067     da_al_build_transform al_build_transform;
1068     da_al_build_camera_transform al_build_camera_transform;
1069     da_al_translate_transform al_translate_transform;
1070     da_al_translate_transform_3d al_translate_transform_3d;
1071     da_al_rotate_transform al_rotate_transform;
1072     da_al_rotate_transform_3d al_rotate_transform_3d;
1073     da_al_scale_transform al_scale_transform;
1074     da_al_scale_transform_3d al_scale_transform_3d;
1075     da_al_transform_coordinates al_transform_coordinates;
1076     da_al_transform_coordinates_3d al_transform_coordinates_3d;
1077     da_al_compose_transform al_compose_transform;
1078     da_al_get_current_transform al_get_current_transform;
1079     da_al_get_current_inverse_transform al_get_current_inverse_transform;
1080     da_al_get_current_projection_transform al_get_current_projection_transform;
1081     da_al_invert_transform al_invert_transform;
1082     da_al_check_inverse al_check_inverse;
1083     da_al_orthographic_transform al_orthographic_transform;
1084     da_al_perspective_transform al_perspective_transform;
1085     da_al_horizontal_shear_transform al_horizontal_shear_transform;
1086     da_al_vertical_shear_transform al_vertical_shear_transform;
1087     da_al_ustr_new al_ustr_new;
1088     da_al_ustr_new_from_buffer al_ustr_new_from_buffer;
1089     da_al_ustr_newf al_ustr_newf;
1090     da_al_ustr_free al_ustr_free;
1091     da_al_cstr al_cstr;
1092     da_al_ustr_to_buffer al_ustr_to_buffer;
1093     da_al_cstr_dup al_cstr_dup;
1094     da_al_ustr_dup al_ustr_dup;
1095     da_al_ustr_dup_substr al_ustr_dup_substr;
1096     da_al_ustr_empty_string al_ustr_empty_string;
1097     da_al_ref_cstr al_ref_cstr;
1098     da_al_ref_buffer al_ref_buffer;
1099     da_al_ref_ustr al_ref_ustr;
1100     da_al_ustr_size al_ustr_size;
1101     da_al_ustr_length al_ustr_length;
1102     da_al_ustr_offset al_ustr_offset;
1103     da_al_ustr_next al_ustr_next;
1104     da_al_ustr_prev al_ustr_prev;
1105     da_al_ustr_get al_ustr_get;
1106     da_al_ustr_get_next al_ustr_get_next;
1107     da_al_ustr_prev_get al_ustr_prev_get;
1108     da_al_ustr_insert al_ustr_insert;
1109     da_al_ustr_insert_cstr al_ustr_insert_cstr;
1110     da_al_ustr_insert_chr al_ustr_insert_chr;
1111     da_al_ustr_append al_ustr_append;
1112     da_al_ustr_append_cstr al_ustr_append_cstr;
1113     da_al_ustr_append_chr al_ustr_append_chr;
1114     da_al_ustr_appendf al_ustr_appendf;
1115     da_al_ustr_vappendf al_ustr_vappendf;
1116     da_al_ustr_remove_chr al_ustr_remove_chr;
1117     da_al_ustr_remove_range al_ustr_remove_range;
1118     da_al_ustr_truncate al_ustr_truncate;
1119     da_al_ustr_ltrim_ws al_ustr_ltrim_ws;
1120     da_al_ustr_rtrim_ws al_ustr_rtrim_ws;
1121     da_al_ustr_trim_ws al_ustr_trim_ws;
1122     da_al_ustr_assign al_ustr_assign;
1123     da_al_ustr_assign_substr al_ustr_assign_substr;
1124     da_al_ustr_assign_cstr al_ustr_assign_cstr;
1125     da_al_ustr_set_chr al_ustr_set_chr;
1126     da_al_ustr_replace_range al_ustr_replace_range;
1127     da_al_ustr_find_chr al_ustr_find_chr;
1128     da_al_ustr_rfind_chr al_ustr_rfind_chr;
1129     da_al_ustr_find_set al_ustr_find_set;
1130     da_al_ustr_find_set_cstr al_ustr_find_set_cstr;
1131     da_al_ustr_find_cset al_ustr_find_cset;
1132     da_al_ustr_find_cset_cstr al_ustr_find_cset_cstr;
1133     da_al_ustr_find_str al_ustr_find_str;
1134     da_al_ustr_find_cstr al_ustr_find_cstr;
1135     da_al_ustr_rfind_str al_ustr_rfind_str;
1136     da_al_ustr_rfind_cstr al_ustr_rfind_cstr;
1137     da_al_ustr_find_replace al_ustr_find_replace;
1138     da_al_ustr_find_replace_cstr al_ustr_find_replace_cstr;
1139     da_al_ustr_equal al_ustr_equal;
1140     da_al_ustr_compare al_ustr_compare;
1141     da_al_ustr_ncompare al_ustr_ncompare;
1142     da_al_ustr_has_prefix al_ustr_has_prefix;
1143     da_al_ustr_has_prefix_cstr al_ustr_has_prefix_cstr;
1144     da_al_ustr_has_suffix al_ustr_has_suffix;
1145     da_al_ustr_has_suffix_cstr al_ustr_has_suffix_cstr;
1146     da_al_utf8_width al_utf8_width;
1147     da_al_utf8_encode al_utf8_encode;
1148     da_al_ustr_new_from_utf16 al_ustr_new_from_utf16;
1149     da_al_ustr_size_utf16 al_ustr_size_utf16;
1150     da_al_ustr_encode_utf16 al_ustr_encode_utf16;
1151     da_al_utf16_width al_utf16_width;
1152     da_al_utf16_encode al_utf16_encode;
1153 }