SlideShare a Scribd company logo
Ring Documentation, Release 1.3
• bool al_install_keyboard(void)
• bool al_is_keyboard_installed(void)
• void al_uninstall_keyboard(void)
• void al_get_keyboard_state(ALLEGRO_KEYBOARD_STATE *ret_state)
• bool al_key_down(const ALLEGRO_KEYBOARD_STATE *state, int keycode)
• const char *al_keycode_to_name(int keycode)
• bool al_set_keyboard_leds(int leds)
• ALLEGRO_EVENT_SOURCE *al_get_keyboard_event_source(void)
• void *al_malloc_with_context(size_t n,int line, const char *file, const char *func)
• void al_free_with_context(void *ptr, int line, const char *file, const char *func)
• void *al_realloc_with_context(void *ptr, size_t n,int line, const char *file, const char *func)
• void *al_calloc_with_context(size_t count, size_t n,int line, const char *file, const char *func)
• void al_set_memory_interface(ALLEGRO_MEMORY_INTERFACE *memory_interface)
• int al_get_new_display_adapter(void)
• void al_set_new_display_adapter(int adapter)
• bool al_get_monitor_info(int adapter, ALLEGRO_MONITOR_INFO *info)
• int al_get_num_video_adapters(void)
• bool al_install_mouse(void)
• bool al_is_mouse_installed(void)
• void al_uninstall_mouse(void)
• unsigned int al_get_mouse_num_axes(void)
• unsigned int al_get_mouse_num_buttons(void)
• void al_get_mouse_state(ALLEGRO_MOUSE_STATE *ret_state)
• int al_get_mouse_state_axis(const ALLEGRO_MOUSE_STATE *state, int axis)
• bool al_mouse_button_down(const ALLEGRO_MOUSE_STATE *state, int button)
• bool al_set_mouse_xy(ALLEGRO_DISPLAY *display, int x, int y)
• bool al_set_mouse_z(int z)
• bool al_set_mouse_w(int w)
• bool al_set_mouse_axis(int which, int value)
• ALLEGRO_EVENT_SOURCE *al_get_mouse_event_source(void)
• ALLEGRO_MOUSE_CURSOR *al_create_mouse_cursor(ALLEGRO_BITMAP *bmp,int x_focus, int
y_focus)
• void al_destroy_mouse_cursor(ALLEGRO_MOUSE_CURSOR *cursor)
• bool al_set_mouse_cursor(ALLEGRO_DISPLAY *display, ALLEGRO_MOUSE_CURSOR *cursor)
• bool al_set_system_mouse_cursor(ALLEGRO_DISPLAY *display,ALLEGRO_SYSTEM_MOUSE_CURSOR
cursor_id)
• bool al_get_mouse_cursor_position(int *ret_x, int *ret_y)
618
Ring Documentation, Release 1.3
• bool al_hide_mouse_cursor(ALLEGRO_DISPLAY *display)
• bool al_show_mouse_cursor(ALLEGRO_DISPLAY *display)
• bool al_grab_mouse(ALLEGRO_DISPLAY *display)
• bool al_ungrab_mouse(void)
• ALLEGRO_PATH *al_create_path(const char *str)
• ALLEGRO_PATH *al_create_path_for_directory(const char *str)
• void al_destroy_path(ALLEGRO_PATH *path)
• ALLEGRO_PATH *al_clone_path(const ALLEGRO_PATH *path)
• bool al_join_paths(ALLEGRO_PATH *path, const ALLEGRO_PATH *tail)
• bool al_rebase_path(const ALLEGRO_PATH *head, ALLEGRO_PATH *tail)
• const char *al_get_path_drive(const ALLEGRO_PATH *path)
• int al_get_path_num_components(const ALLEGRO_PATH *path)
• const char *al_get_path_component(const ALLEGRO_PATH *path, int i)
• const char *al_get_path_tail(const ALLEGRO_PATH *path)
• const char *al_get_path_filename(const ALLEGRO_PATH *path)
• const char *al_get_path_basename(const ALLEGRO_PATH *path)
• const char *al_get_path_extension(const ALLEGRO_PATH *path)
• void al_set_path_drive(ALLEGRO_PATH *path, const char *drive)
• void al_append_path_component(ALLEGRO_PATH *path, const char *s)
• void al_insert_path_component(ALLEGRO_PATH *path, int i, const char *s)
• void al_replace_path_component(ALLEGRO_PATH *path, int i, const char *s)
• void al_remove_path_component(ALLEGRO_PATH *path, int i)
• void al_drop_path_tail(ALLEGRO_PATH *path)
• void al_set_path_filename(ALLEGRO_PATH *path, const char *filename)
• bool al_set_path_extension(ALLEGRO_PATH *path, char const *extension)
• const char *al_path_cstr(const ALLEGRO_PATH *path, char delim)
• bool al_make_path_canonical(ALLEGRO_PATH *path)
• void al_restore_state(ALLEGRO_STATE const *state)
• void al_store_state(ALLEGRO_STATE *state, int flags
• int al_get_errno(void)
• void al_set_errno(int errnum)
• void al_uninstall_system(void)
• bool al_is_system_installed(void)
• uint32_t al_get_allegro_version(void)
• ALLEGRO_PATH *al_get_standard_path(int id)
• void al_set_exe_name(char const *path)
619
Ring Documentation, Release 1.3
• void al_set_app_name(const char *app_name)
• void al_set_org_name(const char *org_name)
• const char *al_get_app_name(void)
• const char *al_get_org_name(void)
• ALLEGRO_CONFIG *al_get_system_config(void)
• ALLEGRO_THREAD *al_create_thread(void)
• void al_run_detached_thread(void)
• void al_start_thread(ALLEGRO_THREAD *thread)
• void al_join_thread(ALLEGRO_THREAD *thread, void **ret_value)
• void al_set_thread_should_stop(ALLEGRO_THREAD *thread)
• bool al_get_thread_should_stop(ALLEGRO_THREAD *thread)
• void al_destroy_thread(ALLEGRO_THREAD *thread)
• ALLEGRO_MUTEX *al_create_mutex(void)
• ALLEGRO_MUTEX *al_create_mutex_recursive(void)
• void al_lock_mutex(ALLEGRO_MUTEX *mutex)
• void al_unlock_mutex(ALLEGRO_MUTEX *mutex)
• void al_destroy_mutex(ALLEGRO_MUTEX *mutex)
• ALLEGRO_COND *al_create_cond(void)
• void al_destroy_cond(ALLEGRO_COND *cond)
• void al_wait_cond(ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex)
• int al_wait_cond_until(ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex,const ALLEGRO_TIMEOUT
*timeout)
• void al_broadcast_cond(ALLEGRO_COND *cond)
• void al_signal_cond(ALLEGRO_COND *cond)
• double al_get_time(void)
• void al_init_timeout(ALLEGRO_TIMEOUT *timeout, double seconds)
• void al_rest(double seconds)
• ALLEGRO_TIMER *al_create_timer(double speed_secs)
• void al_start_timer(ALLEGRO_TIMER *timer)
• void al_stop_timer(ALLEGRO_TIMER *timer)
• bool al_get_timer_started(const ALLEGRO_TIMER *timer)
• void al_destroy_timer(ALLEGRO_TIMER *timer)
• int64_t al_get_timer_count(const ALLEGRO_TIMER *timer)
• void al_set_timer_count(ALLEGRO_TIMER *timer, int64_t new_count)
• void al_add_timer_count(ALLEGRO_TIMER *timer, int64_t diff)
• double al_get_timer_speed(const ALLEGRO_TIMER *timer)
620
Ring Documentation, Release 1.3
• void al_set_timer_speed(ALLEGRO_TIMER *timer, double new_speed_secs)
• ALLEGRO_EVENT_SOURCE *al_get_timer_event_source(ALLEGRO_TIMER *timer)
• void al_copy_transform(ALLEGRO_TRANSFORM *dest, const ALLEGRO_TRANSFORM *src)
• void al_use_transform(const ALLEGRO_TRANSFORM *trans)
• const ALLEGRO_TRANSFORM *al_get_current_transform(void)
• void al_invert_transform(ALLEGRO_TRANSFORM *trans)
• int al_check_inverse(const ALLEGRO_TRANSFORM *trans, float tol)
• void al_identity_transform(ALLEGRO_TRANSFORM *trans)
• void al_build_transform(ALLEGRO_TRANSFORM *trans, float x, float y,float sx, float sy, float theta)
• void al_translate_transform(ALLEGRO_TRANSFORM *trans, float x, float y)
• void al_rotate_transform(ALLEGRO_TRANSFORM *trans, float theta)
• void al_scale_transform(ALLEGRO_TRANSFORM *trans, float sx, float sy)
• void al_transform_coordinates(const ALLEGRO_TRANSFORM *trans, float *x, float *y)
• void al_compose_transform(ALLEGRO_TRANSFORM *trans, const ALLEGRO_TRANSFORM *other)
• ALLEGRO_USTR *al_ustr_new(const char *s)
• ALLEGRO_USTR *al_ustr_new_from_buffer(const char *s, size_t size)
• void al_ustr_free(ALLEGRO_USTR *us)
• const char *al_cstr(const ALLEGRO_USTR *us)
• void al_ustr_to_buffer(const ALLEGRO_USTR *us, char *buffer, int size)
• char *al_cstr_dup(const ALLEGRO_USTR *us)
• ALLEGRO_USTR *al_ustr_dup(const ALLEGRO_USTR *us)
• ALLEGRO_USTR *al_ustr_dup_substr(const ALLEGRO_USTR *us, int start_pos,int end_pos)
• const ALLEGRO_USTR *al_ustr_empty_string(void)
• const ALLEGRO_USTR *al_ref_cstr(ALLEGRO_USTR_INFO *info, const char *s)
• const ALLEGRO_USTR *al_ref_buffer(ALLEGRO_USTR_INFO *info, const char *s, size_t size)
• const ALLEGRO_USTR *al_ref_ustr(ALLEGRO_USTR_INFO *info, const ALLEGRO_USTR *us,int
start_pos, int end_pos)
• size_t al_ustr_size(const ALLEGRO_USTR *us)
• size_t al_ustr_length(const ALLEGRO_USTR *us)
• int al_ustr_offset(const ALLEGRO_USTR *us, int index)
• bool al_ustr_next(const ALLEGRO_USTR *us, int *pos)
• bool al_ustr_prev(const ALLEGRO_USTR *us, int *pos)
• int32_t al_ustr_get(const ALLEGRO_USTR *ub, int pos)
• int32_t al_ustr_get_next(const ALLEGRO_USTR *us, int *pos)
• int32_t al_ustr_prev_get(const ALLEGRO_USTR *us, int *pos)
• bool al_ustr_insert(ALLEGRO_USTR *us1, int pos, const ALLEGRO_USTR *us2)
621
Ring Documentation, Release 1.3
• bool al_ustr_insert_cstr(ALLEGRO_USTR *us, int pos, const char *s)
• size_t al_ustr_insert_chr(ALLEGRO_USTR *us, int pos, int32_t c)
• bool al_ustr_append(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• bool al_ustr_append_cstr(ALLEGRO_USTR *us, const char *s)
• size_t al_ustr_append_chr(ALLEGRO_USTR *us, int32_t c)
• bool al_ustr_remove_chr(ALLEGRO_USTR *us, int pos)
• bool al_ustr_remove_range(ALLEGRO_USTR *us, int start_pos, int end_pos)
• bool al_ustr_truncate(ALLEGRO_USTR *us, int start_pos)
• bool al_ustr_ltrim_ws(ALLEGRO_USTR *us)
• bool al_ustr_rtrim_ws(ALLEGRO_USTR *us)
• bool al_ustr_trim_ws(ALLEGRO_USTR *us)
• bool al_ustr_assign(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• bool al_ustr_assign_substr(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2,int start_pos, int end_pos)
• bool al_ustr_assign_cstr(ALLEGRO_USTR *us1, const char *s)
• size_t al_ustr_set_chr(ALLEGRO_USTR *us, int start_pos, int32_t c)
• bool al_ustr_replace_range(ALLEGRO_USTR *us1, int start_pos1, int end_pos1,const ALLEGRO_USTR
*us2)
• int al_ustr_find_chr(const ALLEGRO_USTR *us, int start_pos, int32_t c)
• int al_ustr_rfind_chr(const ALLEGRO_USTR *us, int end_pos, int32_t c)
• int al_ustr_find_set(const ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *accept)
• int al_ustr_find_set_cstr(const ALLEGRO_USTR *us, int start_pos,const char *accept)
• int al_ustr_find_cset(const ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *reject)
• int al_ustr_find_cset_cstr(const ALLEGRO_USTR *us, int start_pos,const char *reject)
• int al_ustr_find_str(const ALLEGRO_USTR *haystack, int start_pos,const ALLEGRO_USTR *needle)
• int al_ustr_find_cstr(const ALLEGRO_USTR *haystack, int start_pos,const char *needle)
• int al_ustr_rfind_str(const ALLEGRO_USTR *haystack, int end_pos,const ALLEGRO_USTR *needle)
• int al_ustr_rfind_cstr(const ALLEGRO_USTR *haystack, int end_pos,const char *needle)
• bool al_ustr_find_replace(ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *find, const ALLE-
GRO_USTR *replace)
• bool al_ustr_find_replace_cstr(ALLEGRO_USTR *us, int start_pos,const char *find, const char *replace)
• int al_ustr_compare(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• int al_ustr_ncompare(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2, int n)
• bool al_ustr_equal(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• bool al_ustr_has_prefix(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• bool al_ustr_has_prefix_cstr(const ALLEGRO_USTR *us1, const char *s2)
• bool al_ustr_has_suffix(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2)
• bool al_ustr_has_suffix_cstr(const ALLEGRO_USTR *us1, const char *s2)
622
Ring Documentation, Release 1.3
• ALLEGRO_USTR *al_ustr_new_from_utf16(uint16_t const *s)
• size_t al_ustr_size_utf16(const ALLEGRO_USTR *us)
• size_t al_ustr_encode_utf16(const ALLEGRO_USTR *us, uint16_t *s,size_t n)
• size_t al_utf8_width(int c)
• size_t al_utf8_encode(char s[], int32_t c)
• size_t al_utf16_width(int c)
• LPDIRECT3DDEVICE9 al_get_d3d_device(ALLEGRO_DISPLAY *display)
• LPDIRECT3DTEXTURE9 al_get_d3d_system_texture(ALLEGRO_BITMAP *bitmap)
• LPDIRECT3DTEXTURE9 al_get_d3d_video_texture(ALLEGRO_BITMAP *bitmap)
• bool al_have_d3d_non_pow2_texture_support(void)
• bool al_have_d3d_non_square_texture_support(void)
• void al_get_d3d_texture_position(ALLEGRO_BITMAP *bitmap, int *u, int *v)
• bool al_is_d3d_device_lost(ALLEGRO_DISPLAY *display)
• ALLEGRO_OGL_EXT_LIST *al_get_opengl_extension_list(void)
• void *al_get_opengl_proc_address(const char *name)
• GLuint al_get_opengl_texture(ALLEGRO_BITMAP *bitmap)
• void al_get_opengl_texture_size(ALLEGRO_BITMAP *bitmap, int *w, int *h)
• void al_get_opengl_texture_position(ALLEGRO_BITMAP *bitmap, int *u, int *v)
• GLuint al_get_opengl_fbo(ALLEGRO_BITMAP *bitmap)
• void al_remove_opengl_fbo(ALLEGRO_BITMAP *bitmap)
• bool al_have_opengl_extension(const char *extension);
• uint32_t al_get_opengl_version(void)
• int al_get_opengl_variant(void)
• void al_set_current_opengl_context(ALLEGRO_DISPLAY *display)
• bool al_install_audio(void)
• void al_uninstall_audio(void)
• bool al_is_audio_installed(void)
• bool al_reserve_samples(int reserve_samples)
• uint32_t al_get_allegro_audio_version(void)
• size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth)
• size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf)
• ALLEGRO_VOICE *al_create_voice(unsigned int freq,ALLEGRO_AUDIO_DEPTH depth, ALLE-
GRO_CHANNEL_CONF chan_conf)
• void al_destroy_voice(ALLEGRO_VOICE *voice)
• void al_detach_voice(ALLEGRO_VOICE *voice)
• bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,ALLEGRO_VOICE *voice)
623
Ring Documentation, Release 1.3
• bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice)
• bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_VOICE
*voice)
• unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice)
• ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice)
• ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice)
• bool al_get_voice_playing(const ALLEGRO_VOICE *voice)
• bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val)
• unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice)
• bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val)
• ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,unsigned int freq, ALLE-
GRO_AUDIO_DEPTH depth,ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf)
• void al_destroy_sample(ALLEGRO_SAMPLE *spl)
• bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,int loop, ALLE-
GRO_SAMPLE_ID *ret_id)
• void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id)
• void al_stop_samples(void)
• ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl)
• ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl)
• unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl)
• unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl)
• void *al_get_sample_data(const ALLEGRO_SAMPLE *spl)
• ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data)
• void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
• ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(const ALLEGRO_SAMPLE_INSTANCE
*spl)
• ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl)
• unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl)
• unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,unsigned int val)
• unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,unsigned int val)
• float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
• float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl)
624
Ring Documentation, Release 1.3
• bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
• float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val)
• float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl)
• ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_PLAYMODE
val)
• bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val)
• bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl)
• ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl)
• bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data)
• ALLEGRO_MIXER *al_create_mixer(unsigned int freq,ALLEGRO_AUDIO_DEPTH depth, ALLE-
GRO_CHANNEL_CONF chan_conf)
• void al_destroy_mixer(ALLEGRO_MIXER *mixer)
• ALLEGRO_MIXER *al_get_default_mixer(void)
• bool al_set_default_mixer(ALLEGRO_MIXER *mixer)
• bool al_restore_default_mixer(void)
• bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer)
• bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_MIXER
*mixer)
• bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer)
• unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)
• bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val)
• ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer)
• ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer)
• float al_get_mixer_gain(const ALLEGRO_MIXER *mixer)
• bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain)
• ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer)
• bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality)
• bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer)
• bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val)
• bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer)
• bool al_detach_mixer(ALLEGRO_MIXER *mixer)
• void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
625
Ring Documentation, Release 1.3
• ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(ALLEGRO_AUDIO_STREAM
*stream)
• void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
• bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
• unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream)
• ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(const ALLEGRO_AUDIO_STREAM
*stream)
• ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(const ALLEGRO_AUDIO_STREAM *stream)
• unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream)
• float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val)
• float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val)
• float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val)
• bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val)
• ALLEGRO_PLAYMODE al_get_audio_stream_playmode(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,ALLEGRO_PLAYMODE val)
• bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
• void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)
• unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)
• unsigned int al_get_available_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)
• bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time)
• double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream)
• double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream)
• bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,double start, double end)
• ALLEGRO_SAMPLE *al_load_sample(const char *filename)
• ALLEGRO_SAMPLE al_load_sample_f(ALLEGRO_FILE fp, const char *ident)
• ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,size_t buffer_count, unsigned int
samples)
• ALLEGRO_AUDIO_STREAM al_load_audio_stream_f(ALLEGRO_FILE fp, const char *ident,size_t
buffer_count, unsigned int samples)
• bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl)
• bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl)
626
Ring Documentation, Release 1.3
• bool al_init_acodec_addon(void)
• uint32_t al_get_allegro_acodec_version(void)
• ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k)
• void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,float key, float *red, float *green, float *blue)
• ALLEGRO_COLOR al_color_hsl(float h, float s, float l)
• void al_color_hsl_to_rgb(float hue, float saturation, float lightness,float *red, float *green, float *blue)
• ALLEGRO_COLOR al_color_hsv(float h, float s, float v)
• void al_color_hsv_to_rgb(float hue, float saturation, float value,float *red, float *green, float *blue)
• ALLEGRO_COLOR al_color_html(char const *string)
• void al_color_html_to_rgb(char const *string,float *red, float *green, float *blue)
• void al_color_rgb_to_html(float red, float green, float blue,char *string)
• ALLEGRO_COLOR al_color_name(char const *name)
• bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)
• void al_color_rgb_to_cmyk(float red, float green, float blue,float *cyan, float *magenta, float *yellow, float
*key)
• void al_color_rgb_to_hsl(float red, float green, float blue,float *hue, float *saturation, float *lightness)
• void al_color_rgb_to_hsv(float red, float green, float blue,float *hue, float *saturation, float *value)
• char const *al_color_rgb_to_name(float r, float g, float b)
• void al_color_rgb_to_yuv(float red, float green, float blue,float *y, float *u, float *v)
• ALLEGRO_COLOR al_color_yuv(float y, float u, float v)
• void al_color_yuv_to_rgb(float y, float u, float v,float *red, float *green, float *blue)
• uint32_t al_get_allegro_color_version(void)
• void al_init_font_addon(void)
• void al_shutdown_font_addon(void)
• ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags)
• void al_destroy_font(ALLEGRO_FONT *f)
• int al_get_font_ascent(const ALLEGRO_FONT *f)
• int al_get_font_descent(const ALLEGRO_FONT *f)
• int al_get_text_width(const ALLEGRO_FONT *f, const char *str)
• int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)
• void al_draw_text(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x, float y, int flags,char const
*text)
• void al_draw_ustr(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x, float y, int flags,const
ALLEGRO_USTR *ustr)
• void al_draw_justified_text(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x1, float x2,float
y, float diff, int flags, const char *text)
• void al_draw_justified_ustr(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x1, float x2,float
y, float diff, int flags, const ALLEGRO_USTR *ustr)
627

More Related Content

PDF
The Ring programming language version 1.4 book - Part 23 of 30
PDF
The Ring programming language version 1.5.3 book - Part 95 of 184
PDF
The Ring programming language version 1.2 book - Part 62 of 84
PDF
The Ring programming language version 1.7 book - Part 115 of 196
PDF
The Ring programming language version 1.3 book - Part 64 of 88
PDF
The Ring programming language version 1.8 book - Part 120 of 202
PDF
The Ring programming language version 1.6 book - Part 89 of 189
PDF
The Ring programming language version 1.2 book - Part 61 of 84
The Ring programming language version 1.4 book - Part 23 of 30
The Ring programming language version 1.5.3 book - Part 95 of 184
The Ring programming language version 1.2 book - Part 62 of 84
The Ring programming language version 1.7 book - Part 115 of 196
The Ring programming language version 1.3 book - Part 64 of 88
The Ring programming language version 1.8 book - Part 120 of 202
The Ring programming language version 1.6 book - Part 89 of 189
The Ring programming language version 1.2 book - Part 61 of 84

What's hot (9)

PDF
The Ring programming language version 1.9 book - Part 126 of 210
PDF
The Ring programming language version 1.8 book - Part 119 of 202
PDF
The Ring programming language version 1.10 book - Part 130 of 212
PDF
The Ring programming language version 1.5.2 book - Part 83 of 181
PDF
The Ring programming language version 1.5.4 book - Part 84 of 185
PDF
The Ring programming language version 1.2 book - Part 64 of 84
PDF
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
PDF
The Ring programming language version 1.5.3 book - Part 93 of 184
PDF
Global Change, Species Diversity, and the Future of Marine Ecosystems
The Ring programming language version 1.9 book - Part 126 of 210
The Ring programming language version 1.8 book - Part 119 of 202
The Ring programming language version 1.10 book - Part 130 of 212
The Ring programming language version 1.5.2 book - Part 83 of 181
The Ring programming language version 1.5.4 book - Part 84 of 185
The Ring programming language version 1.2 book - Part 64 of 84
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
The Ring programming language version 1.5.3 book - Part 93 of 184
Global Change, Species Diversity, and the Future of Marine Ecosystems
Ad

Similar to The Ring programming language version 1.3 book - Part 65 of 88 (20)

PDF
The Ring programming language version 1.9 book - Part 127 of 210
PDF
The Ring programming language version 1.5.4 book - Part 85 of 185
PDF
The Ring programming language version 1.10 book - Part 129 of 212
PDF
The Ring programming language version 1.5.3 book - Part 94 of 184
PDF
The Ring programming language version 1.3 book - Part 66 of 88
PDF
The Ring programming language version 1.7 book - Part 114 of 196
PDF
The Ring programming language version 1.5.3 book - Part 96 of 184
PDF
The Ring programming language version 1.5.2 book - Part 82 of 181
PDF
The Ring programming language version 1.5.1 book - Part 81 of 180
PDF
The Ring programming language version 1.5.3 book - Part 97 of 184
PDF
The Ring programming language version 1.6 book - Part 88 of 189
PDF
The Ring programming language version 1.3 book - Part 67 of 88
PDF
The Ring programming language version 1.9 book - Part 128 of 210
PDF
The Ring programming language version 1.5.1 book - Part 84 of 180
PDF
The Ring programming language version 1.5.4 book - Part 86 of 185
PDF
The Ring programming language version 1.4.1 book - Part 23 of 31
PDF
The Ring programming language version 1.10 book - Part 134 of 212
PDF
The Ring programming language version 1.7 book - Part 119 of 196
PDF
The Ring programming language version 1.6 book - Part 90 of 189
PDF
The Ring programming language version 1.5.4 book - Part 88 of 185
The Ring programming language version 1.9 book - Part 127 of 210
The Ring programming language version 1.5.4 book - Part 85 of 185
The Ring programming language version 1.10 book - Part 129 of 212
The Ring programming language version 1.5.3 book - Part 94 of 184
The Ring programming language version 1.3 book - Part 66 of 88
The Ring programming language version 1.7 book - Part 114 of 196
The Ring programming language version 1.5.3 book - Part 96 of 184
The Ring programming language version 1.5.2 book - Part 82 of 181
The Ring programming language version 1.5.1 book - Part 81 of 180
The Ring programming language version 1.5.3 book - Part 97 of 184
The Ring programming language version 1.6 book - Part 88 of 189
The Ring programming language version 1.3 book - Part 67 of 88
The Ring programming language version 1.9 book - Part 128 of 210
The Ring programming language version 1.5.1 book - Part 84 of 180
The Ring programming language version 1.5.4 book - Part 86 of 185
The Ring programming language version 1.4.1 book - Part 23 of 31
The Ring programming language version 1.10 book - Part 134 of 212
The Ring programming language version 1.7 book - Part 119 of 196
The Ring programming language version 1.6 book - Part 90 of 189
The Ring programming language version 1.5.4 book - Part 88 of 185
Ad

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
PDF
The Ring programming language version 1.10 book - Part 211 of 212
PDF
The Ring programming language version 1.10 book - Part 210 of 212
PDF
The Ring programming language version 1.10 book - Part 208 of 212
PDF
The Ring programming language version 1.10 book - Part 207 of 212
PDF
The Ring programming language version 1.10 book - Part 205 of 212
PDF
The Ring programming language version 1.10 book - Part 206 of 212
PDF
The Ring programming language version 1.10 book - Part 204 of 212
PDF
The Ring programming language version 1.10 book - Part 203 of 212
PDF
The Ring programming language version 1.10 book - Part 202 of 212
PDF
The Ring programming language version 1.10 book - Part 201 of 212
PDF
The Ring programming language version 1.10 book - Part 200 of 212
PDF
The Ring programming language version 1.10 book - Part 199 of 212
PDF
The Ring programming language version 1.10 book - Part 198 of 212
PDF
The Ring programming language version 1.10 book - Part 197 of 212
PDF
The Ring programming language version 1.10 book - Part 196 of 212
PDF
The Ring programming language version 1.10 book - Part 195 of 212
PDF
The Ring programming language version 1.10 book - Part 194 of 212
PDF
The Ring programming language version 1.10 book - Part 193 of 212
PDF
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 192 of 212

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Big Data Technologies - Introduction.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation theory and applications.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Network Security Unit 5.pdf for BCA BBA.
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
MYSQL Presentation for SQL database connectivity
Big Data Technologies - Introduction.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Chapter 3 Spatial Domain Image Processing.pdf
sap open course for s4hana steps from ECC to s4
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
The AUB Centre for AI in Media Proposal.docx
Empathic Computing: Creating Shared Understanding
Encapsulation theory and applications.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Mobile App Security Testing_ A Comprehensive Guide.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx

The Ring programming language version 1.3 book - Part 65 of 88

  • 1. Ring Documentation, Release 1.3 • bool al_install_keyboard(void) • bool al_is_keyboard_installed(void) • void al_uninstall_keyboard(void) • void al_get_keyboard_state(ALLEGRO_KEYBOARD_STATE *ret_state) • bool al_key_down(const ALLEGRO_KEYBOARD_STATE *state, int keycode) • const char *al_keycode_to_name(int keycode) • bool al_set_keyboard_leds(int leds) • ALLEGRO_EVENT_SOURCE *al_get_keyboard_event_source(void) • void *al_malloc_with_context(size_t n,int line, const char *file, const char *func) • void al_free_with_context(void *ptr, int line, const char *file, const char *func) • void *al_realloc_with_context(void *ptr, size_t n,int line, const char *file, const char *func) • void *al_calloc_with_context(size_t count, size_t n,int line, const char *file, const char *func) • void al_set_memory_interface(ALLEGRO_MEMORY_INTERFACE *memory_interface) • int al_get_new_display_adapter(void) • void al_set_new_display_adapter(int adapter) • bool al_get_monitor_info(int adapter, ALLEGRO_MONITOR_INFO *info) • int al_get_num_video_adapters(void) • bool al_install_mouse(void) • bool al_is_mouse_installed(void) • void al_uninstall_mouse(void) • unsigned int al_get_mouse_num_axes(void) • unsigned int al_get_mouse_num_buttons(void) • void al_get_mouse_state(ALLEGRO_MOUSE_STATE *ret_state) • int al_get_mouse_state_axis(const ALLEGRO_MOUSE_STATE *state, int axis) • bool al_mouse_button_down(const ALLEGRO_MOUSE_STATE *state, int button) • bool al_set_mouse_xy(ALLEGRO_DISPLAY *display, int x, int y) • bool al_set_mouse_z(int z) • bool al_set_mouse_w(int w) • bool al_set_mouse_axis(int which, int value) • ALLEGRO_EVENT_SOURCE *al_get_mouse_event_source(void) • ALLEGRO_MOUSE_CURSOR *al_create_mouse_cursor(ALLEGRO_BITMAP *bmp,int x_focus, int y_focus) • void al_destroy_mouse_cursor(ALLEGRO_MOUSE_CURSOR *cursor) • bool al_set_mouse_cursor(ALLEGRO_DISPLAY *display, ALLEGRO_MOUSE_CURSOR *cursor) • bool al_set_system_mouse_cursor(ALLEGRO_DISPLAY *display,ALLEGRO_SYSTEM_MOUSE_CURSOR cursor_id) • bool al_get_mouse_cursor_position(int *ret_x, int *ret_y) 618
  • 2. Ring Documentation, Release 1.3 • bool al_hide_mouse_cursor(ALLEGRO_DISPLAY *display) • bool al_show_mouse_cursor(ALLEGRO_DISPLAY *display) • bool al_grab_mouse(ALLEGRO_DISPLAY *display) • bool al_ungrab_mouse(void) • ALLEGRO_PATH *al_create_path(const char *str) • ALLEGRO_PATH *al_create_path_for_directory(const char *str) • void al_destroy_path(ALLEGRO_PATH *path) • ALLEGRO_PATH *al_clone_path(const ALLEGRO_PATH *path) • bool al_join_paths(ALLEGRO_PATH *path, const ALLEGRO_PATH *tail) • bool al_rebase_path(const ALLEGRO_PATH *head, ALLEGRO_PATH *tail) • const char *al_get_path_drive(const ALLEGRO_PATH *path) • int al_get_path_num_components(const ALLEGRO_PATH *path) • const char *al_get_path_component(const ALLEGRO_PATH *path, int i) • const char *al_get_path_tail(const ALLEGRO_PATH *path) • const char *al_get_path_filename(const ALLEGRO_PATH *path) • const char *al_get_path_basename(const ALLEGRO_PATH *path) • const char *al_get_path_extension(const ALLEGRO_PATH *path) • void al_set_path_drive(ALLEGRO_PATH *path, const char *drive) • void al_append_path_component(ALLEGRO_PATH *path, const char *s) • void al_insert_path_component(ALLEGRO_PATH *path, int i, const char *s) • void al_replace_path_component(ALLEGRO_PATH *path, int i, const char *s) • void al_remove_path_component(ALLEGRO_PATH *path, int i) • void al_drop_path_tail(ALLEGRO_PATH *path) • void al_set_path_filename(ALLEGRO_PATH *path, const char *filename) • bool al_set_path_extension(ALLEGRO_PATH *path, char const *extension) • const char *al_path_cstr(const ALLEGRO_PATH *path, char delim) • bool al_make_path_canonical(ALLEGRO_PATH *path) • void al_restore_state(ALLEGRO_STATE const *state) • void al_store_state(ALLEGRO_STATE *state, int flags • int al_get_errno(void) • void al_set_errno(int errnum) • void al_uninstall_system(void) • bool al_is_system_installed(void) • uint32_t al_get_allegro_version(void) • ALLEGRO_PATH *al_get_standard_path(int id) • void al_set_exe_name(char const *path) 619
  • 3. Ring Documentation, Release 1.3 • void al_set_app_name(const char *app_name) • void al_set_org_name(const char *org_name) • const char *al_get_app_name(void) • const char *al_get_org_name(void) • ALLEGRO_CONFIG *al_get_system_config(void) • ALLEGRO_THREAD *al_create_thread(void) • void al_run_detached_thread(void) • void al_start_thread(ALLEGRO_THREAD *thread) • void al_join_thread(ALLEGRO_THREAD *thread, void **ret_value) • void al_set_thread_should_stop(ALLEGRO_THREAD *thread) • bool al_get_thread_should_stop(ALLEGRO_THREAD *thread) • void al_destroy_thread(ALLEGRO_THREAD *thread) • ALLEGRO_MUTEX *al_create_mutex(void) • ALLEGRO_MUTEX *al_create_mutex_recursive(void) • void al_lock_mutex(ALLEGRO_MUTEX *mutex) • void al_unlock_mutex(ALLEGRO_MUTEX *mutex) • void al_destroy_mutex(ALLEGRO_MUTEX *mutex) • ALLEGRO_COND *al_create_cond(void) • void al_destroy_cond(ALLEGRO_COND *cond) • void al_wait_cond(ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex) • int al_wait_cond_until(ALLEGRO_COND *cond, ALLEGRO_MUTEX *mutex,const ALLEGRO_TIMEOUT *timeout) • void al_broadcast_cond(ALLEGRO_COND *cond) • void al_signal_cond(ALLEGRO_COND *cond) • double al_get_time(void) • void al_init_timeout(ALLEGRO_TIMEOUT *timeout, double seconds) • void al_rest(double seconds) • ALLEGRO_TIMER *al_create_timer(double speed_secs) • void al_start_timer(ALLEGRO_TIMER *timer) • void al_stop_timer(ALLEGRO_TIMER *timer) • bool al_get_timer_started(const ALLEGRO_TIMER *timer) • void al_destroy_timer(ALLEGRO_TIMER *timer) • int64_t al_get_timer_count(const ALLEGRO_TIMER *timer) • void al_set_timer_count(ALLEGRO_TIMER *timer, int64_t new_count) • void al_add_timer_count(ALLEGRO_TIMER *timer, int64_t diff) • double al_get_timer_speed(const ALLEGRO_TIMER *timer) 620
  • 4. Ring Documentation, Release 1.3 • void al_set_timer_speed(ALLEGRO_TIMER *timer, double new_speed_secs) • ALLEGRO_EVENT_SOURCE *al_get_timer_event_source(ALLEGRO_TIMER *timer) • void al_copy_transform(ALLEGRO_TRANSFORM *dest, const ALLEGRO_TRANSFORM *src) • void al_use_transform(const ALLEGRO_TRANSFORM *trans) • const ALLEGRO_TRANSFORM *al_get_current_transform(void) • void al_invert_transform(ALLEGRO_TRANSFORM *trans) • int al_check_inverse(const ALLEGRO_TRANSFORM *trans, float tol) • void al_identity_transform(ALLEGRO_TRANSFORM *trans) • void al_build_transform(ALLEGRO_TRANSFORM *trans, float x, float y,float sx, float sy, float theta) • void al_translate_transform(ALLEGRO_TRANSFORM *trans, float x, float y) • void al_rotate_transform(ALLEGRO_TRANSFORM *trans, float theta) • void al_scale_transform(ALLEGRO_TRANSFORM *trans, float sx, float sy) • void al_transform_coordinates(const ALLEGRO_TRANSFORM *trans, float *x, float *y) • void al_compose_transform(ALLEGRO_TRANSFORM *trans, const ALLEGRO_TRANSFORM *other) • ALLEGRO_USTR *al_ustr_new(const char *s) • ALLEGRO_USTR *al_ustr_new_from_buffer(const char *s, size_t size) • void al_ustr_free(ALLEGRO_USTR *us) • const char *al_cstr(const ALLEGRO_USTR *us) • void al_ustr_to_buffer(const ALLEGRO_USTR *us, char *buffer, int size) • char *al_cstr_dup(const ALLEGRO_USTR *us) • ALLEGRO_USTR *al_ustr_dup(const ALLEGRO_USTR *us) • ALLEGRO_USTR *al_ustr_dup_substr(const ALLEGRO_USTR *us, int start_pos,int end_pos) • const ALLEGRO_USTR *al_ustr_empty_string(void) • const ALLEGRO_USTR *al_ref_cstr(ALLEGRO_USTR_INFO *info, const char *s) • const ALLEGRO_USTR *al_ref_buffer(ALLEGRO_USTR_INFO *info, const char *s, size_t size) • const ALLEGRO_USTR *al_ref_ustr(ALLEGRO_USTR_INFO *info, const ALLEGRO_USTR *us,int start_pos, int end_pos) • size_t al_ustr_size(const ALLEGRO_USTR *us) • size_t al_ustr_length(const ALLEGRO_USTR *us) • int al_ustr_offset(const ALLEGRO_USTR *us, int index) • bool al_ustr_next(const ALLEGRO_USTR *us, int *pos) • bool al_ustr_prev(const ALLEGRO_USTR *us, int *pos) • int32_t al_ustr_get(const ALLEGRO_USTR *ub, int pos) • int32_t al_ustr_get_next(const ALLEGRO_USTR *us, int *pos) • int32_t al_ustr_prev_get(const ALLEGRO_USTR *us, int *pos) • bool al_ustr_insert(ALLEGRO_USTR *us1, int pos, const ALLEGRO_USTR *us2) 621
  • 5. Ring Documentation, Release 1.3 • bool al_ustr_insert_cstr(ALLEGRO_USTR *us, int pos, const char *s) • size_t al_ustr_insert_chr(ALLEGRO_USTR *us, int pos, int32_t c) • bool al_ustr_append(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • bool al_ustr_append_cstr(ALLEGRO_USTR *us, const char *s) • size_t al_ustr_append_chr(ALLEGRO_USTR *us, int32_t c) • bool al_ustr_remove_chr(ALLEGRO_USTR *us, int pos) • bool al_ustr_remove_range(ALLEGRO_USTR *us, int start_pos, int end_pos) • bool al_ustr_truncate(ALLEGRO_USTR *us, int start_pos) • bool al_ustr_ltrim_ws(ALLEGRO_USTR *us) • bool al_ustr_rtrim_ws(ALLEGRO_USTR *us) • bool al_ustr_trim_ws(ALLEGRO_USTR *us) • bool al_ustr_assign(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • bool al_ustr_assign_substr(ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2,int start_pos, int end_pos) • bool al_ustr_assign_cstr(ALLEGRO_USTR *us1, const char *s) • size_t al_ustr_set_chr(ALLEGRO_USTR *us, int start_pos, int32_t c) • bool al_ustr_replace_range(ALLEGRO_USTR *us1, int start_pos1, int end_pos1,const ALLEGRO_USTR *us2) • int al_ustr_find_chr(const ALLEGRO_USTR *us, int start_pos, int32_t c) • int al_ustr_rfind_chr(const ALLEGRO_USTR *us, int end_pos, int32_t c) • int al_ustr_find_set(const ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *accept) • int al_ustr_find_set_cstr(const ALLEGRO_USTR *us, int start_pos,const char *accept) • int al_ustr_find_cset(const ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *reject) • int al_ustr_find_cset_cstr(const ALLEGRO_USTR *us, int start_pos,const char *reject) • int al_ustr_find_str(const ALLEGRO_USTR *haystack, int start_pos,const ALLEGRO_USTR *needle) • int al_ustr_find_cstr(const ALLEGRO_USTR *haystack, int start_pos,const char *needle) • int al_ustr_rfind_str(const ALLEGRO_USTR *haystack, int end_pos,const ALLEGRO_USTR *needle) • int al_ustr_rfind_cstr(const ALLEGRO_USTR *haystack, int end_pos,const char *needle) • bool al_ustr_find_replace(ALLEGRO_USTR *us, int start_pos,const ALLEGRO_USTR *find, const ALLE- GRO_USTR *replace) • bool al_ustr_find_replace_cstr(ALLEGRO_USTR *us, int start_pos,const char *find, const char *replace) • int al_ustr_compare(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • int al_ustr_ncompare(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2, int n) • bool al_ustr_equal(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • bool al_ustr_has_prefix(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • bool al_ustr_has_prefix_cstr(const ALLEGRO_USTR *us1, const char *s2) • bool al_ustr_has_suffix(const ALLEGRO_USTR *us1, const ALLEGRO_USTR *us2) • bool al_ustr_has_suffix_cstr(const ALLEGRO_USTR *us1, const char *s2) 622
  • 6. Ring Documentation, Release 1.3 • ALLEGRO_USTR *al_ustr_new_from_utf16(uint16_t const *s) • size_t al_ustr_size_utf16(const ALLEGRO_USTR *us) • size_t al_ustr_encode_utf16(const ALLEGRO_USTR *us, uint16_t *s,size_t n) • size_t al_utf8_width(int c) • size_t al_utf8_encode(char s[], int32_t c) • size_t al_utf16_width(int c) • LPDIRECT3DDEVICE9 al_get_d3d_device(ALLEGRO_DISPLAY *display) • LPDIRECT3DTEXTURE9 al_get_d3d_system_texture(ALLEGRO_BITMAP *bitmap) • LPDIRECT3DTEXTURE9 al_get_d3d_video_texture(ALLEGRO_BITMAP *bitmap) • bool al_have_d3d_non_pow2_texture_support(void) • bool al_have_d3d_non_square_texture_support(void) • void al_get_d3d_texture_position(ALLEGRO_BITMAP *bitmap, int *u, int *v) • bool al_is_d3d_device_lost(ALLEGRO_DISPLAY *display) • ALLEGRO_OGL_EXT_LIST *al_get_opengl_extension_list(void) • void *al_get_opengl_proc_address(const char *name) • GLuint al_get_opengl_texture(ALLEGRO_BITMAP *bitmap) • void al_get_opengl_texture_size(ALLEGRO_BITMAP *bitmap, int *w, int *h) • void al_get_opengl_texture_position(ALLEGRO_BITMAP *bitmap, int *u, int *v) • GLuint al_get_opengl_fbo(ALLEGRO_BITMAP *bitmap) • void al_remove_opengl_fbo(ALLEGRO_BITMAP *bitmap) • bool al_have_opengl_extension(const char *extension); • uint32_t al_get_opengl_version(void) • int al_get_opengl_variant(void) • void al_set_current_opengl_context(ALLEGRO_DISPLAY *display) • bool al_install_audio(void) • void al_uninstall_audio(void) • bool al_is_audio_installed(void) • bool al_reserve_samples(int reserve_samples) • uint32_t al_get_allegro_audio_version(void) • size_t al_get_audio_depth_size(ALLEGRO_AUDIO_DEPTH depth) • size_t al_get_channel_count(ALLEGRO_CHANNEL_CONF conf) • ALLEGRO_VOICE *al_create_voice(unsigned int freq,ALLEGRO_AUDIO_DEPTH depth, ALLE- GRO_CHANNEL_CONF chan_conf) • void al_destroy_voice(ALLEGRO_VOICE *voice) • void al_detach_voice(ALLEGRO_VOICE *voice) • bool al_attach_audio_stream_to_voice(ALLEGRO_AUDIO_STREAM *stream,ALLEGRO_VOICE *voice) 623
  • 7. Ring Documentation, Release 1.3 • bool al_attach_mixer_to_voice(ALLEGRO_MIXER *mixer, ALLEGRO_VOICE *voice) • bool al_attach_sample_instance_to_voice(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_VOICE *voice) • unsigned int al_get_voice_frequency(const ALLEGRO_VOICE *voice) • ALLEGRO_CHANNEL_CONF al_get_voice_channels(const ALLEGRO_VOICE *voice) • ALLEGRO_AUDIO_DEPTH al_get_voice_depth(const ALLEGRO_VOICE *voice) • bool al_get_voice_playing(const ALLEGRO_VOICE *voice) • bool al_set_voice_playing(ALLEGRO_VOICE *voice, bool val) • unsigned int al_get_voice_position(const ALLEGRO_VOICE *voice) • bool al_set_voice_position(ALLEGRO_VOICE *voice, unsigned int val) • ALLEGRO_SAMPLE *al_create_sample(void *buf, unsigned int samples,unsigned int freq, ALLE- GRO_AUDIO_DEPTH depth,ALLEGRO_CHANNEL_CONF chan_conf, bool free_buf) • void al_destroy_sample(ALLEGRO_SAMPLE *spl) • bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,int loop, ALLE- GRO_SAMPLE_ID *ret_id) • void al_stop_sample(ALLEGRO_SAMPLE_ID *spl_id) • void al_stop_samples(void) • ALLEGRO_CHANNEL_CONF al_get_sample_channels(const ALLEGRO_SAMPLE *spl) • ALLEGRO_AUDIO_DEPTH al_get_sample_depth(const ALLEGRO_SAMPLE *spl) • unsigned int al_get_sample_frequency(const ALLEGRO_SAMPLE *spl) • unsigned int al_get_sample_length(const ALLEGRO_SAMPLE *spl) • void *al_get_sample_data(const ALLEGRO_SAMPLE *spl) • ALLEGRO_SAMPLE_INSTANCE *al_create_sample_instance(ALLEGRO_SAMPLE *sample_data) • void al_destroy_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_play_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_stop_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl) • ALLEGRO_CHANNEL_CONF al_get_sample_instance_channels(const ALLEGRO_SAMPLE_INSTANCE *spl) • ALLEGRO_AUDIO_DEPTH al_get_sample_instance_depth(const ALLEGRO_SAMPLE_INSTANCE *spl) • unsigned int al_get_sample_instance_frequency(const ALLEGRO_SAMPLE_INSTANCE *spl) • unsigned int al_get_sample_instance_length(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_length(ALLEGRO_SAMPLE_INSTANCE *spl,unsigned int val) • unsigned int al_get_sample_instance_position(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_position(ALLEGRO_SAMPLE_INSTANCE *spl,unsigned int val) • float al_get_sample_instance_speed(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_speed(ALLEGRO_SAMPLE_INSTANCE *spl, float val) • float al_get_sample_instance_gain(const ALLEGRO_SAMPLE_INSTANCE *spl) 624
  • 8. Ring Documentation, Release 1.3 • bool al_set_sample_instance_gain(ALLEGRO_SAMPLE_INSTANCE *spl, float val) • float al_get_sample_instance_pan(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_pan(ALLEGRO_SAMPLE_INSTANCE *spl, float val) • float al_get_sample_instance_time(const ALLEGRO_SAMPLE_INSTANCE *spl) • ALLEGRO_PLAYMODE al_get_sample_instance_playmode(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_playmode(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_PLAYMODE val) • bool al_get_sample_instance_playing(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample_instance_playing(ALLEGRO_SAMPLE_INSTANCE *spl, bool val) • bool al_get_sample_instance_attached(const ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_detach_sample_instance(ALLEGRO_SAMPLE_INSTANCE *spl) • ALLEGRO_SAMPLE *al_get_sample(ALLEGRO_SAMPLE_INSTANCE *spl) • bool al_set_sample(ALLEGRO_SAMPLE_INSTANCE *spl, ALLEGRO_SAMPLE *data) • ALLEGRO_MIXER *al_create_mixer(unsigned int freq,ALLEGRO_AUDIO_DEPTH depth, ALLE- GRO_CHANNEL_CONF chan_conf) • void al_destroy_mixer(ALLEGRO_MIXER *mixer) • ALLEGRO_MIXER *al_get_default_mixer(void) • bool al_set_default_mixer(ALLEGRO_MIXER *mixer) • bool al_restore_default_mixer(void) • bool al_attach_mixer_to_mixer(ALLEGRO_MIXER *stream, ALLEGRO_MIXER *mixer) • bool al_attach_sample_instance_to_mixer(ALLEGRO_SAMPLE_INSTANCE *spl,ALLEGRO_MIXER *mixer) • bool al_attach_audio_stream_to_mixer(ALLEGRO_AUDIO_STREAM *stream, ALLEGRO_MIXER *mixer) • unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer) • bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val) • ALLEGRO_CHANNEL_CONF al_get_mixer_channels(const ALLEGRO_MIXER *mixer) • ALLEGRO_AUDIO_DEPTH al_get_mixer_depth(const ALLEGRO_MIXER *mixer) • float al_get_mixer_gain(const ALLEGRO_MIXER *mixer) • bool al_set_mixer_gain(ALLEGRO_MIXER *mixer, float new_gain) • ALLEGRO_MIXER_QUALITY al_get_mixer_quality(const ALLEGRO_MIXER *mixer) • bool al_set_mixer_quality(ALLEGRO_MIXER *mixer, ALLEGRO_MIXER_QUALITY new_quality) • bool al_get_mixer_playing(const ALLEGRO_MIXER *mixer) • bool al_set_mixer_playing(ALLEGRO_MIXER *mixer, bool val) • bool al_get_mixer_attached(const ALLEGRO_MIXER *mixer) • bool al_detach_mixer(ALLEGRO_MIXER *mixer) • void al_destroy_audio_stream(ALLEGRO_AUDIO_STREAM *stream) 625
  • 9. Ring Documentation, Release 1.3 • ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(ALLEGRO_AUDIO_STREAM *stream) • void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream) • bool al_rewind_audio_stream(ALLEGRO_AUDIO_STREAM *stream) • unsigned int al_get_audio_stream_frequency(const ALLEGRO_AUDIO_STREAM *stream) • ALLEGRO_CHANNEL_CONF al_get_audio_stream_channels(const ALLEGRO_AUDIO_STREAM *stream) • ALLEGRO_AUDIO_DEPTH al_get_audio_stream_depth(const ALLEGRO_AUDIO_STREAM *stream) • unsigned int al_get_audio_stream_length(const ALLEGRO_AUDIO_STREAM *stream) • float al_get_audio_stream_speed(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_speed(ALLEGRO_AUDIO_STREAM *stream, float val) • float al_get_audio_stream_gain(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_gain(ALLEGRO_AUDIO_STREAM *stream, float val) • float al_get_audio_stream_pan(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_pan(ALLEGRO_AUDIO_STREAM *stream, float val) • bool al_get_audio_stream_playing(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_playing(ALLEGRO_AUDIO_STREAM *stream, bool val) • ALLEGRO_PLAYMODE al_get_audio_stream_playmode(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_playmode(ALLEGRO_AUDIO_STREAM *stream,ALLEGRO_PLAYMODE val) • bool al_get_audio_stream_attached(const ALLEGRO_AUDIO_STREAM *stream) • bool al_detach_audio_stream(ALLEGRO_AUDIO_STREAM *stream) • void *al_get_audio_stream_fragment(const ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val) • unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream) • unsigned int al_get_available_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream) • bool al_seek_audio_stream_secs(ALLEGRO_AUDIO_STREAM *stream, double time) • double al_get_audio_stream_position_secs(ALLEGRO_AUDIO_STREAM *stream) • double al_get_audio_stream_length_secs(ALLEGRO_AUDIO_STREAM *stream) • bool al_set_audio_stream_loop_secs(ALLEGRO_AUDIO_STREAM *stream,double start, double end) • ALLEGRO_SAMPLE *al_load_sample(const char *filename) • ALLEGRO_SAMPLE al_load_sample_f(ALLEGRO_FILE fp, const char *ident) • ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,size_t buffer_count, unsigned int samples) • ALLEGRO_AUDIO_STREAM al_load_audio_stream_f(ALLEGRO_FILE fp, const char *ident,size_t buffer_count, unsigned int samples) • bool al_save_sample(const char *filename, ALLEGRO_SAMPLE *spl) • bool al_save_sample_f(ALLEGRO_FILE *fp, const char *ident, ALLEGRO_SAMPLE *spl) 626
  • 10. Ring Documentation, Release 1.3 • bool al_init_acodec_addon(void) • uint32_t al_get_allegro_acodec_version(void) • ALLEGRO_COLOR al_color_cmyk(float c, float m, float y, float k) • void al_color_cmyk_to_rgb(float cyan, float magenta, float yellow,float key, float *red, float *green, float *blue) • ALLEGRO_COLOR al_color_hsl(float h, float s, float l) • void al_color_hsl_to_rgb(float hue, float saturation, float lightness,float *red, float *green, float *blue) • ALLEGRO_COLOR al_color_hsv(float h, float s, float v) • void al_color_hsv_to_rgb(float hue, float saturation, float value,float *red, float *green, float *blue) • ALLEGRO_COLOR al_color_html(char const *string) • void al_color_html_to_rgb(char const *string,float *red, float *green, float *blue) • void al_color_rgb_to_html(float red, float green, float blue,char *string) • ALLEGRO_COLOR al_color_name(char const *name) • bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b) • void al_color_rgb_to_cmyk(float red, float green, float blue,float *cyan, float *magenta, float *yellow, float *key) • void al_color_rgb_to_hsl(float red, float green, float blue,float *hue, float *saturation, float *lightness) • void al_color_rgb_to_hsv(float red, float green, float blue,float *hue, float *saturation, float *value) • char const *al_color_rgb_to_name(float r, float g, float b) • void al_color_rgb_to_yuv(float red, float green, float blue,float *y, float *u, float *v) • ALLEGRO_COLOR al_color_yuv(float y, float u, float v) • void al_color_yuv_to_rgb(float y, float u, float v,float *red, float *green, float *blue) • uint32_t al_get_allegro_color_version(void) • void al_init_font_addon(void) • void al_shutdown_font_addon(void) • ALLEGRO_FONT *al_load_font(char const *filename, int size, int flags) • void al_destroy_font(ALLEGRO_FONT *f) • int al_get_font_ascent(const ALLEGRO_FONT *f) • int al_get_font_descent(const ALLEGRO_FONT *f) • int al_get_text_width(const ALLEGRO_FONT *f, const char *str) • int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr) • void al_draw_text(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x, float y, int flags,char const *text) • void al_draw_ustr(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x, float y, int flags,const ALLEGRO_USTR *ustr) • void al_draw_justified_text(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x1, float x2,float y, float diff, int flags, const char *text) • void al_draw_justified_ustr(const ALLEGRO_FONT *font,ALLEGRO_COLOR color, float x1, float x2,float y, float diff, int flags, const ALLEGRO_USTR *ustr) 627