--- /srv/reproducible-results/rbuild-debian/r-b-build.s8hz9oFE/b1/allegro5_5.2.8.0+dfsg-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.s8hz9oFE/b2/allegro5_5.2.8.0+dfsg-1_amd64.changes ├── Files │ @@ -1,9 +1,9 @@ │ │ - 5190ef15884a1ca4a0de1c67035212e1 1503520 doc optional allegro5-doc_5.2.8.0+dfsg-1_all.deb │ + 2362a2992dc0a74f5d578f285d4fb88d 1504508 doc optional allegro5-doc_5.2.8.0+dfsg-1_all.deb │ 83a6cf74ff328339f6bc0507531580c4 16960 libdevel optional liballegro-acodec5-dev_5.2.8.0+dfsg-1_amd64.deb │ c2d97e80754958afbb6cf1e27685ed06 60704 debug optional liballegro-acodec5.2-dbgsym_5.2.8.0+dfsg-1_amd64.deb │ 60ade78a8519a6782c4b7554bd475c41 34716 libs optional liballegro-acodec5.2_5.2.8.0+dfsg-1_amd64.deb │ 747c67c74b3a99c5895bc9267d102b13 19740 libdevel optional liballegro-audio5-dev_5.2.8.0+dfsg-1_amd64.deb │ c77d29dfc038a99d79804b7c2d2f0633 108060 debug optional liballegro-audio5.2-dbgsym_5.2.8.0+dfsg-1_amd64.deb │ 47886feedd76c63272150acd2f81111a 58268 libs optional liballegro-audio5.2_5.2.8.0+dfsg-1_amd64.deb │ 1eb91b927fedee6cc797539e8af51d80 18028 libdevel optional liballegro-dialog5-dev_5.2.8.0+dfsg-1_amd64.deb ├── allegro5-doc_5.2.8.0+dfsg-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2022-12-06 16:59:12.000000 debian-binary │ │ --rw-r--r-- 0 0 0 31420 2022-12-06 16:59:12.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 1471908 2022-12-06 16:59:12.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 31416 2022-12-06 16:59:12.000000 control.tar.xz │ │ +-rw-r--r-- 0 0 0 1472900 2022-12-06 16:59:12.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./control │ │ │ │ @@ -1,13 +1,13 @@ │ │ │ │ Package: allegro5-doc │ │ │ │ Source: allegro5 │ │ │ │ Version: 2:5.2.8.0+dfsg-1 │ │ │ │ Architecture: all │ │ │ │ Maintainer: Debian Games Team │ │ │ │ -Installed-Size: 5509 │ │ │ │ +Installed-Size: 5528 │ │ │ │ Depends: fonts-dejavu-core │ │ │ │ Section: doc │ │ │ │ Priority: optional │ │ │ │ Multi-Arch: foreign │ │ │ │ Homepage: https://liballeg.org/ │ │ │ │ Description: documentation for the Allegro 5 library │ │ │ │ This package contains the Allegro documentation in various formats, │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -197,65 +197,65 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 5396 2017-05-30 18:25:58.000000 ./usr/share/doc/allegro5-doc/examples/ex_window_maximized.c │ │ │ │ -rw-r--r-- 0 root (0) root (0) 2660 2015-08-31 04:43:15.000000 ./usr/share/doc/allegro5-doc/examples/ex_window_title.c │ │ │ │ -rw-r--r-- 0 root (0) root (0) 4515 2021-10-23 04:51:52.000000 ./usr/share/doc/allegro5-doc/examples/ex_windows.c │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1674 2013-11-06 11:26:41.000000 ./usr/share/doc/allegro5-doc/examples/ex_winfull.c │ │ │ │ -rw-r--r-- 0 root (0) root (0) 19521 2016-02-21 20:36:27.000000 ./usr/share/doc/allegro5-doc/examples/nihgui.cpp │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6456 2013-07-07 19:37:58.000000 ./usr/share/doc/allegro5-doc/examples/nihgui.hpp │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/ │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11276 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 222882 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/audio.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11365 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/acodec.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 222951 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/audio.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36350 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/autosuggest.js │ │ │ │ --rw-r--r-- 0 root (0) root (0) 65603 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/color.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 65575 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/color.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 36835 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/config.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17025 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/direct3d.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81262 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/display.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 76550 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/events.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 61011 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/file.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81265 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/display.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76630 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/events.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 61020 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/file.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 55786 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/fixed.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 91587 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/font.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 93506 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/font.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 41161 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/fshook.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 13087 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16408 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/getting_started.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 219032 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 219103 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/graphics.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 68337 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/haptic.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11587 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/image.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11976 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/image.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21480 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/LINE_CAP.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15893 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/LINE_JOIN.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65065 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/audio.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16058 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/primitives1.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25805 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/images/primitives2.png │ │ │ │ -rw-r--r-- 0 root (0) root (0) 6469 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 109449 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/index_all.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 34302 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/joystick.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 22567 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/keyboard.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 8705 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/main.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 10009 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 10148 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/memfile.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 21741 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/memory.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10021 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/misc.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17322 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/monitor.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 39567 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 70997 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/native_dialog.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 39570 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/mouse.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 76509 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/native_dialog.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 26484 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/opengl.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 3973 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/pandoc.css │ │ │ │ -rw-r--r-- 0 root (0) root (0) 37115 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/path.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 11331 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 11469 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/physfs.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 25747 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/platform.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 133765 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/primitives.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 143428 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/primitives.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 71562 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/search_index.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 44272 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/shader.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 15417 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/state.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 66981 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/system.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 34570 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/threads.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 34546 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/threads.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 12236 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/time.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24471 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/timer.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 21454 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/touch.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 81138 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 21450 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/touch.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 81161 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/transformations.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 100613 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/utf8.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 28934 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/video.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 30831 2022-12-06 16:59:12.000000 ./usr/share/doc/allegro5-doc/refman/video.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-12-06 16:59:12.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 300 2022-12-06 16:50:02.000000 ./usr/share/doc-base/allegro5-doc.allegro5 │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-12-06 16:59:12.000000 ./usr/share/man/ │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2022-12-06 16:59:12.000000 ./usr/share/man/man3/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 536 2022-12-06 16:59:12.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEPTH.3alleg5.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 388 2022-12-06 16:59:12.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_DEVICE.3alleg5.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 685 2022-12-06 16:59:12.000000 ./usr/share/man/man3/ALLEGRO_AUDIO_EVENT_TYPE.3alleg5.gz │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/acodec.html │ │ │ │ @@ -225,11 +225,14 @@ │ │ │ │ id="al_get_allegro_acodec_version">al_get_allegro_acodec_version │ │ │ │
uint32_t al_get_allegro_acodec_version(void)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

│ │ │ │ - │ │ │ │ +

│ │ │ │ +Allegro version 5.2.8 │ │ │ │ + - Last updated: 2024-01-08 05:22:50 UTC │ │ │ │ +

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -82,7 +82,8 @@ │ │ │ │ │ Returns true if the acodec addon is initialized, otherwise returns false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ ****** al_get_allegro_acodec_version ****** │ │ │ │ │ uint32_t al_get_allegro_acodec_version(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the (compiled) version of the addon, in the same format as │ │ │ │ │ al_get_allegro_version. │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:50 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/audio.html │ │ │ │ @@ -551,17 +551,17 @@ │ │ │ │ href="audio.html#al_set_default_mixer">al_set_default_mixer, al_play_sample

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_play_sample

│ │ │ │
bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed,
│ │ │ │     ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1636,15 +1636,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_create_audio_stream

│ │ │ │
ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count,
│ │ │ │     unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth,
│ │ │ │     ALLEGRO_CHANNEL_CONF chan_conf)
│ │ │ │

Source │ │ │ │ @@ -1699,17 +1699,17 @@ │ │ │ │ before the audio system is shut down.

│ │ │ │ │ │ │ │

Examples:

│ │ │ │
│ │ │ │

al_load_audio_stream

│ │ │ │
ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename,
│ │ │ │     size_t buffer_count, unsigned int samples)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1790,15 +1790,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_audio_stream_event_source

│ │ │ │
ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source(
│ │ │ │     ALLEGRO_AUDIO_STREAM *stream)
│ │ │ │

Source │ │ │ │ @@ -1812,15 +1812,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_drain_audio_stream

│ │ │ │
void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

You should call this to finalise an audio stream that you will no │ │ │ │ @@ -2110,17 +2110,17 @@ │ │ │ │ al_get_audio_stream_length

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_set_audio_stream_fragment

│ │ │ │
bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

This function needs to be called for every successful call of See also: al_get_audio_stream_fragment

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_audio_stream_fragments

│ │ │ │
unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -3061,17 +3061,17 @@ │ │ │ │ href="audio.html#al_set_default_mixer">al_set_default_mixer, al_restore_default_mixer

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_set_default_mixer

│ │ │ │
bool al_set_default_mixer(ALLEGRO_MIXER *mixer)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -3188,15 +3188,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_mixer_frequency

│ │ │ │
unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -3370,18 +3370,18 @@ │ │ │ │
│ │ │ │

Note: The callback is called from a dedicated audio │ │ │ │ thread.

│ │ │ │
│ │ │ │

Examples:

│ │ │ │ │ │ │ │

Miscelaneous

│ │ │ │

ALLEGRO_AUDIO_DEPTH

│ │ │ │
enum ALLEGRO_AUDIO_DEPTH
│ │ │ │

│ │ │ │

Fill a buffer with silence, for the given format and channel │ │ │ │ configuration. The buffer must have enough space for the given number of │ │ │ │ samples, and be properly aligned.

│ │ │ │

Since: 5.1.8

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:50 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -285,16 +285,16 @@ │ │ │ │ │ \ . │ │ │ │ │ sample instance N │ │ │ │ │ Returns true on success, false on error. al_install_audio must have been called │ │ │ │ │ first. │ │ │ │ │ See also: al_set_default_mixer, al_play_sample │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_audio_props.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_play_sample ***** │ │ │ │ │ bool al_play_sample(ALLEGRO_SAMPLE *spl, float gain, float pan, float speed, │ │ │ │ │ ALLEGRO_PLAYMODE loop, ALLEGRO_SAMPLE_ID *ret_id) │ │ │ │ │ Source_Code │ │ │ │ │ Plays a sample on one of the sample instances created by al_reserve_samples. │ │ │ │ │ Returns true on success, false on failure. Playback may fail because all the │ │ │ │ │ reserved sample instances are currently used. │ │ │ │ │ @@ -924,15 +924,15 @@ │ │ │ │ │ with supplying data to the stream. │ │ │ │ │ If the stream is created by al_load_audio_stream or al_play_audio_stream then │ │ │ │ │ it will also generate an ALLEGRO_EVENT_AUDIO_STREAM_FINISHED event if it │ │ │ │ │ reaches the end of the file and is not set to loop. │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ * ex_stream_file.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_create_audio_stream ***** │ │ │ │ │ ALLEGRO_AUDIO_STREAM *al_create_audio_stream(size_t fragment_count, │ │ │ │ │ unsigned int frag_samples, unsigned int freq, ALLEGRO_AUDIO_DEPTH depth, │ │ │ │ │ ALLEGRO_CHANNEL_CONF chan_conf) │ │ │ │ │ Source_Code │ │ │ │ │ Creates an ALLEGRO_AUDIO_STREAM. The stream will be set to play by default. It │ │ │ │ │ will feed audio data from a buffer, which is split into a number of fragments. │ │ │ │ │ @@ -967,16 +967,16 @@ │ │ │ │ │ The size of the complete buffer is: │ │ │ │ │ buffer_size = bytes_per_fragment * fragment_count │ │ │ │ │ Note: Unlike many Allegro objects, audio streams are not implicitly │ │ │ │ │ destroyed when Allegro is shut down. You must destroy them manually │ │ │ │ │ with al_destroy_audio_stream before the audio system is shut down. │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_resample_test.c │ │ │ │ │ + * ex_synth.cpp │ │ │ │ │ ***** al_load_audio_stream ***** │ │ │ │ │ ALLEGRO_AUDIO_STREAM *al_load_audio_stream(const char *filename, │ │ │ │ │ size_t buffer_count, unsigned int samples) │ │ │ │ │ Source_Code │ │ │ │ │ Loads an audio file from disk as it is needed. │ │ │ │ │ Unlike regular streams, the one returned by this function need not be fed by │ │ │ │ │ the user; the library will automatically read more of the file as it is needed. │ │ │ │ │ @@ -1023,26 +1023,26 @@ │ │ │ │ │ al_load_audio_stream. │ │ │ │ │ Note: If the stream is still attached to a mixer or voice, │ │ │ │ │ al_detach_audio_stream is automatically called on it first. │ │ │ │ │ See also: al_drain_audio_stream. │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ * ex_stream_file.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_get_audio_stream_event_source ***** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_get_audio_stream_event_source( │ │ │ │ │ ALLEGRO_AUDIO_STREAM *stream) │ │ │ │ │ Source_Code │ │ │ │ │ Retrieve the associated event source. │ │ │ │ │ See al_get_audio_stream_fragment for a description of the │ │ │ │ │ ALLEGRO_EVENT_AUDIO_STREAM_FRAGMENT event that audio streams emit. │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ * ex_stream_file.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_drain_audio_stream ***** │ │ │ │ │ void al_drain_audio_stream(ALLEGRO_AUDIO_STREAM *stream) │ │ │ │ │ Source_Code │ │ │ │ │ You should call this to finalise an audio stream that you will no longer be │ │ │ │ │ feeding, to wait for all pending buffers to finish playing. The stream’s │ │ │ │ │ playing state will change to false. │ │ │ │ │ See also: al_destroy_audio_stream │ │ │ │ │ @@ -1201,27 +1201,27 @@ │ │ │ │ │ that al_get_audio_stream_fragment will not return NULL, so you still │ │ │ │ │ must check for it. │ │ │ │ │ See also: al_set_audio_stream_fragment, al_get_audio_stream_event_source, │ │ │ │ │ al_get_audio_stream_frequency, al_get_audio_stream_channels, │ │ │ │ │ al_get_audio_stream_depth, al_get_audio_stream_length │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_resample_test.c │ │ │ │ │ + * ex_synth.cpp │ │ │ │ │ ***** al_set_audio_stream_fragment ***** │ │ │ │ │ bool al_set_audio_stream_fragment(ALLEGRO_AUDIO_STREAM *stream, void *val) │ │ │ │ │ Source_Code │ │ │ │ │ This function needs to be called for every successful call of │ │ │ │ │ al_get_audio_stream_fragment to indicate that the buffer (pointed to by val) is │ │ │ │ │ filled with new data. │ │ │ │ │ See also: al_get_audio_stream_fragment │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_resample_test.c │ │ │ │ │ + * ex_synth.cpp │ │ │ │ │ ***** al_get_audio_stream_fragments ***** │ │ │ │ │ unsigned int al_get_audio_stream_fragments(const ALLEGRO_AUDIO_STREAM *stream) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the number of fragments this stream uses. This is the same value as │ │ │ │ │ passed to al_create_audio_stream when a new stream is created. │ │ │ │ │ See also: al_get_available_audio_stream_fragments │ │ │ │ │ ***** al_get_available_audio_stream_fragments ***** │ │ │ │ │ @@ -1739,16 +1739,16 @@ │ │ │ │ │ configurations of mixers and voices can be used, in most cases a single mixer │ │ │ │ │ attached to a voice is what you want. The default mixer is used by │ │ │ │ │ al_play_sample. │ │ │ │ │ See also: al_reserve_samples, al_play_sample, al_set_default_mixer, │ │ │ │ │ al_restore_default_mixer │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_audio_props.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_set_default_mixer ***** │ │ │ │ │ bool al_set_default_mixer(ALLEGRO_MIXER *mixer) │ │ │ │ │ Source_Code │ │ │ │ │ Sets the default mixer. All samples started with al_play_sample will be stopped │ │ │ │ │ and all sample instances returned by al_lock_sample_id will be invalidated. If │ │ │ │ │ you are using your own mixer, this should be called before al_reserve_samples. │ │ │ │ │ Returns true on success, false on error. │ │ │ │ │ @@ -1810,15 +1810,15 @@ │ │ │ │ │ Attach an audio stream to a mixer. The stream must not already be attached to │ │ │ │ │ anything. │ │ │ │ │ Returns true on success, false on failure. │ │ │ │ │ See also: al_detach_audio_stream. │ │ │ │ │ Examples: │ │ │ │ │ * ex_saw.c │ │ │ │ │ * ex_stream_file.c │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ***** al_get_mixer_frequency ***** │ │ │ │ │ unsigned int al_get_mixer_frequency(const ALLEGRO_MIXER *mixer) │ │ │ │ │ Source_Code │ │ │ │ │ Return the mixer frequency (in Hz). │ │ │ │ │ See also: al_set_mixer_frequency │ │ │ │ │ ***** al_set_mixer_frequency ***** │ │ │ │ │ bool al_set_mixer_frequency(ALLEGRO_MIXER *mixer, unsigned int val) │ │ │ │ │ @@ -1906,16 +1906,16 @@ │ │ │ │ │ void *pp_callback_userdata) │ │ │ │ │ Source_Code │ │ │ │ │ Sets a post-processing filter function that’s called after the attached │ │ │ │ │ streams have been mixed. The buffer’s format will be whatever the mixer was │ │ │ │ │ created with. The sample count and user-data pointer is also passed. │ │ │ │ │ Note: The callback is called from a dedicated audio thread. │ │ │ │ │ Examples: │ │ │ │ │ - * ex_synth.cpp │ │ │ │ │ * ex_resample_test.c │ │ │ │ │ + * ex_synth.cpp │ │ │ │ │ * ex_mixer_pp.c │ │ │ │ │ ****** Miscelaneous ****** │ │ │ │ │ ***** ALLEGRO_AUDIO_DEPTH ***** │ │ │ │ │ enum ALLEGRO_AUDIO_DEPTH │ │ │ │ │ Source_Code │ │ │ │ │ Sample depth and type as well as signedness. Mixers only use 32-bit signed │ │ │ │ │ float (-1..+1), or 16-bit signed integers. Signedness is determined by an │ │ │ │ │ @@ -2022,8 +2022,8 @@ │ │ │ │ │ void al_fill_silence(void *buf, unsigned int samples, │ │ │ │ │ ALLEGRO_AUDIO_DEPTH depth, ALLEGRO_CHANNEL_CONF chan_conf) │ │ │ │ │ Source_Code │ │ │ │ │ Fill a buffer with silence, for the given format and channel configuration. The │ │ │ │ │ buffer must have enough space for the given number of samples, and be properly │ │ │ │ │ aligned. │ │ │ │ │ Since: 5.1.8 │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:50 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/color.html │ │ │ │ @@ -428,15 +428,15 @@ │ │ │ │

Examples:

│ │ │ │
│ │ │ │

al_color_name_to_rgb

│ │ │ │
bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Parameters:

│ │ │ │ @@ -942,12 +942,12 @@ │ │ │ │

Convert linear sRGB color values to gamma corrected (i.e. normal) RGB │ │ │ │ values.

│ │ │ │

Since: 5.2.8

│ │ │ │

See also: [al_color_linera], al_color_rgb_to_linear

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:52 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -217,15 +217,15 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Return an ALLEGRO_COLOR with the given name. If the color is not found then │ │ │ │ │ black is returned. │ │ │ │ │ See al_color_name_to_rgb for the list of names. │ │ │ │ │ Examples: │ │ │ │ │ * ex_multisample_target.c │ │ │ │ │ * ex_clip.c │ │ │ │ │ - * ex_native_filechooser.c │ │ │ │ │ + * ex_blit.c │ │ │ │ │ ****** al_color_name_to_rgb ****** │ │ │ │ │ bool al_color_name_to_rgb(char const *name, float *r, float *g, float *b) │ │ │ │ │ Source_Code │ │ │ │ │ Parameters: │ │ │ │ │ * name - The (lowercase) name of the color. │ │ │ │ │ * r, g, b - If one of the recognized color names below is passed, the │ │ │ │ │ corresponding RGB values in the range 0..1 are written. │ │ │ │ │ @@ -545,8 +545,8 @@ │ │ │ │ │ ****** al_color_linear_to_rgb ****** │ │ │ │ │ void al_color_linear_to_rgb(float r, float g, float b, │ │ │ │ │ float *red, float *green, float *blue) │ │ │ │ │ Source_Code │ │ │ │ │ Convert linear sRGB color values to gamma corrected (i.e. normal) RGB values. │ │ │ │ │ Since: 5.2.8 │ │ │ │ │ See also: [al_color_linera], al_color_rgb_to_linear │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:52 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/config.html │ │ │ │ @@ -564,12 +564,12 @@ │ │ │ │

Merge one configuration structure into another. Values in │ │ │ │ configuration ‘add’ override those in ‘master’. ‘master’ is modified. │ │ │ │ Comments from ‘add’ are not retained.

│ │ │ │

See also: al_merge_config

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:05 UTC │ │ │ │ + - Last updated: 2024-01-08 05:21:53 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -297,8 +297,8 @@ │ │ │ │ │ ****** al_merge_config_into ****** │ │ │ │ │ void al_merge_config_into(ALLEGRO_CONFIG *master, const ALLEGRO_CONFIG *add) │ │ │ │ │ Source_Code │ │ │ │ │ Merge one configuration structure into another. Values in configuration │ │ │ │ │ ‘add’ override those in ‘master’. ‘master’ is modified. Comments │ │ │ │ │ from ‘add’ are not retained. │ │ │ │ │ See also: al_merge_config │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:05 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:21:53 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/direct3d.html │ │ │ │ @@ -297,12 +297,12 @@ │ │ │ │ is restored. In the callback you should restore any d3d resources you │ │ │ │ have created yourself. The callback receives the affected display as a │ │ │ │ parameter.

│ │ │ │

Pass NULL to disable the callback.

│ │ │ │

Since: 5.1.0

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:24 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:47 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -132,8 +132,8 @@ │ │ │ │ │ void (*callback)(ALLEGRO_DISPLAY *display)) │ │ │ │ │ Source_Code │ │ │ │ │ The callback will be called whenever a D3D device that has been reset is │ │ │ │ │ restored. In the callback you should restore any d3d resources you have created │ │ │ │ │ yourself. The callback receives the affected display as a parameter. │ │ │ │ │ Pass NULL to disable the callback. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:24 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:47 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/display.html │ │ │ │ @@ -303,17 +303,17 @@ │ │ │ │ Code

│ │ │ │

An opaque type representing an open display or window.

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_create_display

│ │ │ │
ALLEGRO_DISPLAY *al_create_display(int w, int h)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Create a display, or window, with the specified dimensions. The │ │ │ │ @@ -521,15 +521,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_new_display_option

│ │ │ │
int al_get_new_display_option(int option, int *importance)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Retrieve an extra display setting which was previously set with documentation on │ │ │ │ events for a list of the events displays will generate.

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_backbuffer

│ │ │ │
ALLEGRO_BITMAP *al_get_backbuffer(ALLEGRO_DISPLAY *display)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Return a special bitmap representing the back-buffer of the │ │ │ │ @@ -942,35 +942,35 @@ │ │ │ │

See also: al_get_display_height

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_display_height

│ │ │ │
int al_get_display_height(ALLEGRO_DISPLAY *display)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Gets the height of the display. This is like SCREEN_H in Allegro │ │ │ │ 4.x.

│ │ │ │

See also: al_get_display_width

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_resize_display

│ │ │ │
bool al_resize_display(ALLEGRO_DISPLAY *display, int width, int height)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Resize the display. Returns true on success, or false on error. This │ │ │ │ @@ -1398,17 +1398,17 @@ │ │ │ │

See also: ALLEGRO_EVENT_DISPLAY_HALT_DRAWING

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_acknowledge_drawing_resume

│ │ │ │
void al_acknowledge_drawing_resume(ALLEGRO_DISPLAY *display)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1500,12 +1500,12 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:08 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:13 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -130,16 +130,16 @@ │ │ │ │ │ ****** Display creation ****** │ │ │ │ │ ***** ALLEGRO_DISPLAY ***** │ │ │ │ │ typedef struct ALLEGRO_DISPLAY ALLEGRO_DISPLAY; │ │ │ │ │ Source_Code │ │ │ │ │ An opaque type representing an open display or window. │ │ │ │ │ Examples: │ │ │ │ │ * ex_monitorinfo.c │ │ │ │ │ - * common.c │ │ │ │ │ * ex_d3d.cpp │ │ │ │ │ + * ex_keyboard_focus.c │ │ │ │ │ ***** al_create_display ***** │ │ │ │ │ ALLEGRO_DISPLAY *al_create_display(int w, int h) │ │ │ │ │ Source_Code │ │ │ │ │ Create a display, or window, with the specified dimensions. The parameters of │ │ │ │ │ the display are determined by the last calls to al_set_new_display_*. Default │ │ │ │ │ parameters are used if none are set explicitly. Creating a new display will │ │ │ │ │ automatically make it the active one, with the backbuffer selected for drawing. │ │ │ │ │ @@ -263,15 +263,15 @@ │ │ │ │ │ incompatible with ALLEGRO_FULLSCREEN. Since: 5.1.5 │ │ │ │ │ 0 can be used for default values. │ │ │ │ │ See also: al_set_new_display_option, al_get_display_option, │ │ │ │ │ al_set_display_option │ │ │ │ │ Examples: │ │ │ │ │ * ex_d3d.cpp │ │ │ │ │ * ex_opengl.c │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ + * ex_opengl_pixel_shader.c │ │ │ │ │ ***** al_get_new_display_option ***** │ │ │ │ │ int al_get_new_display_option(int option, int *importance) │ │ │ │ │ Source_Code │ │ │ │ │ Retrieve an extra display setting which was previously set with │ │ │ │ │ al_set_new_display_option. │ │ │ │ │ ***** al_set_new_display_option ***** │ │ │ │ │ void al_set_new_display_option(int option, int value, int importance) │ │ │ │ │ @@ -436,16 +436,16 @@ │ │ │ │ │ ***** al_get_display_event_source ***** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_get_display_event_source(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Retrieve the associated event source. See the documentation_on_events for a │ │ │ │ │ list of the events displays will generate. │ │ │ │ │ Examples: │ │ │ │ │ * ex_keyboard_events.c │ │ │ │ │ - * ex_touch_input.c │ │ │ │ │ * ex_opengl.c │ │ │ │ │ + * ex_touch_input.c │ │ │ │ │ ***** al_get_backbuffer ***** │ │ │ │ │ ALLEGRO_BITMAP *al_get_backbuffer(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Return a special bitmap representing the back-buffer of the display. │ │ │ │ │ Care should be taken when using the backbuffer bitmap (and its sub-bitmaps) as │ │ │ │ │ the source bitmap (e.g as the bitmap argument to al_draw_bitmap). Only │ │ │ │ │ untransformed operations are hardware accelerated. These consist of │ │ │ │ │ @@ -512,25 +512,25 @@ │ │ │ │ │ ***** al_get_display_width ***** │ │ │ │ │ int al_get_display_width(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Gets the width of the display. This is like SCREEN_W in Allegro 4.x. │ │ │ │ │ See also: al_get_display_height │ │ │ │ │ Examples: │ │ │ │ │ * ex_font_justify.cpp │ │ │ │ │ - * ex_window_maximized.c │ │ │ │ │ - * ex_fs_resize.c │ │ │ │ │ + * ex_bitmap.c │ │ │ │ │ + * ex_ogre3d.cpp │ │ │ │ │ ***** al_get_display_height ***** │ │ │ │ │ int al_get_display_height(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Gets the height of the display. This is like SCREEN_H in Allegro 4.x. │ │ │ │ │ See also: al_get_display_width │ │ │ │ │ Examples: │ │ │ │ │ - * ex_window_maximized.c │ │ │ │ │ - * ex_fs_resize.c │ │ │ │ │ * ex_ogre3d.cpp │ │ │ │ │ + * ex_fs_resize.c │ │ │ │ │ + * ex_window_maximized.c │ │ │ │ │ ***** al_resize_display ***** │ │ │ │ │ bool al_resize_display(ALLEGRO_DISPLAY *display, int width, int height) │ │ │ │ │ Source_Code │ │ │ │ │ Resize the display. Returns true on success, or false on error. This works on │ │ │ │ │ both fullscreen and windowed displays, regardless of the ALLEGRO_RESIZABLE │ │ │ │ │ flag. │ │ │ │ │ Adjusts the clipping rectangle to the full size of the backbuffer. │ │ │ │ │ @@ -773,16 +773,16 @@ │ │ │ │ │ display while it is not being shown. If you do not call this function to let │ │ │ │ │ the operating system know that you have stopped drawing or if you call it to │ │ │ │ │ late the application likely will be considered misbehaving and get terminated. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: ALLEGRO_EVENT_DISPLAY_HALT_DRAWING │ │ │ │ │ Examples: │ │ │ │ │ * ex_touch_input.c │ │ │ │ │ - * ex_vertex_buffer.c │ │ │ │ │ * ex_android.c │ │ │ │ │ + * ex_depth_mask.c │ │ │ │ │ ***** al_acknowledge_drawing_resume ***** │ │ │ │ │ void al_acknowledge_drawing_resume(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Call this in response to the ALLEGRO_EVENT_DISPLAY_RESUME_DRAWING event. │ │ │ │ │ Since: 5.1.1 │ │ │ │ │ See also: ALLEGRO_EVENT_DISPLAY_RESUME_DRAWING │ │ │ │ │ Examples: │ │ │ │ │ @@ -829,8 +829,8 @@ │ │ │ │ │ bool al_clipboard_has_text(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ This function returns true if and only if the clipboard has text available. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ See also: al_set_clipboard_text, al_get_clipboard_text │ │ │ │ │ Examples: │ │ │ │ │ * ex_clipboard.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:08 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:13 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/events.html │ │ │ │ @@ -313,19 +313,19 @@ │ │ │ │ The time is referenced to the same starting point as al_get_time.

│ │ │ │

Each event is of one of the following types, with the usable fields │ │ │ │ given.

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

ALLEGRO_EVENT_JOYSTICK_AXIS

│ │ │ │

A joystick axis value changed.

│ │ │ │
│ │ │ │
joystick.id (ALLEGRO_JOYSTICK *)
│ │ │ │
│ │ │ │ The joystick which generated the event. This is not the same as the │ │ │ │ @@ -988,19 +988,19 @@ │ │ │ │ order.

│ │ │ │

See also: al_create_event_queue, al_destroy_event_queue

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

ALLEGRO_EVENT_SOURCE

│ │ │ │
typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE;
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

An event source is any object which can generate events. For example, │ │ │ │ @@ -1083,19 +1083,19 @@ │ │ │ │

See also: al_register_event_source, │ │ │ │ al_destroy_event_queue, │ │ │ │ ALLEGRO_EVENT_QUEUE

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_destroy_event_queue

│ │ │ │
void al_destroy_event_queue(ALLEGRO_EVENT_QUEUE *queue)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Destroy the event queue specified. All event sources currently │ │ │ │ @@ -1103,19 +1103,19 @@ │ │ │ │ queue is destroyed.

│ │ │ │

See also: al_create_event_queue, ALLEGRO_EVENT_QUEUE

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_register_event_source

│ │ │ │
void al_register_event_source(ALLEGRO_EVENT_QUEUE *queue,
│ │ │ │     ALLEGRO_EVENT_SOURCE *source)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1125,19 +1125,19 @@ │ │ │ │ more than once does nothing.

│ │ │ │

See also: al_unregister_event_source, │ │ │ │ ALLEGRO_EVENT_SOURCE

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_unregister_event_source

│ │ │ │
void al_unregister_event_source(ALLEGRO_EVENT_QUEUE *queue,
│ │ │ │     ALLEGRO_EVENT_SOURCE *source)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1197,17 +1197,17 @@ │ │ │ │ href="events.html#al_get_next_event">al_get_next_event, al_peek_next_event

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_next_event

│ │ │ │
bool al_get_next_event(ALLEGRO_EVENT_QUEUE *queue, ALLEGRO_EVENT *ret_event)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Take the next event out of the event queue specified, and copy the │ │ │ │ @@ -1277,19 +1277,19 @@ │ │ │ │ href="events.html#al_wait_for_event_timed">al_wait_for_event_timed, │ │ │ │ al_wait_for_event_until, │ │ │ │ al_get_next_event

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_wait_for_event_timed

│ │ │ │
bool al_wait_for_event_timed(ALLEGRO_EVENT_QUEUE *queue,
│ │ │ │     ALLEGRO_EVENT *ret_event, float secs)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1504,12 +1504,12 @@ │ │ │ │

Assign the abstract user data to the event source. Allegro does not │ │ │ │ use the data internally for anything; it is simply meant as a convenient │ │ │ │ way to associate your own data or objects with events.

│ │ │ │

See also: al_get_event_source_data

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:09 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:14 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -137,17 +137,17 @@ │ │ │ │ │ When the event was generated. │ │ │ │ │ By examining the type field you can then access type-specific fields. The │ │ │ │ │ any.source field tells you which event source generated that particular event. │ │ │ │ │ The any.timestamp field tells you when the event was generated. The time is │ │ │ │ │ referenced to the same starting point as al_get_time. │ │ │ │ │ Each event is of one of the following types, with the usable fields given. │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ + * ex_timer_pause.c │ │ │ │ │ ***** ALLEGRO_EVENT_JOYSTICK_AXIS ***** │ │ │ │ │ A joystick axis value changed. │ │ │ │ │ joystick.id (ALLEGRO_JOYSTICK *) │ │ │ │ │ The joystick which generated the event. This is not the same as the event │ │ │ │ │ source joystick.source. │ │ │ │ │ joystick.stick (int) │ │ │ │ │ The stick number, counting from zero. Axes on a joystick are grouped into │ │ │ │ │ @@ -509,17 +509,17 @@ │ │ │ │ │ typedef struct ALLEGRO_EVENT_QUEUE ALLEGRO_EVENT_QUEUE; │ │ │ │ │ Source_Code │ │ │ │ │ An event queue holds events that have been generated by event sources that are │ │ │ │ │ registered with the queue. Events are stored in the order they are generated. │ │ │ │ │ Access is in a strictly FIFO (first-in-first-out) order. │ │ │ │ │ See also: al_create_event_queue, al_destroy_event_queue │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ + * ex_timer_pause.c │ │ │ │ │ ****** ALLEGRO_EVENT_SOURCE ****** │ │ │ │ │ typedef struct ALLEGRO_EVENT_SOURCE ALLEGRO_EVENT_SOURCE; │ │ │ │ │ Source_Code │ │ │ │ │ An event source is any object which can generate events. For example, an │ │ │ │ │ ALLEGRO_DISPLAY can generate events, and you can get the ALLEGRO_EVENT_SOURCE │ │ │ │ │ pointer from an ALLEGRO_DISPLAY with al_get_display_event_source. │ │ │ │ │ You may create your own “user” event sources that emit custom events. │ │ │ │ │ @@ -571,40 +571,40 @@ │ │ │ │ │ ****** al_create_event_queue ****** │ │ │ │ │ ALLEGRO_EVENT_QUEUE *al_create_event_queue(void) │ │ │ │ │ Source_Code │ │ │ │ │ Create a new, empty event queue, returning a pointer to the newly created │ │ │ │ │ object if successful. Returns NULL on error. │ │ │ │ │ See also: al_register_event_source, al_destroy_event_queue, ALLEGRO_EVENT_QUEUE │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ + * ex_timer_pause.c │ │ │ │ │ ****** al_destroy_event_queue ****** │ │ │ │ │ void al_destroy_event_queue(ALLEGRO_EVENT_QUEUE *queue) │ │ │ │ │ Source_Code │ │ │ │ │ Destroy the event queue specified. All event sources currently registered with │ │ │ │ │ the queue will be automatically unregistered before the queue is destroyed. │ │ │ │ │ See also: al_create_event_queue, ALLEGRO_EVENT_QUEUE │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_timer_pause.c │ │ │ │ │ + * common.c │ │ │ │ │ ****** al_register_event_source ****** │ │ │ │ │ void al_register_event_source(ALLEGRO_EVENT_QUEUE *queue, │ │ │ │ │ ALLEGRO_EVENT_SOURCE *source) │ │ │ │ │ Source_Code │ │ │ │ │ Register the event source with the event queue specified. An event source may │ │ │ │ │ be registered with any number of event queues simultaneously, or none. Trying │ │ │ │ │ to register an event source with the same event queue more than once does │ │ │ │ │ nothing. │ │ │ │ │ See also: al_unregister_event_source, ALLEGRO_EVENT_SOURCE │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ + * ex_timer_pause.c │ │ │ │ │ ****** al_unregister_event_source ****** │ │ │ │ │ void al_unregister_event_source(ALLEGRO_EVENT_QUEUE *queue, │ │ │ │ │ ALLEGRO_EVENT_SOURCE *source) │ │ │ │ │ Source_Code │ │ │ │ │ Unregister an event source with an event queue. If the event source is not │ │ │ │ │ actually registered with the event queue, nothing happens. │ │ │ │ │ If the queue had any events in it which originated from the event source, they │ │ │ │ │ @@ -639,16 +639,16 @@ │ │ │ │ │ ****** al_is_event_queue_empty ****** │ │ │ │ │ bool al_is_event_queue_empty(ALLEGRO_EVENT_QUEUE *queue) │ │ │ │ │ Source_Code │ │ │ │ │ Return true if the event queue specified is currently empty. │ │ │ │ │ See also: al_get_next_event, al_peek_next_event │ │ │ │ │ Examples: │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ - * ex_touch_input.c │ │ │ │ │ * ex_opengl.c │ │ │ │ │ + * ex_touch_input.c │ │ │ │ │ ****** al_get_next_event ****** │ │ │ │ │ bool al_get_next_event(ALLEGRO_EVENT_QUEUE *queue, ALLEGRO_EVENT *ret_event) │ │ │ │ │ Source_Code │ │ │ │ │ Take the next event out of the event queue specified, and copy the contents │ │ │ │ │ into ret_event, returning true. The original event will be removed from the │ │ │ │ │ queue. If the event queue is empty, return false and the contents of ret_event │ │ │ │ │ are unspecified. │ │ │ │ │ @@ -683,17 +683,17 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Wait until the event queue specified is non-empty. If ret_event is not NULL, │ │ │ │ │ the first event in the queue will be copied into ret_event and removed from the │ │ │ │ │ queue. If ret_event is NULL the first event is left at the head of the queue. │ │ │ │ │ See also: ALLEGRO_EVENT, al_wait_for_event_timed, al_wait_for_event_until, │ │ │ │ │ al_get_next_event │ │ │ │ │ Examples: │ │ │ │ │ - * common.c │ │ │ │ │ * ex_inject_events.c │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ + * ex_timer_pause.c │ │ │ │ │ ****** al_wait_for_event_timed ****** │ │ │ │ │ bool al_wait_for_event_timed(ALLEGRO_EVENT_QUEUE *queue, │ │ │ │ │ ALLEGRO_EVENT *ret_event, float secs) │ │ │ │ │ Source_Code │ │ │ │ │ Wait until the event queue specified is non-empty. If ret_event is not NULL, │ │ │ │ │ the first event in the queue will be copied into ret_event and removed from the │ │ │ │ │ queue. If ret_event is NULL the first event is left at the head of the queue. │ │ │ │ │ @@ -822,8 +822,8 @@ │ │ │ │ │ ****** al_set_event_source_data ****** │ │ │ │ │ void al_set_event_source_data(ALLEGRO_EVENT_SOURCE *source, intptr_t data) │ │ │ │ │ Source_Code │ │ │ │ │ Assign the abstract user data to the event source. Allegro does not use the │ │ │ │ │ data internally for anything; it is simply meant as a convenient way to │ │ │ │ │ associate your own data or objects with events. │ │ │ │ │ See also: al_get_event_source_data │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:09 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:14 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/file.html │ │ │ │ @@ -226,17 +226,17 @@ │ │ │ │

An opaque object representing an open file. This could be a real file │ │ │ │ on disk or a virtual file.

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

ALLEGRO_FILE_INTERFACE

│ │ │ │
typedef struct ALLEGRO_FILE_INTERFACE
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

A structure containing function pointers to handle a type of “file”, │ │ │ │ @@ -324,15 +324,15 @@ │ │ │ │

Examples:

│ │ │ │
    │ │ │ │
  • ex_file.c
  • │ │ │ │
  • ex_file_slice.c
  • │ │ │ │
  • ex_physfs.c
  • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_bitmap_file.c#L80">ex_bitmap_file.c │ │ │ │
│ │ │ │

al_fopen_interface

│ │ │ │
ALLEGRO_FILE *al_fopen_interface(const ALLEGRO_FILE_INTERFACE *drv,
│ │ │ │     const char *path, const char *mode)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -954,12 +954,12 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:12 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:14 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -94,16 +94,16 @@ │ │ │ │ │ ****** ALLEGRO_FILE ****** │ │ │ │ │ typedef struct ALLEGRO_FILE ALLEGRO_FILE; │ │ │ │ │ Source_Code │ │ │ │ │ An opaque object representing an open file. This could be a real file on disk │ │ │ │ │ or a virtual file. │ │ │ │ │ Examples: │ │ │ │ │ * ex_file.c │ │ │ │ │ - * ex_memfile.c │ │ │ │ │ * ex_dir.c │ │ │ │ │ + * ex_memfile.c │ │ │ │ │ ****** ALLEGRO_FILE_INTERFACE ****** │ │ │ │ │ typedef struct ALLEGRO_FILE_INTERFACE │ │ │ │ │ Source_Code │ │ │ │ │ A structure containing function pointers to handle a type of “file”, real │ │ │ │ │ or virtual. See the full discussion in al_set_new_file_interface. │ │ │ │ │ The fields are: │ │ │ │ │ void* (*fi_fopen)(const char *path, const char *mode); │ │ │ │ │ @@ -160,15 +160,15 @@ │ │ │ │ │ files. To avoid this behaviour you need to open file streams in binary mode by │ │ │ │ │ using a mode argument containing a “b”, e.g. “rb”, “wb”. │ │ │ │ │ Returns a file handle on success, or NULL on error. │ │ │ │ │ See also: al_set_new_file_interface, al_fclose. │ │ │ │ │ Examples: │ │ │ │ │ * ex_file.c │ │ │ │ │ * ex_file_slice.c │ │ │ │ │ - * ex_physfs.c │ │ │ │ │ + * ex_bitmap_file.c │ │ │ │ │ ****** al_fopen_interface ****** │ │ │ │ │ ALLEGRO_FILE *al_fopen_interface(const ALLEGRO_FILE_INTERFACE *drv, │ │ │ │ │ const char *path, const char *mode) │ │ │ │ │ Source_Code │ │ │ │ │ Opens a file using the specified interface, instead of the interface set with │ │ │ │ │ al_set_new_file_interface. │ │ │ │ │ See also: al_fopen │ │ │ │ │ @@ -550,8 +550,8 @@ │ │ │ │ │ ***** al_get_file_userdata ***** │ │ │ │ │ void *al_get_file_userdata(ALLEGRO_FILE *f) │ │ │ │ │ Source_Code │ │ │ │ │ Returns a pointer to the custom userdata that is attached to the file handle. │ │ │ │ │ This is intended to be used by functions that extend ALLEGRO_FILE_INTERFACE. │ │ │ │ │ Examples: │ │ │ │ │ * ex_curl.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:12 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:14 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/fixed.html │ │ │ │ @@ -655,12 +655,12 @@ │ │ │ │ href="https://github.com/liballeg/allegro5/blob/master/src/math.c#L321">Source │ │ │ │ Code

│ │ │ │

Fixed point hypotenuse (returns the square root of │ │ │ │ x*x + y*y). This should be better than calculating the │ │ │ │ formula yourself manually, since the error is much smaller.

│ │ │ │

│ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:13 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:23 UTC │ │ │ │

│ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -439,8 +439,8 @@ │ │ │ │ │ errno is set to EDOM and the function returns zero. │ │ │ │ │ ***** al_fixhypot ***** │ │ │ │ │ al_fixed al_fixhypot(al_fixed x, al_fixed y) │ │ │ │ │ Source_Code │ │ │ │ │ Fixed point hypotenuse (returns the square root of x*x + y*y). This should be │ │ │ │ │ better than calculating the formula yourself manually, since the error is much │ │ │ │ │ smaller. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:13 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:23 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/font.html │ │ │ │ @@ -251,18 +251,18 @@ │ │ │ │ If you instead pass the filename of a bitmap file, it will be loaded │ │ │ │ with al_load_bitmap and a │ │ │ │ font in Allegro’s bitmap font format will be created from it with al_grab_font_from_bitmap.

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

ALLEGRO_GLYPH

│ │ │ │
typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH;
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -318,18 +318,18 @@ │ │ │ │

See also: al_init_image_addon, al_init_ttf_addon, al_shutdown_font_addon

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_is_font_addon_initialized

│ │ │ │
bool al_is_font_addon_initialized(void)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -382,19 +382,19 @@ │ │ │ │ Code

│ │ │ │

Frees the memory being used by a font structure. Does nothing if │ │ │ │ passed NULL.

│ │ │ │

See also: al_load_font

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_register_font_loader

│ │ │ │
bool al_register_font_loader(char const *extension,
│ │ │ │     ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags))
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -480,18 +480,18 @@ │ │ │ │

See also: al_get_ustr_width, al_get_font_line_height, al_get_text_dimensions

│ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_get_ustr_width

│ │ │ │
int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -625,15 +625,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

al_draw_justified_textf

│ │ │ │
void al_draw_justified_textf(const ALLEGRO_FONT *f,
│ │ │ │     ALLEGRO_COLOR color, float x1, float x2, float y,
│ │ │ │     float diff, int flags, const char *format, ...)
│ │ │ │

Source │ │ │ │ @@ -728,14 +728,19 @@ │ │ │ │ be chained, but make sure there is no loop as that would crash the │ │ │ │ application! Pass NULL to remove a fallback font again.

│ │ │ │

Since: 5.1.12

│ │ │ │

See also: al_get_fallback_font, al_draw_glyph, al_draw_text

│ │ │ │ +

Examples:

│ │ │ │ +
    │ │ │ │ +
  • ex_ttf.c
  • │ │ │ │ +
│ │ │ │

al_get_fallback_font

│ │ │ │
ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Retrieves the fallback font for this font or NULL.

│ │ │ │

Since: 5.1.12

│ │ │ │ @@ -926,14 +931,21 @@ │ │ │ │ / \ | │ │ │ │ / \ \_ │ │ │ │ --------------- │ │ │ │

Since: 5.1.12

│ │ │ │

See also: al_draw_glyph, al_get_glyph_width, al_get_glyph_dimensions.

│ │ │ │ +

Examples:

│ │ │ │ + │ │ │ │

Multiline text drawing

│ │ │ │

al_draw_multiline_text

│ │ │ │
void al_draw_multiline_text(const ALLEGRO_FONT *font,
│ │ │ │       ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,
│ │ │ │       int flags, const char *text)
│ │ │ │

Source │ │ │ │ @@ -980,14 +992,21 @@ │ │ │ │ layout, you can use al_do_multiline_text.

│ │ │ │

Since: 5.1.9

│ │ │ │

See also: al_do_multiline_text, al_draw_multiline_ustr, al_draw_multiline_textf

│ │ │ │ +

Examples:

│ │ │ │ + │ │ │ │

al_draw_multiline_ustr

│ │ │ │
void al_draw_multiline_ustr(const ALLEGRO_FONT *font,
│ │ │ │       ALLEGRO_COLOR color, float x, float y, float max_width, float line_height,
│ │ │ │       int flags, const ALLEGRO_USTR *ustr)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │ @@ -1012,14 +1031,19 @@ │ │ │ │ href="font.html#al_draw_multiline_text">al_draw_multiline_text │ │ │ │ otherwise.

│ │ │ │

Since: 5.1.9

│ │ │ │

See also: al_draw_multiline_text, al_draw_multiline_ustr, al_do_multiline_text

│ │ │ │ +

Examples:

│ │ │ │ + │ │ │ │

al_do_multiline_text

│ │ │ │
void al_do_multiline_text(const ALLEGRO_FONT *font,
│ │ │ │     float max_width, const char *text,
│ │ │ │     bool (*cb)(int line_num, const char *line, int size, void *extra),
│ │ │ │     void *extra)
│ │ │ │

Source │ │ │ │ @@ -1054,14 +1078,19 @@ │ │ │ │ guaranteed to be valid after that.

│ │ │ │

If the callback cb returns false, al_do_multiline_text │ │ │ │ will stop immediately, otherwise it will continue on to the next │ │ │ │ line.

│ │ │ │

Since: 5.1.9

│ │ │ │

See also: al_draw_multiline_text

│ │ │ │ +

Examples:

│ │ │ │ + │ │ │ │

al_do_multiline_ustr

│ │ │ │
void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width,
│ │ │ │     const ALLEGRO_USTR *ustr,
│ │ │ │     bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra),
│ │ │ │     void *extra)
│ │ │ │

Source │ │ │ │ @@ -1208,15 +1237,15 @@ │ │ │ │

Examples:

│ │ │ │ │ │ │ │

TTF fonts

│ │ │ │

These functions are declared in the following header file. Link with │ │ │ │ allegro_ttf.

│ │ │ │
 #include <allegro5/allegro_ttf.h>
│ │ │ │

al_init_ttf_addon

│ │ │ │
bool al_init_ttf_addon(void)
│ │ │ │ @@ -1225,14 +1254,23 @@ │ │ │ │ Code

│ │ │ │

Call this after al_init_font_addon to make al_load_font recognize “.ttf” and │ │ │ │ other formats supported by al_load_ttf_font.

│ │ │ │

Returns true on success, false on failure.

│ │ │ │ +

Examples:

│ │ │ │ + │ │ │ │

al_is_ttf_addon_initialized

│ │ │ │
bool al_is_ttf_addon_initialized(void)
│ │ │ │

Source │ │ │ │ Code

│ │ │ │

Returns true if the TTF addon is initialized, otherwise returns │ │ │ │ false.

│ │ │ │ @@ -1274,14 +1312,23 @@ │ │ │ │
  • ALLEGRO_TTF_NO_AUTOHINT - Disable the Auto Hinter which is │ │ │ │ enabled by default in newer versions of FreeType. Since: 5.0.6, │ │ │ │ 5.1.2

  • │ │ │ │ │ │ │ │

    See also: al_init_ttf_addon, al_load_ttf_font_f

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_load_ttf_font_f

    │ │ │ │
    ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file,
    │ │ │ │      char const *filename, int size, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Like al_load_ttf_font, but │ │ │ │ @@ -1351,14 +1398,21 @@ │ │ │ │ compatibility.

    │ │ │ │

    Since: 5.2.1

    │ │ │ │
    │ │ │ │

    Unstable │ │ │ │ API: This API is new and subject to refinement.

    │ │ │ │
    │ │ │ │

    See also: ALLEGRO_GLYPH

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:52 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -108,16 +108,16 @@ │ │ │ │ │ Source_Code │ │ │ │ │ A handle identifying any kind of font. Usually you will create it with │ │ │ │ │ al_load_font which supports loading all kinds of TrueType fonts supported by │ │ │ │ │ the FreeType library. If you instead pass the filename of a bitmap file, it │ │ │ │ │ will be loaded with al_load_bitmap and a font in Allegro’s bitmap font format │ │ │ │ │ will be created from it with al_grab_font_from_bitmap. │ │ │ │ │ Examples: │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ * ex_disable_screensaver.c │ │ │ │ │ + * ex_font_justify.cpp │ │ │ │ │ * ex_display_events.c │ │ │ │ │ ***** ALLEGRO_GLYPH ***** │ │ │ │ │ typedef struct ALLEGRO_GLYPH ALLEGRO_GLYPH; │ │ │ │ │ Source_Code │ │ │ │ │ A structure containing the properties of a character in a font. │ │ │ │ │ typedef struct ALLEGRO_GLYPH { │ │ │ │ │ ALLEGRO_BITMAP *bitmap; // the bitmap the character is on │ │ │ │ │ @@ -155,16 +155,16 @@ │ │ │ │ │ al_init_ttf_addon. │ │ │ │ │ Returns true on success, false on failure. On the 5.0 branch, this function has │ │ │ │ │ no return value. You may wish to avoid checking the return value if your code │ │ │ │ │ needs to be compatible with Allegro 5.0. Currently, the function will never │ │ │ │ │ return false. │ │ │ │ │ See also: al_init_image_addon, al_init_ttf_addon, al_shutdown_font_addon │ │ │ │ │ Examples: │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ * ex_disable_screensaver.c │ │ │ │ │ + * ex_font_justify.cpp │ │ │ │ │ * ex_display_events.c │ │ │ │ │ ***** al_is_font_addon_initialized ***** │ │ │ │ │ bool al_is_font_addon_initialized(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the font addon is initialized, otherwise returns false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ See also: al_init_font_addon, al_shutdown_font_addon │ │ │ │ │ @@ -190,17 +190,17 @@ │ │ │ │ │ * ex_window_title.c │ │ │ │ │ ***** al_destroy_font ***** │ │ │ │ │ void al_destroy_font(ALLEGRO_FONT *f) │ │ │ │ │ Source_Code │ │ │ │ │ Frees the memory being used by a font structure. Does nothing if passed NULL. │ │ │ │ │ See also: al_load_font │ │ │ │ │ Examples: │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ * ex_disable_screensaver.c │ │ │ │ │ - * ex_timer.c │ │ │ │ │ + * ex_font_justify.cpp │ │ │ │ │ + * ex_cpu.c │ │ │ │ │ ***** al_register_font_loader ***** │ │ │ │ │ bool al_register_font_loader(char const *extension, │ │ │ │ │ ALLEGRO_FONT *(*load_font)(char const *filename, int size, int flags)) │ │ │ │ │ Source_Code │ │ │ │ │ Informs Allegro of a new font file type, telling it how to load files of this │ │ │ │ │ format. │ │ │ │ │ The extension should include the leading dot (‘.’) character. It will be │ │ │ │ │ @@ -250,16 +250,16 @@ │ │ │ │ │ * ex_ttf.c │ │ │ │ │ ***** al_get_text_width ***** │ │ │ │ │ int al_get_text_width(const ALLEGRO_FONT *f, const char *str) │ │ │ │ │ Source_Code │ │ │ │ │ Calculates the length of a string in a particular font, in pixels. │ │ │ │ │ See also: al_get_ustr_width, al_get_font_line_height, al_get_text_dimensions │ │ │ │ │ Examples: │ │ │ │ │ - * ex_record_name.c │ │ │ │ │ * ex_display_options.c │ │ │ │ │ + * ex_record_name.c │ │ │ │ │ * ex_color_gradient.c │ │ │ │ │ ***** al_get_ustr_width ***** │ │ │ │ │ int al_get_ustr_width(const ALLEGRO_FONT *f, ALLEGRO_USTR const *ustr) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_get_text_width but expects an ALLEGRO_USTR. │ │ │ │ │ See also: al_get_text_width, al_get_ustr_dimensions │ │ │ │ │ Examples: │ │ │ │ │ @@ -328,15 +328,15 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Formatted text output, using a printf() style format string. All parameters │ │ │ │ │ have the same meaning as with al_draw_text otherwise. │ │ │ │ │ See also: al_draw_text, al_draw_ustr │ │ │ │ │ Examples: │ │ │ │ │ * ex_disable_screensaver.c │ │ │ │ │ * ex_display_events.c │ │ │ │ │ - * ex_mouse_warp.c │ │ │ │ │ + * ex_cpu.c │ │ │ │ │ ***** al_draw_justified_textf ***** │ │ │ │ │ void al_draw_justified_textf(const ALLEGRO_FONT *f, │ │ │ │ │ ALLEGRO_COLOR color, float x1, float x2, float y, │ │ │ │ │ float diff, int flags, const char *format, ...) │ │ │ │ │ Source_Code │ │ │ │ │ Formatted text output, using a printf() style format string. All parameters │ │ │ │ │ have the same meaning as with al_draw_justified_text otherwise. │ │ │ │ │ @@ -390,14 +390,16 @@ │ │ │ │ │ void al_set_fallback_font(ALLEGRO_FONT *font, ALLEGRO_FONT *fallback) │ │ │ │ │ Source_Code │ │ │ │ │ Sets a font which is used instead if a character is not present. Can be │ │ │ │ │ chained, but make sure there is no loop as that would crash the application! │ │ │ │ │ Pass NULL to remove a fallback font again. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ See also: al_get_fallback_font, al_draw_glyph, al_draw_text │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_ttf.c │ │ │ │ │ ***** al_get_fallback_font ***** │ │ │ │ │ ALLEGRO_FONT *al_get_fallback_font(ALLEGRO_FONT *font) │ │ │ │ │ Source_Code │ │ │ │ │ Retrieves the fallback font for this font or NULL. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ See also: al_set_fallback_font │ │ │ │ │ ****** Per glyph text handling ****** │ │ │ │ │ @@ -542,14 +544,17 @@ │ │ │ │ │ / \ | │ │ │ │ │ /____\ | │ │ │ │ │ / \ | │ │ │ │ │ / \ \_ │ │ │ │ │ --------------- │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ See also: al_draw_glyph, al_get_glyph_width, al_get_glyph_dimensions. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_font.c │ │ │ │ │ + * ex_ttf.c │ │ │ │ │ ****** Multiline text drawing ****** │ │ │ │ │ ***** al_draw_multiline_text ***** │ │ │ │ │ void al_draw_multiline_text(const ALLEGRO_FONT *font, │ │ │ │ │ ALLEGRO_COLOR color, float x, float y, float max_width, float line_height, │ │ │ │ │ int flags, const char *text) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_draw_text, but this function supports drawing multiple lines of text. │ │ │ │ │ @@ -577,14 +582,17 @@ │ │ │ │ │ The flags ALLEGRO_ALIGN_LEFT, ALLEGRO_ALIGN_CENTRE, ALLEGRO_ALIGN_RIGHT and │ │ │ │ │ ALLEGRO_ALIGN_INTEGER will be honoured by this function. │ │ │ │ │ If you want to calculate the size of what this function will draw without │ │ │ │ │ actually drawing it, or if you need a complex and/or custom layout, you can use │ │ │ │ │ al_do_multiline_text. │ │ │ │ │ Since: 5.1.9 │ │ │ │ │ See also: al_do_multiline_text, al_draw_multiline_ustr, al_draw_multiline_textf │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_resize2.c │ │ │ │ │ + * ex_font_multiline.cpp │ │ │ │ │ ***** al_draw_multiline_ustr ***** │ │ │ │ │ void al_draw_multiline_ustr(const ALLEGRO_FONT *font, │ │ │ │ │ ALLEGRO_COLOR color, float x, float y, float max_width, float line_height, │ │ │ │ │ int flags, const ALLEGRO_USTR *ustr) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_draw_multiline_text, except the text is passed as an ALLEGRO_USTR │ │ │ │ │ instead of a NUL-terminated char array. │ │ │ │ │ @@ -595,14 +603,16 @@ │ │ │ │ │ ALLEGRO_COLOR color, float x, float y, float max_width, float line_height, │ │ │ │ │ int flags, const char *format, ...) │ │ │ │ │ Source_Code │ │ │ │ │ Formatted text output, using a printf() style format string. All parameters │ │ │ │ │ have the same meaning as with al_draw_multiline_text otherwise. │ │ │ │ │ Since: 5.1.9 │ │ │ │ │ See also: al_draw_multiline_text, al_draw_multiline_ustr, al_do_multiline_text │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_resize2.c │ │ │ │ │ ***** al_do_multiline_text ***** │ │ │ │ │ void al_do_multiline_text(const ALLEGRO_FONT *font, │ │ │ │ │ float max_width, const char *text, │ │ │ │ │ bool (*cb)(int line_num, const char *line, int size, void *extra), │ │ │ │ │ void *extra) │ │ │ │ │ Source_Code │ │ │ │ │ This function processes the text and splits it into lines as │ │ │ │ │ @@ -622,14 +632,16 @@ │ │ │ │ │ buffer and NUL-terminate it yourself. You will also have to make your own copy │ │ │ │ │ if you need the contents of line after cb has returned, as line is not │ │ │ │ │ guaranteed to be valid after that. │ │ │ │ │ If the callback cb returns false, al_do_multiline_text will stop immediately, │ │ │ │ │ otherwise it will continue on to the next line. │ │ │ │ │ Since: 5.1.9 │ │ │ │ │ See also: al_draw_multiline_text │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_font_multiline.cpp │ │ │ │ │ ***** al_do_multiline_ustr ***** │ │ │ │ │ void al_do_multiline_ustr(const ALLEGRO_FONT *font, float max_width, │ │ │ │ │ const ALLEGRO_USTR *ustr, │ │ │ │ │ bool (*cb)(int line_num, const ALLEGRO_USTR * line, void *extra), │ │ │ │ │ void *extra) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_do_multiline_text, but using ALLEGRO_USTR instead of a NUL-terminated │ │ │ │ │ @@ -726,25 +738,29 @@ │ │ │ │ │ The font memory must be freed the same way as for any other font, using │ │ │ │ │ al_destroy_font. │ │ │ │ │ Since: 5.0.8, 5.1.3 │ │ │ │ │ See also: al_load_bitmap_font, al_destroy_font │ │ │ │ │ Examples: │ │ │ │ │ * ex_disable_screensaver.c │ │ │ │ │ * ex_display_events.c │ │ │ │ │ - * ex_mouse_warp.c │ │ │ │ │ + * ex_cpu.c │ │ │ │ │ ****** TTF fonts ****** │ │ │ │ │ These functions are declared in the following header file. Link with │ │ │ │ │ allegro_ttf. │ │ │ │ │ #include │ │ │ │ │ ***** al_init_ttf_addon ***** │ │ │ │ │ bool al_init_ttf_addon(void) │ │ │ │ │ Source_Code │ │ │ │ │ Call this after al_init_font_addon to make al_load_font recognize “.ttf” │ │ │ │ │ and other formats supported by al_load_ttf_font. │ │ │ │ │ Returns true on success, false on failure. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_font_justify.cpp │ │ │ │ │ + * ex_font_multiline.cpp │ │ │ │ │ + * ex_color.cpp │ │ │ │ │ ***** al_is_ttf_addon_initialized ***** │ │ │ │ │ bool al_is_ttf_addon_initialized(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the TTF addon is initialized, otherwise returns false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ See also: al_init_ttf_addon, al_shutdown_ttf_addon │ │ │ │ │ ***** al_shutdown_ttf_addon ***** │ │ │ │ │ @@ -767,14 +783,18 @@ │ │ │ │ │ * ALLEGRO_TTF_NO_KERNING - Do not use any kerning even if the font file │ │ │ │ │ supports it. │ │ │ │ │ * ALLEGRO_TTF_MONOCHROME - Load as a monochrome font (which means no anti- │ │ │ │ │ aliasing of the font is done). │ │ │ │ │ * ALLEGRO_TTF_NO_AUTOHINT - Disable the Auto Hinter which is enabled by │ │ │ │ │ default in newer versions of FreeType. Since: 5.0.6, 5.1.2 │ │ │ │ │ See also: al_init_ttf_addon, al_load_ttf_font_f │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_bitmap_flip.c │ │ │ │ │ + * ex_synth.cpp │ │ │ │ │ + * ex_audio_chain.cpp │ │ │ │ │ ***** al_load_ttf_font_f ***** │ │ │ │ │ ALLEGRO_FONT *al_load_ttf_font_f(ALLEGRO_FILE *file, │ │ │ │ │ char const *filename, int size, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_load_ttf_font, but the font is read from the file handle. The filename │ │ │ │ │ is only used to find possible additional files next to a font file. │ │ │ │ │ Note: The file handle is owned by the returned ALLEGRO_FONT object │ │ │ │ │ @@ -819,8 +839,11 @@ │ │ │ │ │ yourself. prev_codepoint is the codepoint in the string before the one you want │ │ │ │ │ to draw and is used for kerning. codepoint is the character you want to get │ │ │ │ │ info about. You should clear the ‘glyph’ structure to 0 with memset before │ │ │ │ │ passing it to this function for future compatibility. │ │ │ │ │ Since: 5.2.1 │ │ │ │ │ Unstable_API: This API is new and subject to refinement. │ │ │ │ │ See also: ALLEGRO_GLYPH │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_font.c │ │ │ │ │ + * ex_ttf.c │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:52 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/fshook.html │ │ │ │ @@ -705,12 +705,12 @@ │ │ │ │

    Return a pointer to the ALLEGRO_FS_INTERFACE table │ │ │ │ in effect for the calling thread.

    │ │ │ │

    See also: al_store_state, al_restore_state.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:14 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:24 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -378,8 +378,8 @@ │ │ │ │ │ See also: al_set_fs_interface. │ │ │ │ │ ***** al_get_fs_interface ***** │ │ │ │ │ const ALLEGRO_FS_INTERFACE *al_get_fs_interface(void) │ │ │ │ │ Source_Code │ │ │ │ │ Return a pointer to the ALLEGRO_FS_INTERFACE table in effect for the calling │ │ │ │ │ thread. │ │ │ │ │ See also: al_store_state, al_restore_state. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:14 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:24 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/fullscreen_mode.html │ │ │ │ @@ -242,12 +242,12 @@ │ │ │ │
  • ex_monitorinfo.c
  • │ │ │ │
  • ex_display_options.c
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:16 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:25 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -90,8 +90,8 @@ │ │ │ │ │ al_set_new_display_refresh_rate, and al_set_new_display_flags to find the │ │ │ │ │ number of modes that match. Settings the new display parameters to zero will │ │ │ │ │ give a list of all modes for the default driver. │ │ │ │ │ See also: al_get_display_mode │ │ │ │ │ Examples: │ │ │ │ │ * ex_monitorinfo.c │ │ │ │ │ * ex_display_options.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:16 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:25 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/getting_started.html │ │ │ │ @@ -327,12 +327,12 @@ │ │ │ │ href="system.html#al_init">al_init becomes more scrict. See │ │ │ │ documentation of those functions for details.

    │ │ │ │

    Not the end

    │ │ │ │

    There’s a heap of stuff we haven’t even mentioned yet.

    │ │ │ │

    Enjoy!

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:02 UTC │ │ │ │ + - Last updated: 2024-01-08 05:21:37 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -195,8 +195,8 @@ │ │ │ │ │ including Allegro’s headers. │ │ │ │ │ Note that when you define that macro, the version check performed by │ │ │ │ │ al_install_system and al_init becomes more scrict. See documentation of those │ │ │ │ │ functions for details. │ │ │ │ │ ****** Not the end ****** │ │ │ │ │ There’s a heap of stuff we haven’t even mentioned yet. │ │ │ │ │ Enjoy! │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:02 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:21:37 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/graphics.html │ │ │ │ @@ -405,15 +405,15 @@ │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_map_rgba

    │ │ │ │
    ALLEGRO_COLOR al_map_rgba(
    │ │ │ │     unsigned char r, unsigned char g, unsigned char b, unsigned char a)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -625,15 +625,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_lockbitmap.c
    • │ │ │ │
    • ex_premulalpha.c
    • │ │ │ │
    • ex_color2.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_multisample.c#L52">ex_multisample.c │ │ │ │
    │ │ │ │

    ALLEGRO_PIXEL_FORMAT

    │ │ │ │
    typedef enum ALLEGRO_PIXEL_FORMAT
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Pixel formats. Each pixel format specifies the exact size and bit │ │ │ │ @@ -751,15 +751,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_convert.c
    • │ │ │ │
    • ex_drawpixels.c
    • │ │ │ │
    • ex_pixelformat.cpp
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_lockbitmap.c#L33">ex_lockbitmap.c │ │ │ │
    │ │ │ │

    al_get_pixel_size

    │ │ │ │
    int al_get_pixel_size(int format)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Return the number of bytes that a pixel of the given format occupies. │ │ │ │ @@ -1001,15 +1001,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_convert.c
    • │ │ │ │
    • ex_nodisplay.c
    • │ │ │ │
    • ex_blend_bench.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_opengl_pixel_shader.c#L18">ex_opengl_pixel_shader.c │ │ │ │
    │ │ │ │

    al_create_bitmap

    │ │ │ │
    ALLEGRO_BITMAP *al_create_bitmap(int w, int h)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Creates a new bitmap using the bitmap format and flags for the │ │ │ │ @@ -1137,15 +1137,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_subbitmap.c
    • │ │ │ │
    • ex_font.c
    • │ │ │ │
    • ex_blend2.cpp
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_premulalpha.c#L64">ex_premulalpha.c │ │ │ │
    │ │ │ │

    al_convert_bitmap

    │ │ │ │
    void al_convert_bitmap(ALLEGRO_BITMAP *bitmap)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Converts the bitmap to the current bitmap flags and format. The │ │ │ │ @@ -1494,17 +1494,17 @@ │ │ │ │ API: This is an experimental feature.

    │ │ │ │ │ │ │ │

    See also: ALLEGRO_BITMAP_WRAP

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_get_new_bitmap_wrap

    │ │ │ │

    Source Code

    │ │ │ │

    Returns the value currently set with al_set_new_bitmap_wrap │ │ │ │ on the current thread.

    │ │ │ │

    Since: 5.2.8

    │ │ │ │ @@ -1531,17 +1531,17 @@ │ │ │ │ to the edges that they go past.

    │ │ │ │
  • ALLEGRO_BITMAP_WRAP_MIRROR - The texture coordinates get mirrored │ │ │ │ across the edges that they go past.

  • │ │ │ │ │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    Bitmap properties

    │ │ │ │

    al_get_bitmap_flags

    │ │ │ │
    int al_get_bitmap_flags(ALLEGRO_BITMAP *bitmap)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -1641,17 +1641,17 @@ │ │ │ │ href="graphics.html#al_put_pixel">al_put_pixel, al_lock_bitmap

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_is_bitmap_locked

    │ │ │ │
    bool al_is_bitmap_locked(ALLEGRO_BITMAP *bitmap)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns whether or not a bitmap is already locked.

    │ │ │ │ @@ -1985,17 +1985,17 @@ │ │ │ │ al_draw_scaled_rotated_bitmap

    │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_nodisplay.c
    • │ │ │ │
    • ex_blend_bench.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_opengl_pixel_shader.c#L116">ex_opengl_pixel_shader.c │ │ │ │
    • ex_mouse.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_blend_bench.c#L42">ex_blend_bench.c │ │ │ │
    │ │ │ │

    al_draw_tinted_bitmap

    │ │ │ │
    void al_draw_tinted_bitmap(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR tint,
    │ │ │ │     float dx, float dy, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -2049,15 +2049,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_font.c
    • │ │ │ │
    • ex_clip.c
    • │ │ │ │
    • ex_blend.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_blit.c#L120">ex_blit.c │ │ │ │
    │ │ │ │

    al_draw_tinted_bitmap_region

    │ │ │ │
    void al_draw_tinted_bitmap_region(ALLEGRO_BITMAP *bitmap,
    │ │ │ │     ALLEGRO_COLOR tint,
    │ │ │ │     float sx, float sy, float sw, float sh, float dx, float dy,
    │ │ │ │     int flags)
    │ │ │ │

    al_get_target_bitmap, al_set_target_backbuffer

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_set_target_backbuffer

    │ │ │ │
    void al_set_target_backbuffer(ALLEGRO_DISPLAY *display)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Same as │ │ │ │ @@ -2468,15 +2468,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_keyboard_focus.c
    • │ │ │ │
    • ex_mouse_focus.c
    • │ │ │ │
    • ex_blend_bench.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_opengl_pixel_shader.c#L119">ex_opengl_pixel_shader.c │ │ │ │
    │ │ │ │

    al_get_current_display

    │ │ │ │
    ALLEGRO_DISPLAY *al_get_current_display(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Return the display that is “current” for the calling thread, or NULL │ │ │ │ @@ -3323,15 +3323,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_depth_mask.c
    • │ │ │ │
    • ex_depth_target.c
    • │ │ │ │
    • ex_camera.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_draw_bitmap.c#L208">ex_draw_bitmap.c │ │ │ │
    │ │ │ │

    al_backup_dirty_bitmap

    │ │ │ │
    void al_backup_dirty_bitmap(ALLEGRO_BITMAP *bitmap)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -3364,12 +3364,12 @@ │ │ │ │

    Unstable │ │ │ │ API: This API is new and subject to refinement.

    │ │ │ │ │ │ │ │

    See also: al_backup_dirty_bitmap

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:16 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:27 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -204,15 +204,15 @@ │ │ │ │ │ Convert r, g, b, (ranging from 0.0f-1.0f) into an ALLEGRO_COLOR, using 1.0f for │ │ │ │ │ alpha. │ │ │ │ │ This function can be called before Allegro is initialized. │ │ │ │ │ See also: al_map_rgba, al_map_rgb, al_map_rgba_f │ │ │ │ │ Examples: │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ * ex_keyboard_events.c │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ + * ex_drawpixels.c │ │ │ │ │ ***** al_map_rgba ***** │ │ │ │ │ ALLEGRO_COLOR al_map_rgba( │ │ │ │ │ unsigned char r, unsigned char g, unsigned char b, unsigned char a) │ │ │ │ │ Source_Code │ │ │ │ │ Convert r, g, b, a (ranging from 0-255) into an ALLEGRO_COLOR. │ │ │ │ │ This function can be called before Allegro is initialized. │ │ │ │ │ See also: al_map_rgb, al_premul_rgba, al_map_rgb_f │ │ │ │ │ @@ -339,15 +339,15 @@ │ │ │ │ │ size of a single pixel, but for blocked pixel formats this value is │ │ │ │ │ different. │ │ │ │ │ See also: al_lock_bitmap, al_lock_bitmap_region, al_unlock_bitmap, │ │ │ │ │ ALLEGRO_PIXEL_FORMAT │ │ │ │ │ Examples: │ │ │ │ │ * ex_lockbitmap.c │ │ │ │ │ * ex_premulalpha.c │ │ │ │ │ - * ex_color2.c │ │ │ │ │ + * ex_multisample.c │ │ │ │ │ ***** ALLEGRO_PIXEL_FORMAT ***** │ │ │ │ │ typedef enum ALLEGRO_PIXEL_FORMAT │ │ │ │ │ Source_Code │ │ │ │ │ Pixel formats. Each pixel format specifies the exact size and bit layout of a │ │ │ │ │ pixel in memory. Components are specified from high bits to low bits, so for │ │ │ │ │ example a fully opaque red pixel in ARGB_8888 format is 0xFFFF0000. │ │ │ │ │ Note: │ │ │ │ │ @@ -446,15 +446,15 @@ │ │ │ │ │ compression algorithm. Each 4x4 pixel block is encoded in 128 bytes, │ │ │ │ │ resulting in 4x compression ratio. This format supports smooth alpha │ │ │ │ │ transitions. Since 5.1.9. │ │ │ │ │ See also: al_set_new_bitmap_format, al_get_bitmap_format │ │ │ │ │ Examples: │ │ │ │ │ * ex_convert.c │ │ │ │ │ * ex_drawpixels.c │ │ │ │ │ - * ex_pixelformat.cpp │ │ │ │ │ + * ex_lockbitmap.c │ │ │ │ │ ***** al_get_pixel_size ***** │ │ │ │ │ int al_get_pixel_size(int format) │ │ │ │ │ Source_Code │ │ │ │ │ Return the number of bytes that a pixel of the given format occupies. For │ │ │ │ │ blocked pixel formats (e.g. compressed formats), this returns 0. │ │ │ │ │ See also: ALLEGRO_PIXEL_FORMAT, al_get_pixel_format_bits │ │ │ │ │ ***** al_get_pixel_format_bits ***** │ │ │ │ │ @@ -589,15 +589,15 @@ │ │ │ │ │ ***** ALLEGRO_BITMAP ***** │ │ │ │ │ typedef struct ALLEGRO_BITMAP ALLEGRO_BITMAP; │ │ │ │ │ Source_Code │ │ │ │ │ Abstract type representing a bitmap (2D image). │ │ │ │ │ Examples: │ │ │ │ │ * ex_convert.c │ │ │ │ │ * ex_nodisplay.c │ │ │ │ │ - * ex_blend_bench.c │ │ │ │ │ + * ex_opengl_pixel_shader.c │ │ │ │ │ ***** al_create_bitmap ***** │ │ │ │ │ ALLEGRO_BITMAP *al_create_bitmap(int w, int h) │ │ │ │ │ Source_Code │ │ │ │ │ Creates a new bitmap using the bitmap format and flags for the current thread. │ │ │ │ │ Blitting between bitmaps of differing formats, or blitting between memory │ │ │ │ │ bitmaps and display bitmaps may be slow. │ │ │ │ │ Unless you set the ALLEGRO_MEMORY_BITMAP flag, the bitmap is created for the │ │ │ │ │ @@ -678,15 +678,15 @@ │ │ │ │ │ the new bitmap is a memory bitmap, its projection bitmap is reset to be │ │ │ │ │ orthographic. │ │ │ │ │ See also: al_create_bitmap, al_set_new_bitmap_format, al_set_new_bitmap_flags, │ │ │ │ │ al_convert_bitmap │ │ │ │ │ Examples: │ │ │ │ │ * ex_subbitmap.c │ │ │ │ │ * ex_font.c │ │ │ │ │ - * ex_blend2.cpp │ │ │ │ │ + * ex_premulalpha.c │ │ │ │ │ ***** al_convert_bitmap ***** │ │ │ │ │ void al_convert_bitmap(ALLEGRO_BITMAP *bitmap) │ │ │ │ │ Source_Code │ │ │ │ │ Converts the bitmap to the current bitmap flags and format. The bitmap will be │ │ │ │ │ as if it was created anew with al_create_bitmap but retain its contents. All of │ │ │ │ │ this bitmap’s sub-bitmaps are also converted. If the new bitmap type is │ │ │ │ │ memory, then the bitmap’s projection bitmap is reset to be orthographic. │ │ │ │ │ @@ -898,16 +898,16 @@ │ │ │ │ │ addon which (for backwards compatibility) alters the wrapping │ │ │ │ │ setting. To minimize this issue, use a wrapping setting that’s not │ │ │ │ │ ALLEGRO_BITMAP_WRAP_DEFAULT. │ │ │ │ │ Since: 5.2.8 │ │ │ │ │ Unstable_API: This is an experimental feature. │ │ │ │ │ See also: ALLEGRO_BITMAP_WRAP │ │ │ │ │ Examples: │ │ │ │ │ - * ex_prim.c │ │ │ │ │ * ex_prim_wrap.c │ │ │ │ │ + * ex_prim.c │ │ │ │ │ ***** al_get_new_bitmap_wrap ***** │ │ │ │ │ Source Code │ │ │ │ │ Returns the value currently set with al_set_new_bitmap_wrap on the current │ │ │ │ │ thread. │ │ │ │ │ Since: 5.2.8 │ │ │ │ │ Unstable_API: This is an experimental feature. │ │ │ │ │ See also: ALLEGRO_BITMAP_WRAP │ │ │ │ │ @@ -922,16 +922,16 @@ │ │ │ │ │ * ALLEGRO_BITMAP_WRAP_REPEAT - The texture coordinates get shifted to the │ │ │ │ │ opposite edge that they go past. │ │ │ │ │ * ALLEGRO_BITMAP_WRAP_CLAMP - The texture coordinates get clamped to the │ │ │ │ │ edges that they go past. │ │ │ │ │ * ALLEGRO_BITMAP_WRAP_MIRROR - The texture coordinates get mirrored across │ │ │ │ │ the edges that they go past. │ │ │ │ │ Examples: │ │ │ │ │ - * ex_prim.c │ │ │ │ │ * ex_prim_wrap.c │ │ │ │ │ + * ex_prim.c │ │ │ │ │ ****** Bitmap properties ****** │ │ │ │ │ ***** al_get_bitmap_flags ***** │ │ │ │ │ int al_get_bitmap_flags(ALLEGRO_BITMAP *bitmap) │ │ │ │ │ Source_Code │ │ │ │ │ Return the flags used to create the bitmap. │ │ │ │ │ See also: al_set_new_bitmap_flags │ │ │ │ │ Examples: │ │ │ │ │ @@ -982,16 +982,16 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Get a pixel’s color value from the specified bitmap. This operation is slow │ │ │ │ │ on non-memory bitmaps. Consider locking the bitmap if you are going to use this │ │ │ │ │ function multiple times on the same bitmap. │ │ │ │ │ See also: ALLEGRO_COLOR, al_put_pixel, al_lock_bitmap │ │ │ │ │ Examples: │ │ │ │ │ * ex_blend_test.c │ │ │ │ │ - * ex_vertex_buffer.c │ │ │ │ │ * ex_compressed.c │ │ │ │ │ + * ex_vertex_buffer.c │ │ │ │ │ ***** al_is_bitmap_locked ***** │ │ │ │ │ bool al_is_bitmap_locked(ALLEGRO_BITMAP *bitmap) │ │ │ │ │ Source_Code │ │ │ │ │ Returns whether or not a bitmap is already locked. │ │ │ │ │ See also: al_lock_bitmap, al_lock_bitmap_region, al_unlock_bitmap │ │ │ │ │ ***** al_is_compatible_bitmap ***** │ │ │ │ │ bool al_is_compatible_bitmap(ALLEGRO_BITMAP *bitmap) │ │ │ │ │ @@ -1176,16 +1176,16 @@ │ │ │ │ │ draw it to a temporary bitmap first with no active transformation │ │ │ │ │ (except translation). Blending and tinting settings/parameters will │ │ │ │ │ be ignored. This does not apply when drawing into a memory bitmap. │ │ │ │ │ See also: al_draw_bitmap_region, al_draw_scaled_bitmap, al_draw_rotated_bitmap, │ │ │ │ │ al_draw_scaled_rotated_bitmap │ │ │ │ │ Examples: │ │ │ │ │ * ex_nodisplay.c │ │ │ │ │ + * ex_opengl_pixel_shader.c │ │ │ │ │ * ex_blend_bench.c │ │ │ │ │ - * ex_mouse.c │ │ │ │ │ ***** al_draw_tinted_bitmap ***** │ │ │ │ │ void al_draw_tinted_bitmap(ALLEGRO_BITMAP *bitmap, ALLEGRO_COLOR tint, │ │ │ │ │ float dx, float dy, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_draw_bitmap but multiplies all colors in the bitmap with the given │ │ │ │ │ color. For example: │ │ │ │ │ al_draw_tinted_bitmap(bitmap, al_map_rgba_f(0.5, 0.5, 0.5, 0.5), x, y, 0); │ │ │ │ │ @@ -1215,15 +1215,15 @@ │ │ │ │ │ See al_draw_bitmap for a note on restrictions on which bitmaps can be drawn │ │ │ │ │ where. │ │ │ │ │ See also: al_draw_bitmap, al_draw_scaled_bitmap, al_draw_rotated_bitmap, │ │ │ │ │ al_draw_scaled_rotated_bitmap │ │ │ │ │ Examples: │ │ │ │ │ * ex_font.c │ │ │ │ │ * ex_clip.c │ │ │ │ │ - * ex_blend.c │ │ │ │ │ + * ex_blit.c │ │ │ │ │ ***** al_draw_tinted_bitmap_region ***** │ │ │ │ │ void al_draw_tinted_bitmap_region(ALLEGRO_BITMAP *bitmap, │ │ │ │ │ ALLEGRO_COLOR tint, │ │ │ │ │ float sx, float sy, float sw, float sh, float dx, float dy, │ │ │ │ │ int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_draw_bitmap_region but multiplies all colors in the bitmap with the │ │ │ │ │ @@ -1469,25 +1469,25 @@ │ │ │ │ │ al_set_target_bitmap(bitmap); │ │ │ │ │ al_draw_line(x1, y1, x2, y2, color, 0); │ │ │ │ │ An OpenGL command will be used to directly draw the line into the bitmap’s │ │ │ │ │ associated texture. │ │ │ │ │ See also: al_get_target_bitmap, al_set_target_backbuffer │ │ │ │ │ Examples: │ │ │ │ │ * ex_nodisplay.c │ │ │ │ │ - * ex_blend_bench.c │ │ │ │ │ * ex_opengl_pixel_shader.c │ │ │ │ │ + * ex_blend_bench.c │ │ │ │ │ ***** al_set_target_backbuffer ***** │ │ │ │ │ void al_set_target_backbuffer(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Same as al_set_target_bitmap(al_get_backbuffer(display)); │ │ │ │ │ See also: al_set_target_bitmap, al_get_backbuffer │ │ │ │ │ Examples: │ │ │ │ │ * ex_keyboard_focus.c │ │ │ │ │ * ex_mouse_focus.c │ │ │ │ │ - * ex_blend_bench.c │ │ │ │ │ + * ex_opengl_pixel_shader.c │ │ │ │ │ ***** al_get_current_display ***** │ │ │ │ │ ALLEGRO_DISPLAY *al_get_current_display(void) │ │ │ │ │ Source_Code │ │ │ │ │ Return the display that is “current” for the calling thread, or NULL if │ │ │ │ │ there is none. │ │ │ │ │ See also: al_set_target_bitmap │ │ │ │ │ Examples: │ │ │ │ │ @@ -2007,15 +2007,15 @@ │ │ │ │ │ This function does nothing if the target bitmap is a memory bitmap. │ │ │ │ │ Since: 5.1.2 │ │ │ │ │ See also: ALLEGRO_RENDER_STATE, ALLEGRO_RENDER_FUNCTION, │ │ │ │ │ ALLEGRO_WRITE_MASK_FLAGS │ │ │ │ │ Examples: │ │ │ │ │ * ex_depth_mask.c │ │ │ │ │ * ex_depth_target.c │ │ │ │ │ - * ex_camera.c │ │ │ │ │ + * ex_draw_bitmap.c │ │ │ │ │ ***** al_backup_dirty_bitmap ***** │ │ │ │ │ void al_backup_dirty_bitmap(ALLEGRO_BITMAP *bitmap) │ │ │ │ │ Source_Code │ │ │ │ │ On some platforms, notably Windows Direct3D and Android, textures may be lost │ │ │ │ │ at any time for events such as display resize or switching out of the app. On │ │ │ │ │ those platforms, bitmaps created without the ALLEGRO_NO_PRESERVE_TEXTURE flag │ │ │ │ │ automatically get backed up to system memory every time al_flip_display is │ │ │ │ │ @@ -2029,8 +2029,8 @@ │ │ │ │ │ ***** al_backup_dirty_bitmaps ***** │ │ │ │ │ void al_backup_dirty_bitmaps(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Backs up all of a display’s bitmaps to system memory. │ │ │ │ │ Since: 5.2.1 │ │ │ │ │ Unstable_API: This API is new and subject to refinement. │ │ │ │ │ See also: al_backup_dirty_bitmap │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:16 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:27 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/haptic.html │ │ │ │ @@ -1241,12 +1241,12 @@ │ │ │ │

    Unstable │ │ │ │ API: Perhaps could be simplified due to limited support for all │ │ │ │ the exposed features across all of the platforms. Awaiting feedback from │ │ │ │ users.

    │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:17 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:29 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -726,8 +726,8 @@ │ │ │ │ │ again manually in this case. However, if true is returned, it is necessary to │ │ │ │ │ call al_release_haptic_effect when the effect isn’t needed anymore, to │ │ │ │ │ prevent the amount of available effects on the haptic device from running out. │ │ │ │ │ Since: 5.1.8 │ │ │ │ │ Unstable_API: Perhaps could be simplified due to limited support for │ │ │ │ │ all the exposed features across all of the platforms. Awaiting │ │ │ │ │ feedback from users. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:17 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:29 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/image.html │ │ │ │ @@ -196,14 +196,23 @@ │ │ │ │ installed libraries, but are not guaranteed and should not be assumed to │ │ │ │ be universally available.

    │ │ │ │

    The DDS format is only supported to load from, and only if the DDS │ │ │ │ file contains textures compressed in the DXT1, DXT3 and DXT5 formats. │ │ │ │ Note that when loading a DDS file, the created bitmap will always be a │ │ │ │ video bitmap and will have the pixel format matching the format in the │ │ │ │ file.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_is_image_addon_initialized

    │ │ │ │
    bool al_is_image_addon_initialized(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if the image addon is initialized, otherwise returns │ │ │ │ @@ -221,12 +230,12 @@ │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:54 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -68,14 +68,18 @@ │ │ │ │ │ Other formats may be available depending on the operating system and installed │ │ │ │ │ libraries, but are not guaranteed and should not be assumed to be universally │ │ │ │ │ available. │ │ │ │ │ The DDS format is only supported to load from, and only if the DDS file │ │ │ │ │ contains textures compressed in the DXT1, DXT3 and DXT5 formats. Note that when │ │ │ │ │ loading a DDS file, the created bitmap will always be a video bitmap and will │ │ │ │ │ have the pixel format matching the format in the file. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_convert.c │ │ │ │ │ + * ex_nodisplay.c │ │ │ │ │ + * ex_opengl_pixel_shader.c │ │ │ │ │ ****** al_is_image_addon_initialized ****** │ │ │ │ │ bool al_is_image_addon_initialized(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the image addon is initialized, otherwise returns false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ ****** al_shutdown_image_addon ****** │ │ │ │ │ void al_shutdown_image_addon(void) │ │ │ │ │ @@ -83,8 +87,8 @@ │ │ │ │ │ Shut down the image addon. This is done automatically at program exit, but can │ │ │ │ │ be called any time the user wishes as well. │ │ │ │ │ ****** al_get_allegro_image_version ****** │ │ │ │ │ uint32_t al_get_allegro_image_version(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the (compiled) version of the addon, in the same format as │ │ │ │ │ al_get_allegro_version. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:26 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:54 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/index.html │ │ │ │ @@ -154,12 +154,12 @@ │ │ │ │
  • Native dialogs addon
  • │ │ │ │
  • PhysicsFS addon
  • │ │ │ │
  • Primitives addon
  • │ │ │ │
  • Video streaming addon
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:30 UTC │ │ │ │ + - Last updated: 2024-01-08 05:23:05 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -88,8 +88,8 @@ │ │ │ │ │ * Image_I/O_addon │ │ │ │ │ * Main_addon │ │ │ │ │ * Memfile_addon │ │ │ │ │ * Native_dialogs_addon │ │ │ │ │ * PhysicsFS_addon │ │ │ │ │ * Primitives_addon │ │ │ │ │ * Video_streaming_addon │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:30 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:23:05 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/index_all.html │ │ │ │ @@ -2879,12 +2879,12 @@ │ │ │ │
  • al_x_set_initial_icon │ │ │ │
  • │ │ │ │
  • iPhone
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:30 UTC │ │ │ │ + - Last updated: 2024-01-08 05:23:07 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -1252,8 +1252,8 @@ │ │ │ │ │ * al_wait_for_event_timed │ │ │ │ │ * al_wait_for_event_until │ │ │ │ │ * al_wait_for_vsync │ │ │ │ │ * al_win_add_window_callback │ │ │ │ │ * al_win_remove_window_callback │ │ │ │ │ * al_x_set_initial_icon │ │ │ │ │ * iPhone │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:30 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:23:07 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/joystick.html │ │ │ │ @@ -587,12 +587,12 @@ │ │ │ │
  • ex_joystick_events.c
  • │ │ │ │
  • ex_haptic2.cpp
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:18 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:31 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -284,8 +284,8 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Returns the global joystick event source. All joystick_events are generated by │ │ │ │ │ this event source. │ │ │ │ │ Examples: │ │ │ │ │ * ex_joystick_hotplugging.c │ │ │ │ │ * ex_joystick_events.c │ │ │ │ │ * ex_haptic2.cpp │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:18 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:31 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/keyboard.html │ │ │ │ @@ -471,12 +471,12 @@ │ │ │ │
  • ex_opengl.c
  • │ │ │ │
  • ex_timedwait.c
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:18 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:35 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -268,8 +268,8 @@ │ │ │ │ │ Retrieve the keyboard event source. All keyboard_events are generated by this │ │ │ │ │ event source. │ │ │ │ │ Returns NULL if the keyboard subsystem was not installed. │ │ │ │ │ Examples: │ │ │ │ │ * ex_keyboard_events.c │ │ │ │ │ * ex_opengl.c │ │ │ │ │ * ex_timedwait.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:18 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:35 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/main.html │ │ │ │ @@ -178,12 +178,12 @@ │ │ │ │
    int main(int argc, char **argv)
    │ │ │ │

    This addon does nothing on platforms that don’t require its │ │ │ │ functionality, but you should keep it in mind in case you need to port │ │ │ │ to platforms that do require it.

    │ │ │ │

    Link with allegro_main.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:56 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -56,8 +56,8 @@ │ │ │ │ │ If the user main function is defined in C++, then it must have the following │ │ │ │ │ signature for this addon to work: │ │ │ │ │ int main(int argc, char **argv) │ │ │ │ │ This addon does nothing on platforms that don’t require its functionality, │ │ │ │ │ but you should keep it in mind in case you need to port to platforms that do │ │ │ │ │ require it. │ │ │ │ │ Link with allegro_main. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:56 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/memfile.html │ │ │ │ @@ -186,22 +186,27 @@ │ │ │ │ Regardless of the mode, the file always opens at position 0. The file │ │ │ │ size is fixed and cannot be expanded. The file is always read │ │ │ │ from/written to in binary mode, which means that no newline translation │ │ │ │ is performed.

    │ │ │ │

    It should be closed with al_fclose. │ │ │ │ After the file is closed, you are responsible for freeing the memory (if │ │ │ │ needed).

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_allegro_memfile_version

    │ │ │ │
    uint32_t al_get_allegro_memfile_version(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:59 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -61,13 +61,15 @@ │ │ │ │ │ upon the memory directly, so it must not be freed while the file remains open. │ │ │ │ │ The mode can be any combination of “r” (readable) and “w” (writable). │ │ │ │ │ Regardless of the mode, the file always opens at position 0. The file size is │ │ │ │ │ fixed and cannot be expanded. The file is always read from/written to in binary │ │ │ │ │ mode, which means that no newline translation is performed. │ │ │ │ │ It should be closed with al_fclose. After the file is closed, you are │ │ │ │ │ responsible for freeing the memory (if needed). │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_memfile.c │ │ │ │ │ ****** al_get_allegro_memfile_version ****** │ │ │ │ │ uint32_t al_get_allegro_memfile_version(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the (compiled) version of the addon, in the same format as │ │ │ │ │ al_get_allegro_version. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:59 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/memory.html │ │ │ │ @@ -216,17 +216,17 @@ │ │ │ │

    See also: al_malloc, al_free_with_context

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_realloc

    │ │ │ │
    #define al_realloc(p, n) \
    │ │ │ │     (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__))
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -323,12 +323,12 @@ │ │ │ │ The context arguments may be used for debugging. The new functions │ │ │ │ should be thread safe.

    │ │ │ │

    If the pointer is NULL, the default behaviour will be restored.

    │ │ │ │

    See also: ALLEGRO_MEMORY_INTERFACE

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:36 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -80,16 +80,16 @@ │ │ │ │ │ Additionally, on Windows, a memory block allocated by one DLL must be freed │ │ │ │ │ from the same DLL. In the few places where an Allegro function returns a │ │ │ │ │ pointer that must be freed, you must use al_free for portability to Windows. │ │ │ │ │ This is a macro. │ │ │ │ │ See also: al_malloc, al_free_with_context │ │ │ │ │ Examples: │ │ │ │ │ * ex_clipboard.c │ │ │ │ │ - * ex_vertex_buffer.c │ │ │ │ │ * ex_record_name.c │ │ │ │ │ + * ex_vertex_buffer.c │ │ │ │ │ ****** al_realloc ****** │ │ │ │ │ #define al_realloc(p, n) \ │ │ │ │ │ (al_realloc_with_context((p), (n), __LINE__, __FILE__, __func__)) │ │ │ │ │ Source_Code │ │ │ │ │ Like realloc() in the C standard library, but the implementation may be │ │ │ │ │ overridden. │ │ │ │ │ This is a macro. │ │ │ │ │ @@ -148,8 +148,8 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Override the memory management functions with implementations of │ │ │ │ │ al_malloc_with_context, al_free_with_context, al_realloc_with_context and │ │ │ │ │ al_calloc_with_context. The context arguments may be used for debugging. The │ │ │ │ │ new functions should be thread safe. │ │ │ │ │ If the pointer is NULL, the default behaviour will be restored. │ │ │ │ │ See also: ALLEGRO_MEMORY_INTERFACE │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:36 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/misc.html │ │ │ │ @@ -198,12 +198,12 @@ │ │ │ │ other system (like OSX) don’t allow calling al_install_system in the main │ │ │ │ thread. al_run_main will know what to do in that case.

    │ │ │ │

    The passed argc and argv will simply be passed on to user_main and │ │ │ │ the return value of user_main will be returned.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:36 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -66,8 +66,8 @@ │ │ │ │ │ This function is useful in cases where you don’t have a main() function but │ │ │ │ │ want to run Allegro (mostly useful in a wrapper library). Under Windows and │ │ │ │ │ Linux this is no problem because you simply can call al_install_system. But │ │ │ │ │ some other system (like OSX) don’t allow calling al_install_system in the │ │ │ │ │ main thread. al_run_main will know what to do in that case. │ │ │ │ │ The passed argc and argv will simply be passed on to user_main and the return │ │ │ │ │ value of user_main will be returned. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:36 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/monitor.html │ │ │ │ @@ -320,12 +320,12 @@ │ │ │ │ API: This is an experimental feature and currently only works │ │ │ │ on Windows.

    │ │ │ │ │ │ │ │

    See also: al_get_monitor_info

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:38 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -133,8 +133,8 @@ │ │ │ │ │ int al_get_monitor_refresh_rate(int adapter) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the current refresh rate of a monitor attached to the display adapter. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ Unstable_API: This is an experimental feature and currently only │ │ │ │ │ works on Windows. │ │ │ │ │ See also: al_get_monitor_info │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:38 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/mouse.html │ │ │ │ @@ -241,17 +241,17 @@ │ │ │ │

    Returns true if successful. If a driver was already installed, │ │ │ │ nothing happens and true is returned.

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_is_mouse_installed

    │ │ │ │
    bool al_is_mouse_installed(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if Examples:

    │ │ │ │ │ │ │ │

    al_set_mouse_wheel_precision

    │ │ │ │
    void al_set_mouse_wheel_precision(int precision)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Sets the precision of the mouse wheel (the z and w coordinates). This │ │ │ │ @@ -634,12 +634,12 @@ │ │ │ │ program.

    │ │ │ │
    │ │ │ │

    Note: not yet implemented on Mac OS X.

    │ │ │ │
    │ │ │ │

    See also: al_grab_mouse

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:38 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -95,16 +95,16 @@ │ │ │ │ │ bool al_install_mouse(void) │ │ │ │ │ Source_Code │ │ │ │ │ Install a mouse driver. │ │ │ │ │ Returns true if successful. If a driver was already installed, nothing happens │ │ │ │ │ and true is returned. │ │ │ │ │ Examples: │ │ │ │ │ * ex_mouse_focus.c │ │ │ │ │ - * ex_font_justify.cpp │ │ │ │ │ * ex_mouse.c │ │ │ │ │ + * ex_font_justify.cpp │ │ │ │ │ ****** al_is_mouse_installed ****** │ │ │ │ │ bool al_is_mouse_installed(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if al_install_mouse was called successfully. │ │ │ │ │ ****** al_uninstall_mouse ****** │ │ │ │ │ void al_uninstall_mouse(void) │ │ │ │ │ Source_Code │ │ │ │ │ @@ -199,15 +199,15 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Retrieve the mouse event source. All mouse_events are generated by this event │ │ │ │ │ source. │ │ │ │ │ Returns NULL if the mouse subsystem was not installed. │ │ │ │ │ Examples: │ │ │ │ │ * ex_display_events.c │ │ │ │ │ * ex_mouse_warp.c │ │ │ │ │ - * ex_timer.c │ │ │ │ │ + * ex_noframe.c │ │ │ │ │ ****** al_set_mouse_wheel_precision ****** │ │ │ │ │ void al_set_mouse_wheel_precision(int precision) │ │ │ │ │ Source_Code │ │ │ │ │ Sets the precision of the mouse wheel (the z and w coordinates). This precision │ │ │ │ │ manifests itself as a multiplier on the dz and dw fields in mouse events. It │ │ │ │ │ also affects the z and w fields of events and ALLEGRO_MOUSE_STATE, but not in a │ │ │ │ │ simple way if you alter the precision often, so it is suggested to reset those │ │ │ │ │ @@ -344,8 +344,8 @@ │ │ │ │ │ See also: al_ungrab_mouse │ │ │ │ │ ***** al_ungrab_mouse ***** │ │ │ │ │ bool al_ungrab_mouse(void) │ │ │ │ │ Source_Code │ │ │ │ │ Stop confining the mouse cursor to any display belonging to the program. │ │ │ │ │ Note: not yet implemented on Mac OS X. │ │ │ │ │ See also: al_grab_mouse │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:38 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/native_dialog.html │ │ │ │ @@ -236,20 +236,32 @@ │ │ │ │
     #include <allegro5/allegro_native_dialog.h>
    │ │ │ │

    ALLEGRO_FILECHOOSER

    │ │ │ │
    typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Opaque handle to a native file dialog.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    ALLEGRO_TEXTLOG

    │ │ │ │
    typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Opaque handle to a text log window.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_init_native_dialog_addon

    │ │ │ │
    bool al_init_native_dialog_addon(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Initialise the native dialog addon.

    │ │ │ │

    Returns true on success, false on error.

    │ │ │ │ @@ -261,14 +273,23 @@ │ │ │ │ is al_show_native_message_box, │ │ │ │ which may be useful to show an error message if Allegro fails to │ │ │ │ initialise.

    │ │ │ │ │ │ │ │

    See also: al_shutdown_native_dialog_addon

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_is_native_dialog_addon_initialized

    │ │ │ │
    bool al_is_native_dialog_addon_initialized(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if the native dialog addon is initialized, otherwise │ │ │ │ @@ -348,53 +369,78 @@ │ │ │ │ and al_get_native_file_dialog_path. │ │ │ │ When you are done, call al_destroy_native_file_dialog │ │ │ │ on it.

    │ │ │ │

    If a dialog window could not be created then this function returns │ │ │ │ NULL.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_show_native_file_dialog

    │ │ │ │
    bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display,
    │ │ │ │     ALLEGRO_FILECHOOSER *dialog)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Show the dialog window. The display may be NULL, otherwise the given │ │ │ │ display is treated as the parent if possible.

    │ │ │ │

    This function blocks the calling thread until it returns, so you may │ │ │ │ want to spawn a thread with al_create_thread and call it │ │ │ │ from inside that thread.

    │ │ │ │

    Returns true on success, false on failure.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_native_file_dialog_count

    │ │ │ │
    int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the number of files selected, or 0 if the dialog was │ │ │ │ cancelled.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_native_file_dialog_path

    │ │ │ │
    const char *al_get_native_file_dialog_path(
    │ │ │ │     const ALLEGRO_FILECHOOSER *dialog, size_t i)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns one of the selected paths with index i. The │ │ │ │ index should range from 0 to the return value of al_get_native_file_dialog_count │ │ │ │ -1.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_destroy_native_file_dialog

    │ │ │ │
    void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Frees up all resources used by the file dialog.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_show_native_message_box

    │ │ │ │
    int al_show_native_message_box(ALLEGRO_DISPLAY *display,
    │ │ │ │     char const *title, char const *heading, char const *text,
    │ │ │ │     char const *buttons, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -460,14 +506,23 @@ │ │ │ │ "If you click yes then you are confirming that \"Yes\" " │ │ │ │ "is your response to the query which you have " │ │ │ │ "generated by the action you took to open this " │ │ │ │ "message box.", │ │ │ │ NULL, │ │ │ │ ALLEGRO_MESSAGEBOX_YES_NO │ │ │ │ ); │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_open_native_text_log

    │ │ │ │
    ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Opens a window to which you can append log messages with al_append_native_text_log. │ │ │ │ @@ -491,37 +546,58 @@ │ │ │ │

    │ │ │ │

    Returns NULL if there was an error opening the window, or if text log │ │ │ │ windows are not implemented on the platform.

    │ │ │ │

    See also: al_append_native_text_log, │ │ │ │ al_close_native_text_log

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_close_native_text_log

    │ │ │ │
    void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Closes a message log window opened with al_open_native_text_log │ │ │ │ earlier.

    │ │ │ │

    Does nothing if passed NULL.

    │ │ │ │

    See also: al_open_native_text_log

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_append_native_text_log

    │ │ │ │
    void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog,
    │ │ │ │     char const *format, ...)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Appends a line of text to the message log window and scrolls to the │ │ │ │ bottom (if the line would not be visible otherwise). This works like │ │ │ │ printf. A line is continued until you add a newline character.

    │ │ │ │

    If the window is NULL then this function will fall back to calling │ │ │ │ printf. This makes it convenient to support logging to a window or a │ │ │ │ terminal.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_native_text_log_event_source

    │ │ │ │
    ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source(
    │ │ │ │     ALLEGRO_TEXTLOG *textlog)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -534,14 +610,23 @@ │ │ │ │ button or pressing Escape on the keyboard. The user.data1 field will │ │ │ │ hold a pointer to the ALLEGRO_TEXTLOG which │ │ │ │ generated the event. The user.data2 field will be 1 if the event was │ │ │ │ generated as a result of a key press; otherwise it will be zero. │ │ │ │ │ │ │ │ │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_allegro_native_dialog_version

    │ │ │ │
    uint32_t al_get_allegro_native_dialog_version(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the (compiled) version of the addon, in the same format as ALLEGRO_MENU │ │ │ │

    typedef struct ALLEGRO_MENU ALLEGRO_MENU;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    An opaque data type that represents a menu that contains menu items. │ │ │ │ Each of the menu items may optionally include a sub-menu.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    ALLEGRO_MENU_INFO

    │ │ │ │
    typedef struct ALLEGRO_MENU_INFO {
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    A structure that defines how to create a complete menu system. For │ │ │ │ standard menu items, the following format is used:

    │ │ │ │ @@ -638,14 +728,19 @@ │ │ │ │ │ │ │ │ ALLEGRO_MENU *menu = al_build_menu(menu_info); │ │ │ │

    If you prefer, you can build the menu without the structure by using │ │ │ │ al_create_menu and al_insert_menu_item.

    │ │ │ │

    See also: al_build_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_create_menu

    │ │ │ │
    ALLEGRO_MENU *al_create_menu(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Creates a menu container that can hold menu items.

    │ │ │ │

    Returns NULL on failure.

    │ │ │ │ @@ -663,14 +758,19 @@ │ │ │ │ created with al_create_menu.

    │ │ │ │

    Returns NULL on failure.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_create_menu, al_build_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_build_menu

    │ │ │ │
    ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Builds a menu based on the specifications of a sequence of │ │ │ │ ALLEGRO_MENU_INFO elements.

    │ │ │ │ @@ -679,28 +779,38 @@ │ │ │ │ items, you will need to search for them using al_find_menu_item.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: ALLEGRO_MENU_INFO, al_create_menu, al_create_popup_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_append_menu_item

    │ │ │ │
    int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id,
    │ │ │ │     int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Appends a menu item to the end of the menu. See al_insert_menu_item │ │ │ │ for more information.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_insert_menu_item, │ │ │ │ al_remove_menu_item

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_insert_menu_item

    │ │ │ │
    int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title,
    │ │ │ │     uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Inserts a menu item at the spot specified. See the introductory text │ │ │ │ @@ -751,48 +861,68 @@ │ │ │ │

    Returns true if an item was removed.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_append_menu_item, │ │ │ │ al_insert_menu_item, │ │ │ │ al_destroy_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_clone_menu

    │ │ │ │
    ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Makes a copy of a menu so that it can be reused on another display. │ │ │ │ The menu being cloned can be anything: a regular menu, a popup menu, or │ │ │ │ a sub-menu.

    │ │ │ │

    Returns the cloned menu.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_clone_menu_for_popup

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_clone_menu_for_popup

    │ │ │ │
    ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Exactly like al_clone_menu, except that │ │ │ │ the copy is for a popup menu.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_clone_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_destroy_menu

    │ │ │ │
    void al_destroy_menu(ALLEGRO_MENU *menu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Destroys an entire menu, including its sub-menus. Any references to │ │ │ │ it or a sub-menu are no longer valid. It is safe to call this on a menu │ │ │ │ that is currently being displayed.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_remove_menu_item

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_menu_item_caption

    │ │ │ │
    const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the caption associated with the menu item. It is valid as │ │ │ │ long as the caption is not modified.

    │ │ │ │ @@ -807,41 +937,56 @@ │ │ │ │ Code

    │ │ │ │

    Updates the menu item caption with the new caption. This │ │ │ │ will invalidate any previous calls to al_get_menu_item_caption.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_get_menu_item_caption

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_menu_item_flags

    │ │ │ │
    int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the currently set flags. See al_insert_menu_item │ │ │ │ for a description of the available flags.

    │ │ │ │

    Returns -1 if the item was not found.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_set_menu_item_flags, │ │ │ │ al_toggle_menu_item_flags

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_set_menu_item_flags

    │ │ │ │
    void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Updates the menu item’s flags. See al_insert_menu_item │ │ │ │ for a description of the available flags.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_get_menu_item_flags, │ │ │ │ al_toggle_menu_item_flags

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_toggle_menu_item_flags

    │ │ │ │
    int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Toggles the specified menu item’s flags. See al_insert_menu_item │ │ │ │ @@ -883,26 +1028,36 @@ │ │ │ │ you must clone it if you wish to continue using it.

    │ │ │ │

    If a video bitmap is passed, it will automatically be converted to a │ │ │ │ memory bitmap, so it is preferable to pass a memory bitmap.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_get_menu_item_icon, │ │ │ │ al_clone_bitmap

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_find_menu

    │ │ │ │
    ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Searches in the haystack menu for any submenu with the │ │ │ │ given id. (Note that this only represents a literal ID, and │ │ │ │ cannot be used as an index.)

    │ │ │ │

    Returns the menu, if found. Otherwise returns NULL.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_find_menu_item

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_find_menu_item

    │ │ │ │
    bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU **menu,
    │ │ │ │     int *index)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Searches in the haystack menu for an item with the given │ │ │ │ @@ -929,14 +1084,19 @@ │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_register_event_source, │ │ │ │ al_enable_menu_event_source, │ │ │ │ al_disable_menu_event_source

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_enable_menu_event_source

    │ │ │ │
    ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Enables a unique event source for this menu. It and all of its │ │ │ │ sub-menus will use this event source. (It is safe to call this multiple │ │ │ │ @@ -991,14 +1151,19 @@ │ │ │ │ want to maintain your window’s prior size.

    │ │ │ │ │ │ │ │

    Returns true if successful.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_create_menu, al_remove_display_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_popup_menu

    │ │ │ │
    bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Displays a context menu next to the mouse cursor. The menu must have │ │ │ │ been created with ALLEGRO_MOUSE_BUTTON_UP events and even then only if that │ │ │ │ event corresponds to the final mouse button that was pressed.

    │ │ │ │ │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_create_popup_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_remove_display_menu

    │ │ │ │
    ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Detaches the menu associated with the display and returns it. The │ │ │ │ menu can then be used on a different display.

    │ │ │ │

    If you simply want to destroy the active menu, you can call al_set_display_menu │ │ │ │ with a NULL menu.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_set_display_menu

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ + - Last updated: 2024-01-08 05:23:01 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -94,30 +94,39 @@ │ │ │ │ │ These functions are declared in the following header file. Link with │ │ │ │ │ allegro_dialog. │ │ │ │ │ #include │ │ │ │ │ ****** ALLEGRO_FILECHOOSER ****** │ │ │ │ │ typedef struct ALLEGRO_FILECHOOSER ALLEGRO_FILECHOOSER; │ │ │ │ │ Source_Code │ │ │ │ │ Opaque handle to a native file dialog. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** ALLEGRO_TEXTLOG ****** │ │ │ │ │ typedef struct ALLEGRO_TEXTLOG ALLEGRO_TEXTLOG; │ │ │ │ │ Source_Code │ │ │ │ │ Opaque handle to a text log window. │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_init_native_dialog_addon ****** │ │ │ │ │ bool al_init_native_dialog_addon(void) │ │ │ │ │ Source_Code │ │ │ │ │ Initialise the native dialog addon. │ │ │ │ │ Returns true on success, false on error. │ │ │ │ │ Since: 5.0.9, 5.1.0 │ │ │ │ │ Note: Prior to Allegro 5.1.0 native dialog functions could be called │ │ │ │ │ without explicit initialisation, but that is now deprecated. Future │ │ │ │ │ functionality may require explicit initialisation. An exception is │ │ │ │ │ al_show_native_message_box, which may be useful to show an error │ │ │ │ │ message if Allegro fails to initialise. │ │ │ │ │ See also: al_shutdown_native_dialog_addon │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_window_maximized.c │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ****** al_is_native_dialog_addon_initialized ****** │ │ │ │ │ bool al_is_native_dialog_addon_initialized(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the native dialog addon is initialized, otherwise returns │ │ │ │ │ false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ ****** al_shutdown_native_dialog_addon ****** │ │ │ │ │ @@ -165,37 +174,47 @@ │ │ │ │ │ If supported, allow selecting multiple files. │ │ │ │ │ Returns: │ │ │ │ │ A handle to the dialog which you can pass to al_show_native_file_dialog to │ │ │ │ │ display it, and from which you then can query the results using │ │ │ │ │ al_get_native_file_dialog_count and al_get_native_file_dialog_path. When you │ │ │ │ │ are done, call al_destroy_native_file_dialog on it. │ │ │ │ │ If a dialog window could not be created then this function returns NULL. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_show_native_file_dialog ****** │ │ │ │ │ bool al_show_native_file_dialog(ALLEGRO_DISPLAY *display, │ │ │ │ │ ALLEGRO_FILECHOOSER *dialog) │ │ │ │ │ Source_Code │ │ │ │ │ Show the dialog window. The display may be NULL, otherwise the given display is │ │ │ │ │ treated as the parent if possible. │ │ │ │ │ This function blocks the calling thread until it returns, so you may want to │ │ │ │ │ spawn a thread with al_create_thread and call it from inside that thread. │ │ │ │ │ Returns true on success, false on failure. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_get_native_file_dialog_count ****** │ │ │ │ │ int al_get_native_file_dialog_count(const ALLEGRO_FILECHOOSER *dialog) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the number of files selected, or 0 if the dialog was cancelled. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_get_native_file_dialog_path ****** │ │ │ │ │ const char *al_get_native_file_dialog_path( │ │ │ │ │ const ALLEGRO_FILECHOOSER *dialog, size_t i) │ │ │ │ │ Source_Code │ │ │ │ │ Returns one of the selected paths with index i. The index should range from 0 │ │ │ │ │ to the return value of al_get_native_file_dialog_count -1. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_destroy_native_file_dialog ****** │ │ │ │ │ void al_destroy_native_file_dialog(ALLEGRO_FILECHOOSER *dialog) │ │ │ │ │ Source_Code │ │ │ │ │ Frees up all resources used by the file dialog. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_show_native_message_box ****** │ │ │ │ │ int al_show_native_message_box(ALLEGRO_DISPLAY *display, │ │ │ │ │ char const *title, char const *heading, char const *text, │ │ │ │ │ char const *buttons, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Show a native GUI message box. This can be used for example to display an error │ │ │ │ │ message if creation of an initial display fails. The display may be NULL, │ │ │ │ │ @@ -238,14 +257,18 @@ │ │ │ │ │ "If you click yes then you are confirming that \"Yes\" " │ │ │ │ │ "is your response to the query which you have " │ │ │ │ │ "generated by the action you took to open this " │ │ │ │ │ "message box.", │ │ │ │ │ NULL, │ │ │ │ │ ALLEGRO_MESSAGEBOX_YES_NO │ │ │ │ │ ); │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_nodisplay.c │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ****** al_open_native_text_log ****** │ │ │ │ │ ALLEGRO_TEXTLOG *al_open_native_text_log(char const *title, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Opens a window to which you can append log messages with │ │ │ │ │ al_append_native_text_log. This can be useful for debugging if you don’t want │ │ │ │ │ to depend on a console being available. │ │ │ │ │ Use al_close_native_text_log to close the window again. │ │ │ │ │ @@ -255,40 +278,53 @@ │ │ │ │ │ button is pressed, an event is generated; see │ │ │ │ │ al_get_native_text_log_event_source. │ │ │ │ │ ALLEGRO_TEXTLOG_MONOSPACE │ │ │ │ │ Use a monospace font to display the text. │ │ │ │ │ Returns NULL if there was an error opening the window, or if text log windows │ │ │ │ │ are not implemented on the platform. │ │ │ │ │ See also: al_append_native_text_log, al_close_native_text_log │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_close_native_text_log ****** │ │ │ │ │ void al_close_native_text_log(ALLEGRO_TEXTLOG *textlog) │ │ │ │ │ Source_Code │ │ │ │ │ Closes a message log window opened with al_open_native_text_log earlier. │ │ │ │ │ Does nothing if passed NULL. │ │ │ │ │ See also: al_open_native_text_log │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_append_native_text_log ****** │ │ │ │ │ void al_append_native_text_log(ALLEGRO_TEXTLOG *textlog, │ │ │ │ │ char const *format, ...) │ │ │ │ │ Source_Code │ │ │ │ │ Appends a line of text to the message log window and scrolls to the bottom (if │ │ │ │ │ the line would not be visible otherwise). This works like printf. A line is │ │ │ │ │ continued until you add a newline character. │ │ │ │ │ If the window is NULL then this function will fall back to calling printf. This │ │ │ │ │ makes it convenient to support logging to a window or a terminal. │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_get_native_text_log_event_source ****** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_get_native_text_log_event_source( │ │ │ │ │ ALLEGRO_TEXTLOG *textlog) │ │ │ │ │ Source_Code │ │ │ │ │ Get an event source for a text log window. The possible events are: │ │ │ │ │ ALLEGRO_EVENT_NATIVE_DIALOG_CLOSE │ │ │ │ │ The window was requested to be closed, either by pressing the close │ │ │ │ │ button or pressing Escape on the keyboard. The user.data1 field will hold │ │ │ │ │ a pointer to the ALLEGRO_TEXTLOG which generated the event. The │ │ │ │ │ user.data2 field will be 1 if the event was generated as a result of a │ │ │ │ │ key press; otherwise it will be zero. │ │ │ │ │ +Examples: │ │ │ │ │ + * common.c │ │ │ │ │ + * ex_saw.c │ │ │ │ │ + * ex_resample_test.c │ │ │ │ │ ****** al_get_allegro_native_dialog_version ****** │ │ │ │ │ uint32_t al_get_allegro_native_dialog_version(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the (compiled) version of the addon, in the same format as │ │ │ │ │ al_get_allegro_version. │ │ │ │ │ ****** Menus ****** │ │ │ │ │ Menus are implemented on Windows, X and OS X. Menus on X are implemented with │ │ │ │ │ @@ -337,14 +373,16 @@ │ │ │ │ │ al_set_display_menu(display, NULL) before destroying any display with a menu │ │ │ │ │ attached, to avoid leaking resources. │ │ │ │ │ ***** ALLEGRO_MENU ***** │ │ │ │ │ typedef struct ALLEGRO_MENU ALLEGRO_MENU; │ │ │ │ │ Source_Code │ │ │ │ │ An opaque data type that represents a menu that contains menu items. Each of │ │ │ │ │ the menu items may optionally include a sub-menu. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** ALLEGRO_MENU_INFO ***** │ │ │ │ │ typedef struct ALLEGRO_MENU_INFO { │ │ │ │ │ Source_Code │ │ │ │ │ A structure that defines how to create a complete menu system. For standard │ │ │ │ │ menu items, the following format is used: │ │ │ │ │ { caption, id, flags, icon } │ │ │ │ │ For special items, these macros are helpful: │ │ │ │ │ @@ -370,14 +408,16 @@ │ │ │ │ │ ALLEGRO_END_OF_MENU │ │ │ │ │ }; │ │ │ │ │ │ │ │ │ │ ALLEGRO_MENU *menu = al_build_menu(menu_info); │ │ │ │ │ If you prefer, you can build the menu without the structure by using │ │ │ │ │ al_create_menu and al_insert_menu_item. │ │ │ │ │ See also: al_build_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_create_menu ***** │ │ │ │ │ ALLEGRO_MENU *al_create_menu(void) │ │ │ │ │ Source_Code │ │ │ │ │ Creates a menu container that can hold menu items. │ │ │ │ │ Returns NULL on failure. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_create_popup_menu, al_build_menu │ │ │ │ │ @@ -386,32 +426,38 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Creates a menu container for popup menus. Only the root (outermost) menu should │ │ │ │ │ be created with this function. Sub menus of popups should be created with │ │ │ │ │ al_create_menu. │ │ │ │ │ Returns NULL on failure. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_create_menu, al_build_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_build_menu ***** │ │ │ │ │ ALLEGRO_MENU *al_build_menu(ALLEGRO_MENU_INFO *info) │ │ │ │ │ Source_Code │ │ │ │ │ Builds a menu based on the specifications of a sequence of ALLEGRO_MENU_INFO │ │ │ │ │ elements. │ │ │ │ │ Returns a pointer to the root ALLEGRO_MENU, or NULL on failure. To gain access │ │ │ │ │ to the other menus and items, you will need to search for them using │ │ │ │ │ al_find_menu_item. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: ALLEGRO_MENU_INFO, al_create_menu, al_create_popup_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_append_menu_item ***** │ │ │ │ │ int al_append_menu_item(ALLEGRO_MENU *parent, char const *title, uint16_t id, │ │ │ │ │ int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu) │ │ │ │ │ Source_Code │ │ │ │ │ Appends a menu item to the end of the menu. See al_insert_menu_item for more │ │ │ │ │ information. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_insert_menu_item, al_remove_menu_item │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_insert_menu_item ***** │ │ │ │ │ int al_insert_menu_item(ALLEGRO_MENU *parent, int pos, char const *title, │ │ │ │ │ uint16_t id, int flags, ALLEGRO_BITMAP *icon, ALLEGRO_MENU *submenu) │ │ │ │ │ Source_Code │ │ │ │ │ Inserts a menu item at the spot specified. See the introductory text for a │ │ │ │ │ detailed explanation of how the pos parameter is interpreted. │ │ │ │ │ The parent menu can be a popup menu or a regular menu. To underline one │ │ │ │ │ @@ -439,36 +485,44 @@ │ │ │ │ │ a sub-menu, it too is destroyed. Any references to it are invalidated. If you │ │ │ │ │ want to preserve that sub-menu, you should first make a copy with │ │ │ │ │ al_clone_menu. │ │ │ │ │ This is safe to call on a menu that is currently being displayed. │ │ │ │ │ Returns true if an item was removed. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_append_menu_item, al_insert_menu_item, al_destroy_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_clone_menu ***** │ │ │ │ │ ALLEGRO_MENU *al_clone_menu(ALLEGRO_MENU *menu) │ │ │ │ │ Source_Code │ │ │ │ │ Makes a copy of a menu so that it can be reused on another display. The menu │ │ │ │ │ being cloned can be anything: a regular menu, a popup menu, or a sub-menu. │ │ │ │ │ Returns the cloned menu. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_clone_menu_for_popup │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_clone_menu_for_popup ***** │ │ │ │ │ ALLEGRO_MENU *al_clone_menu_for_popup(ALLEGRO_MENU *menu) │ │ │ │ │ Source_Code │ │ │ │ │ Exactly like al_clone_menu, except that the copy is for a popup menu. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_clone_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_destroy_menu ***** │ │ │ │ │ void al_destroy_menu(ALLEGRO_MENU *menu) │ │ │ │ │ Source_Code │ │ │ │ │ Destroys an entire menu, including its sub-menus. Any references to it or a │ │ │ │ │ sub-menu are no longer valid. It is safe to call this on a menu that is │ │ │ │ │ currently being displayed. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_remove_menu_item │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_get_menu_item_caption ***** │ │ │ │ │ const char *al_get_menu_item_caption(ALLEGRO_MENU *menu, int pos) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the caption associated with the menu item. It is valid as long as the │ │ │ │ │ caption is not modified. │ │ │ │ │ Returns NULL if the item was not found. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ @@ -476,29 +530,35 @@ │ │ │ │ │ ***** al_set_menu_item_caption ***** │ │ │ │ │ void al_set_menu_item_caption(ALLEGRO_MENU *menu, int pos, const char *caption) │ │ │ │ │ Source_Code │ │ │ │ │ Updates the menu item caption with the new caption. This will invalidate any │ │ │ │ │ previous calls to al_get_menu_item_caption. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_get_menu_item_caption │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_get_menu_item_flags ***** │ │ │ │ │ int al_get_menu_item_flags(ALLEGRO_MENU *menu, int pos) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the currently set flags. See al_insert_menu_item for a description of │ │ │ │ │ the available flags. │ │ │ │ │ Returns -1 if the item was not found. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_set_menu_item_flags, al_toggle_menu_item_flags │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_set_menu_item_flags ***** │ │ │ │ │ void al_set_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Updates the menu item’s flags. See al_insert_menu_item for a description of │ │ │ │ │ the available flags. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_get_menu_item_flags, al_toggle_menu_item_flags │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_toggle_menu_item_flags ***** │ │ │ │ │ int al_toggle_menu_item_flags(ALLEGRO_MENU *menu, int pos, int flags) │ │ │ │ │ Source_Code │ │ │ │ │ Toggles the specified menu item’s flags. See al_insert_menu_item for a │ │ │ │ │ description of the available flags. │ │ │ │ │ Returns a bitfield of only the specified flags that are set after the toggle. A │ │ │ │ │ flag that was not toggled will not be returned, even if it is set. Returns - │ │ │ │ │ @@ -521,22 +581,26 @@ │ │ │ │ │ Sets the icon for the specified menu item. The menu assumes ownership of the │ │ │ │ │ ALLEGRO_BITMAP and may invalidate the pointer, so you must clone it if you wish │ │ │ │ │ to continue using it. │ │ │ │ │ If a video bitmap is passed, it will automatically be converted to a memory │ │ │ │ │ bitmap, so it is preferable to pass a memory bitmap. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_get_menu_item_icon, al_clone_bitmap │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_find_menu ***** │ │ │ │ │ ALLEGRO_MENU *al_find_menu(ALLEGRO_MENU *haystack, uint16_t id) │ │ │ │ │ Source_Code │ │ │ │ │ Searches in the haystack menu for any submenu with the given id. (Note that │ │ │ │ │ this only represents a literal ID, and cannot be used as an index.) │ │ │ │ │ Returns the menu, if found. Otherwise returns NULL. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_find_menu_item │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_find_menu_item ***** │ │ │ │ │ bool al_find_menu_item(ALLEGRO_MENU *haystack, uint16_t id, ALLEGRO_MENU │ │ │ │ │ **menu, │ │ │ │ │ int *index) │ │ │ │ │ Source_Code │ │ │ │ │ Searches in the haystack menu for an item with the given id. (Note that this │ │ │ │ │ only represents a literal ID, and cannot be used as an index.) │ │ │ │ │ @@ -551,14 +615,16 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Returns the default event source used for menu clicks. If a menu was not given │ │ │ │ │ its own event source via al_enable_menu_event_source, then it will use this │ │ │ │ │ default source. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_register_event_source, al_enable_menu_event_source, │ │ │ │ │ al_disable_menu_event_source │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_enable_menu_event_source ***** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_enable_menu_event_source(ALLEGRO_MENU *menu) │ │ │ │ │ Source_Code │ │ │ │ │ Enables a unique event source for this menu. It and all of its sub-menus will │ │ │ │ │ use this event source. (It is safe to call this multiple times on the same │ │ │ │ │ menu.) │ │ │ │ │ Returns the event source. │ │ │ │ │ @@ -590,14 +656,16 @@ │ │ │ │ │ Note: Attaching a menu may cause the window as available to your │ │ │ │ │ application to be resized! You should listen for a resize event, │ │ │ │ │ check how much space was lost, and resize the window accordingly if │ │ │ │ │ you want to maintain your window’s prior size. │ │ │ │ │ Returns true if successful. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_create_menu, al_remove_display_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_popup_menu ***** │ │ │ │ │ bool al_popup_menu(ALLEGRO_MENU *popup, ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Displays a context menu next to the mouse cursor. The menu must have been │ │ │ │ │ created with al_create_popup_menu. It generates events just like a regular │ │ │ │ │ display menu does. It is possible that the menu will be canceled without any │ │ │ │ │ selection being made. │ │ │ │ │ @@ -607,17 +675,21 @@ │ │ │ │ │ Returns true if the context menu was displayed. │ │ │ │ │ Note: On Linux this function will fail if any of the mouse keys are │ │ │ │ │ held down. I.e. it will only reliably work if you handle it in │ │ │ │ │ ALLEGRO_MOUSE_BUTTON_UP events and even then only if that event │ │ │ │ │ corresponds to the final mouse button that was pressed. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_create_popup_menu │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ ***** al_remove_display_menu ***** │ │ │ │ │ ALLEGRO_MENU *al_remove_display_menu(ALLEGRO_DISPLAY *display) │ │ │ │ │ Source_Code │ │ │ │ │ Detaches the menu associated with the display and returns it. The menu can then │ │ │ │ │ be used on a different display. │ │ │ │ │ If you simply want to destroy the active menu, you can call al_set_display_menu │ │ │ │ │ with a NULL menu. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_set_display_menu │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:27 UTC │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_menu.c │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:23:01 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/opengl.html │ │ │ │ @@ -417,12 +417,12 @@ │ │ │ │ GL_ARB_texture_non_power_of_two=0 │ │ │ │ GL_EXT_framebuffer_object=0 │ │ │ │

    Any extension which appears in the section is treated as not │ │ │ │ available (it does not matter if you set it to 0 or any other │ │ │ │ value).

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:25 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:49 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -214,8 +214,8 @@ │ │ │ │ │ You can disable the detection of any OpenGL extension by Allegro with a section │ │ │ │ │ like this in allegro5.cfg: │ │ │ │ │ [opengl_disabled_extensions] │ │ │ │ │ GL_ARB_texture_non_power_of_two=0 │ │ │ │ │ GL_EXT_framebuffer_object=0 │ │ │ │ │ Any extension which appears in the section is treated as not available (it does │ │ │ │ │ not matter if you set it to 0 or any other value). │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:25 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:49 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/path.html │ │ │ │ @@ -625,12 +625,12 @@ │ │ │ │
  • ex_path.c
  • │ │ │ │
  • ex_path_test.c
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:39 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -323,8 +323,8 @@ │ │ │ │ │ Note that this does not collapse “x/../y” sections into “y”. This is by │ │ │ │ │ design. If “/foo” on your system is a symlink to “/bar/baz”, then “/ │ │ │ │ │ foo/../quux” is actually “/bar/quux”, not “/quux” as a naive removal │ │ │ │ │ of “..” components would give you. │ │ │ │ │ Examples: │ │ │ │ │ * ex_path.c │ │ │ │ │ * ex_path_test.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:19 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:39 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/physfs.html │ │ │ │ @@ -215,22 +215,27 @@ │ │ │ │
    │ │ │ │

    Note: PhysFS does not support the text-mode reading and │ │ │ │ writing, which means that Windows-style newlines will not be │ │ │ │ preserved.

    │ │ │ │
    │ │ │ │

    See also: al_set_new_file_interface.

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_allegro_physfs_version

    │ │ │ │
    uint32_t al_get_allegro_physfs_version(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the (compiled) version of the addon, in the same format as al_get_allegro_version.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:28 UTC │ │ │ │ + - Last updated: 2024-01-08 05:23:01 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -74,13 +74,15 @@ │ │ │ │ │ al_restore_state. │ │ │ │ │ Note: due to an oversight, this function differs from │ │ │ │ │ al_set_new_file_interface and al_set_standard_file_interface which │ │ │ │ │ only alter the current ALLEGRO_FILE_INTERFACE. │ │ │ │ │ Note: PhysFS does not support the text-mode reading and writing, │ │ │ │ │ which means that Windows-style newlines will not be preserved. │ │ │ │ │ See also: al_set_new_file_interface. │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_physfs.c │ │ │ │ │ ****** al_get_allegro_physfs_version ****** │ │ │ │ │ uint32_t al_get_allegro_physfs_version(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the (compiled) version of the addon, in the same format as │ │ │ │ │ al_get_allegro_version. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:28 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:23:01 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/platform.html │ │ │ │ @@ -412,12 +412,12 @@ │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:47 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -203,8 +203,8 @@ │ │ │ │ │ doesn’t work and you need to use a .desktop file. But with this function you │ │ │ │ │ can set an icon before calling al_create_display. This works by setting the │ │ │ │ │ icon before XMapWindow. │ │ │ │ │ Since: 5.2.3 │ │ │ │ │ Unstable_API: New API. │ │ │ │ │ Examples: │ │ │ │ │ * ex_icon2.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:47 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/primitives.html │ │ │ │ @@ -283,14 +283,23 @@ │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Initializes the primitives addon.

    │ │ │ │

    Returns: True on success, false on failure.

    │ │ │ │

    See also: al_shutdown_primitives_addon

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_is_primitives_addon_initialized

    │ │ │ │
    bool al_is_primitives_addon_initialized(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if the primitives addon is initialized, otherwise │ │ │ │ @@ -414,14 +423,23 @@ │ │ │ │

  • x1, y1, x2, y2 - Start and end points of the line
  • │ │ │ │
  • color - Color of the line
  • │ │ │ │
  • thickness - Thickness of the line, pass <= 0 to draw │ │ │ │ hairline lines
  • │ │ │ │ │ │ │ │

    See also: al_draw_soft_line

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_triangle

    │ │ │ │
    void al_draw_triangle(float x1, float y1, float x2, float y2,
    │ │ │ │     float x3, float y3, ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an outlined triangle.

    │ │ │ │ @@ -432,28 +450,38 @@ │ │ │ │
  • thickness - Thickness of the lines, pass <= 0 to │ │ │ │ draw hairline lines
  • │ │ │ │ │ │ │ │

    See also: al_draw_filled_triangle, │ │ │ │ al_draw_soft_triangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_triangle

    │ │ │ │
    void al_draw_filled_triangle(float x1, float y1, float x2, float y2,
    │ │ │ │     float x3, float y3, ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a filled triangle.

    │ │ │ │

    Parameters:

    │ │ │ │ │ │ │ │

    See also: al_draw_triangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_rectangle

    │ │ │ │
    void al_draw_rectangle(float x1, float y1, float x2, float y2,
    │ │ │ │     ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an outlined rectangle.

    │ │ │ │ @@ -465,14 +493,23 @@ │ │ │ │
  • thickness - Thickness of the lines, pass <= 0 to │ │ │ │ draw hairline lines
  • │ │ │ │ │ │ │ │

    See also: al_draw_filled_rectangle, │ │ │ │ al_draw_rounded_rectangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_rectangle

    │ │ │ │
    void al_draw_filled_rectangle(float x1, float y1, float x2, float y2,
    │ │ │ │     ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a filled rectangle.

    │ │ │ │ @@ -481,14 +518,23 @@ │ │ │ │
  • x1, y1, x2, y2 - Upper left and lower right points of the │ │ │ │ rectangle
  • │ │ │ │
  • color - Color of the rectangle
  • │ │ │ │ │ │ │ │

    See also: al_draw_rectangle, al_draw_filled_rounded_rectangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_rounded_rectangle

    │ │ │ │
    void al_draw_rounded_rectangle(float x1, float y1, float x2, float y2,
    │ │ │ │     float rx, float ry, ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an outlined rounded rectangle.

    │ │ │ │ @@ -500,14 +546,23 @@ │ │ │ │
  • rx, ry - The radii of the round
  • │ │ │ │
  • thickness - Thickness of the lines, pass <= 0 to │ │ │ │ draw hairline lines
  • │ │ │ │ │ │ │ │

    See also: al_draw_filled_rounded_rectangle, │ │ │ │ al_draw_rectangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_rounded_rectangle

    │ │ │ │
    void al_draw_filled_rounded_rectangle(float x1, float y1, float x2, float y2,
    │ │ │ │     float rx, float ry, ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -519,14 +574,23 @@ │ │ │ │
  • color - Color of the rectangle
  • │ │ │ │
  • rx, ry - The radii of the round
  • │ │ │ │ │ │ │ │

    See also: al_draw_rounded_rectangle, │ │ │ │ al_draw_filled_rectangle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_calculate_arc

    │ │ │ │
    void al_calculate_arc(float* dest, int stride, float cx, float cy,
    │ │ │ │     float rx, float ry, float start_theta, float delta_theta, float thickness,
    │ │ │ │     int num_points)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -587,14 +651,19 @@ │ │ │ │ number to switch direction) │ │ │ │
  • thickness - Thickness of the arc
  • │ │ │ │
  • num_points - The number of points to calculate
  • │ │ │ │ │ │ │ │

    See also: al_draw_arc, al_calculate_spline, al_calculate_ribbon

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_pieslice

    │ │ │ │
    void al_draw_pieslice(float cx, float cy, float r, float start_theta,
    │ │ │ │     float delta_theta, ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a pieslice (outlined circular sector).

    │ │ │ │ @@ -609,14 +678,19 @@ │ │ │ │ negative number to switch direction) │ │ │ │
  • thickness - Thickness of the circle, pass <= 0 to │ │ │ │ draw hairline pieslice
  • │ │ │ │ │ │ │ │

    Since: 5.0.6, 5.1.0

    │ │ │ │

    See also: al_draw_filled_pieslice

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_pieslice

    │ │ │ │
    void al_draw_filled_pieslice(float cx, float cy, float r, float start_theta,
    │ │ │ │     float delta_theta, ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a filled pieslice (filled circular sector).

    │ │ │ │ @@ -629,14 +703,19 @@ │ │ │ │ radians │ │ │ │
  • delta_theta - Angular span of the pieslice in radians (pass a │ │ │ │ negative number to switch direction)
  • │ │ │ │ │ │ │ │

    Since: 5.0.6, 5.1.0

    │ │ │ │

    See also: al_draw_pieslice

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_ellipse

    │ │ │ │
    void al_draw_ellipse(float cx, float cy, float rx, float ry,
    │ │ │ │     ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an outlined ellipse.

    │ │ │ │ @@ -647,14 +726,21 @@ │ │ │ │
  • color - Color of the ellipse
  • │ │ │ │
  • thickness - Thickness of the ellipse, pass <= 0 to │ │ │ │ draw a hairline ellipse
  • │ │ │ │ │ │ │ │

    See also: al_draw_filled_ellipse, │ │ │ │ al_draw_circle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_ellipse

    │ │ │ │
    void al_draw_filled_ellipse(float cx, float cy, float rx, float ry,
    │ │ │ │     ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a filled ellipse.

    │ │ │ │ @@ -663,14 +749,21 @@ │ │ │ │
  • cx, cy - Center of the ellipse
  • │ │ │ │
  • rx, ry - Radii of the ellipse
  • │ │ │ │
  • color - Color of the ellipse
  • │ │ │ │ │ │ │ │

    See also: al_draw_ellipse, al_draw_filled_circle

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_circle

    │ │ │ │
    void al_draw_circle(float cx, float cy, float r, ALLEGRO_COLOR color,
    │ │ │ │     float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an outlined circle.

    │ │ │ │ @@ -681,14 +774,21 @@ │ │ │ │
  • color - Color of the circle
  • │ │ │ │
  • thickness - Thickness of the circle, pass <= 0 to │ │ │ │ draw a hairline circle
  • │ │ │ │ │ │ │ │

    See also: al_draw_filled_circle, │ │ │ │ al_draw_ellipse

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_circle

    │ │ │ │
    void al_draw_filled_circle(float cx, float cy, float r, ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a filled circle.

    │ │ │ │

    Parameters:

    │ │ │ │ @@ -696,14 +796,23 @@ │ │ │ │
  • cx, cy - Center of the circle
  • │ │ │ │
  • r - Radius of the circle
  • │ │ │ │
  • color - Color of the circle
  • │ │ │ │ │ │ │ │

    See also: al_draw_circle, al_draw_filled_ellipse

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_arc

    │ │ │ │
    void al_draw_arc(float cx, float cy, float r, float start_theta,
    │ │ │ │     float delta_theta, ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an arc.

    │ │ │ │ @@ -718,14 +827,19 @@ │ │ │ │ number to switch direction) │ │ │ │
  • thickness - Thickness of the arc, pass <= 0 to draw │ │ │ │ hairline arc
  • │ │ │ │ │ │ │ │

    See also: al_calculate_arc, al_draw_elliptical_arc

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_elliptical_arc

    │ │ │ │
    void al_draw_elliptical_arc(float cx, float cy, float rx, float ry, float start_theta,
    │ │ │ │     float delta_theta, ALLEGRO_COLOR color, float thickness)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws an elliptical arc.

    │ │ │ │ @@ -741,14 +855,19 @@ │ │ │ │
  • thickness - Thickness of the arc, pass <= 0 to draw │ │ │ │ hairline arc
  • │ │ │ │ │ │ │ │

    Since: 5.0.6, 5.1.0

    │ │ │ │

    See also: al_calculate_arc, al_draw_arc

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_calculate_spline

    │ │ │ │
    void al_calculate_spline(float* dest, int stride, float points[8],
    │ │ │ │     float thickness, int num_segments)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Calculates a Bézier spline given 4 control points. If │ │ │ │ @@ -783,14 +902,19 @@ │ │ │ │ points │ │ │ │

  • color - Color of the spline
  • │ │ │ │
  • thickness - Thickness of the spline, pass <= 0 to │ │ │ │ draw a hairline spline
  • │ │ │ │ │ │ │ │

    See also: al_calculate_spline

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_calculate_ribbon

    │ │ │ │
    void al_calculate_ribbon(float* dest, int dest_stride, const float *points,
    │ │ │ │     int points_stride, float thickness, int num_segments)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Calculates a ribbon given an array of points. The ribbon will go │ │ │ │ @@ -893,14 +1017,23 @@ │ │ │ │ {.x = 256, .y = 256, .z = 0, .color = white, .u = 256, .v = 256}}; │ │ │ │ al_draw_prim(v, NULL, texture, 0, 3, ALLEGRO_PRIM_TRIANGLE_LIST); │ │ │ │

    See also: ALLEGRO_VERTEX, ALLEGRO_PRIM_TYPE, ALLEGRO_VERTEX_DECL, al_draw_indexed_prim

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_indexed_prim

    │ │ │ │
    int al_draw_indexed_prim(const void* vtxs, const ALLEGRO_VERTEX_DECL* decl,
    │ │ │ │     ALLEGRO_BITMAP* texture, const int* indices, int num_vtx, int type)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a subset of the passed vertex array. This function uses an │ │ │ │ @@ -921,14 +1054,21 @@ │ │ │ │ │ │ │ │

    Returns: Number of primitives drawn

    │ │ │ │

    See also: ALLEGRO_VERTEX, ALLEGRO_PRIM_TYPE, ALLEGRO_VERTEX_DECL, al_draw_prim

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_vertex_buffer

    │ │ │ │
    int al_draw_vertex_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,
    │ │ │ │     ALLEGRO_BITMAP* texture, int start, int end, int type)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draws a subset of the passed vertex buffer. The vertex buffer must │ │ │ │ @@ -948,14 +1088,21 @@ │ │ │ │ enumeration, specifying what kind of primitive to draw │ │ │ │ │ │ │ │

    Returns: Number of primitives drawn

    │ │ │ │

    Since: 5.1.3

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ ALLEGRO_PRIM_TYPE

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_indexed_buffer

    │ │ │ │
    int al_draw_indexed_buffer(ALLEGRO_VERTEX_BUFFER* vertex_buffer,
    │ │ │ │     ALLEGRO_BITMAP* texture, ALLEGRO_INDEX_BUFFER* index_buffer,
    │ │ │ │     int start, int end, int type)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -981,14 +1128,19 @@ │ │ │ │ │ │ │ │

    Returns: Number of primitives drawn

    │ │ │ │

    Since: 5.1.8

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ ALLEGRO_INDEX_BUFFER, │ │ │ │ ALLEGRO_PRIM_TYPE

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_soft_triangle

    │ │ │ │
    void al_draw_soft_triangle(
    │ │ │ │     ALLEGRO_VERTEX* v1, ALLEGRO_VERTEX* v2, ALLEGRO_VERTEX* v3, uintptr_t state,
    │ │ │ │     void (*init)(uintptr_t, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*, ALLEGRO_VERTEX*),
    │ │ │ │     void (*first)(uintptr_t, int, int, int, int),
    │ │ │ │     void (*step)(uintptr_t, int),
    │ │ │ │     void (*draw)(uintptr_t, int, int, int))
    │ │ │ │ @@ -1073,14 +1225,21 @@ │ │ │ │ │ │ │ │

    Returns: Newly created vertex declaration.

    │ │ │ │

    See also: ALLEGRO_VERTEX_ELEMENT, │ │ │ │ ALLEGRO_VERTEX_DECL, │ │ │ │ al_destroy_vertex_decl

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_destroy_vertex_decl

    │ │ │ │
    void al_destroy_vertex_decl(ALLEGRO_VERTEX_DECL* decl)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Destroys a vertex declaration.

    │ │ │ │

    Parameters:

    │ │ │ │ @@ -1088,14 +1247,19 @@ │ │ │ │
  • decl - Vertex declaration to destroy
  • │ │ │ │ │ │ │ │

    See also: ALLEGRO_VERTEX_ELEMENT, │ │ │ │ ALLEGRO_VERTEX_DECL, │ │ │ │ al_create_vertex_decl

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    Vertex buffer routines

    │ │ │ │

    al_create_vertex_buffer

    │ │ │ │
    ALLEGRO_VERTEX_BUFFER* al_create_vertex_buffer(ALLEGRO_VERTEX_DECL* decl,
    │ │ │ │     const void* initial_data, int num_vertices, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -1123,25 +1287,39 @@ │ │ │ │ as passing ALLEGRO_PRIM_BUFFER_STATIC. │ │ │ │ │ │ │ │

    Since: 5.1.3

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ al_destroy_vertex_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_destroy_vertex_buffer

    │ │ │ │
    void al_destroy_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Destroys a vertex buffer. Does nothing if passed NULL.

    │ │ │ │

    Since: 5.1.3

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ al_create_vertex_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_lock_vertex_buffer

    │ │ │ │
    void* al_lock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer, int offset,
    │ │ │ │     int length, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Locks a vertex buffer so you can access its data. Will return NULL if │ │ │ │ @@ -1156,25 +1334,39 @@ │ │ │ │ ALLEGRO_LOCK_READWRITE │ │ │ │ │ │ │ │

    Since: 5.1.3

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ al_unlock_vertex_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_unlock_vertex_buffer

    │ │ │ │
    void al_unlock_vertex_buffer(ALLEGRO_VERTEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Unlocks a previously locked vertex buffer.

    │ │ │ │

    Since: 5.1.3

    │ │ │ │

    See also: ALLEGRO_VERTEX_BUFFER, │ │ │ │ al_lock_vertex_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_vertex_buffer_size

    │ │ │ │
    int al_get_vertex_buffer_size(ALLEGRO_VERTEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the size of the vertex buffer

    │ │ │ │

    Since: 5.1.8

    │ │ │ │ @@ -1209,24 +1401,34 @@ │ │ │ │ flags specifying how this buffer will be created. Passing 0 is the same │ │ │ │ as passing ALLEGRO_PRIM_BUFFER_STATIC. │ │ │ │ │ │ │ │

    Since: 5.1.8

    │ │ │ │

    See also: ALLEGRO_INDEX_BUFFER, al_destroy_index_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_destroy_index_buffer

    │ │ │ │
    void al_destroy_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Destroys a index buffer. Does nothing if passed NULL.

    │ │ │ │

    Since: 5.1.8

    │ │ │ │

    See also: ALLEGRO_INDEX_BUFFER, al_create_index_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_lock_index_buffer

    │ │ │ │
    void* al_lock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer, int offset,
    │ │ │ │      int length, int flags)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Locks a index buffer so you can access its data. Will return NULL if │ │ │ │ @@ -1240,24 +1442,34 @@ │ │ │ │

  • flags - ALLEGRO_LOCK_READONLY, ALLEGRO_LOCK_WRITEONLY or │ │ │ │ ALLEGRO_LOCK_READWRITE
  • │ │ │ │ │ │ │ │

    Since: 5.1.8

    │ │ │ │

    See also: ALLEGRO_INDEX_BUFFER, al_unlock_index_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_unlock_index_buffer

    │ │ │ │
    void al_unlock_index_buffer(ALLEGRO_INDEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Unlocks a previously locked index buffer.

    │ │ │ │

    Since: 5.1.8

    │ │ │ │

    See also: ALLEGRO_INDEX_BUFFER, al_lock_index_buffer

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_index_buffer_size

    │ │ │ │
    int al_get_index_buffer_size(ALLEGRO_INDEX_BUFFER* buffer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the size of the index buffer

    │ │ │ │

    Since: 5.1.8

    │ │ │ │ @@ -1305,14 +1517,19 @@ │ │ │ │

    The stride may also be negative if the vertices are stored in reverse │ │ │ │ order.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_draw_polygon, ALLEGRO_LINE_JOIN, ALLEGRO_LINE_CAP

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_polygon

    │ │ │ │
    void al_draw_polygon(const float *vertices, int vertex_count,
    │ │ │ │     int join_style, ALLEGRO_COLOR color, float thickness, float miter_limit)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draw an unfilled polygon. This is the same as passing │ │ │ │ @@ -1330,14 +1547,19 @@ │ │ │ │

  • miter_limit - Parameter for miter join style
  • │ │ │ │ │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_draw_filled_polygon, │ │ │ │ al_draw_polyline, ALLEGRO_LINE_JOIN

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_polygon

    │ │ │ │
    void al_draw_filled_polygon(const float *vertices, int vertex_count,
    │ │ │ │     ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Draw a filled, simple polygon. Simple means it does not have to be │ │ │ │ @@ -1349,14 +1571,19 @@ │ │ │ │ │ │ │ │

    When the y-axis is facing downwards (the usual), the coordinates must │ │ │ │ be ordered anti-clockwise.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_draw_polygon, al_draw_filled_polygon_with_holes

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_draw_filled_polygon_with_holes

    │ │ │ │
    void al_draw_filled_polygon_with_holes(const float *vertices,
    │ │ │ │     const int *vertex_counts, ALLEGRO_COLOR color)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -1399,14 +1626,19 @@ │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_draw_filled_polygon, │ │ │ │ al_draw_filled_polygon_with_holes, │ │ │ │ al_triangulate_polygon

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_triangulate_polygon

    │ │ │ │
    bool al_triangulate_polygon(
    │ │ │ │     const float* vertices, size_t vertex_stride, const int* vertex_counts,
    │ │ │ │     void (*emit_triangle)(int, int, int, void*), void* userdata)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -1450,28 +1682,44 @@ │ │ │ │
  • x, y, z - Position of the vertex (float)
  • │ │ │ │
  • u, v - Texture coordinates measured in pixels (float)
  • │ │ │ │
  • color - ALLEGRO_COLOR │ │ │ │ structure, storing the color of the vertex
  • │ │ │ │ │ │ │ │

    See also: ALLEGRO_PRIM_ATTR

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    ALLEGRO_VERTEX_DECL

    │ │ │ │
    typedef struct ALLEGRO_VERTEX_DECL ALLEGRO_VERTEX_DECL;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    A vertex declaration. This opaque structure is responsible for │ │ │ │ describing the format and layout of a user defined custom vertex. It is │ │ │ │ created and destroyed by specialized functions.

    │ │ │ │

    See also: al_create_vertex_decl, │ │ │ │ al_destroy_vertex_decl, │ │ │ │ ALLEGRO_VERTEX_ELEMENT

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    ALLEGRO_VERTEX_ELEMENT

    │ │ │ │
    typedef struct ALLEGRO_VERTEX_ELEMENT ALLEGRO_VERTEX_ELEMENT;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    A small structure describing a certain element of a vertex. E.g. the │ │ │ │ position of the vertex, or its color. These structures are used by the │ │ │ │ @@ -1506,14 +1754,21 @@ │ │ │ │ structure. The C function offsetof is very useful here. │ │ │ │ │ │ │ │

    See also: al_create_vertex_decl, │ │ │ │ ALLEGRO_VERTEX_DECL, │ │ │ │ ALLEGRO_PRIM_ATTR, ALLEGRO_PRIM_STORAGE

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    ALLEGRO_PRIM_TYPE

    │ │ │ │
    typedef enum ALLEGRO_PRIM_TYPE
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Enumerates the types of primitives this addon can draw.

    │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:20 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:40 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -138,8 +138,8 @@ │ │ │ │ │ void al_set_errno(int errnum) │ │ │ │ │ SETTER(allegro_errno, errnum) │ │ │ │ │ Source_Code │ │ │ │ │ Set the error number for the calling thread. │ │ │ │ │ Examples: │ │ │ │ │ * ex_curl.c │ │ │ │ │ * ex_utf8.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:20 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:40 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/system.html │ │ │ │ @@ -812,12 +812,12 @@ │ │ │ │
  • ALLEGRO_SYSTEM_ID_SDL - SDL
  • │ │ │ │ │ │ │ │

    Since: 5.2.5

    │ │ │ │

    See also: al_get_system_id

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:21 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:40 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -567,8 +567,8 @@ │ │ │ │ │ * ALLEGRO_SYSTEM_ID_ANDROID - Android │ │ │ │ │ * ALLEGRO_SYSTEM_ID_IPHONE - iOS │ │ │ │ │ * ALLEGRO_SYSTEM_ID_GP2XWIZ - GP2XWIZ │ │ │ │ │ * ALLEGRO_SYSTEM_ID_RASPBERRYPI - Raspberry Pi │ │ │ │ │ * ALLEGRO_SYSTEM_ID_SDL - SDL │ │ │ │ │ Since: 5.2.5 │ │ │ │ │ See also: al_get_system_id │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:21 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:40 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/threads.html │ │ │ │ @@ -208,17 +208,17 @@ │ │ │ │ Code

    │ │ │ │

    An opaque structure representing a thread.

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    ALLEGRO_MUTEX

    │ │ │ │
    typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX;
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    An opaque structure representing a mutex.

    │ │ │ │ @@ -254,17 +254,17 @@ │ │ │ │

    See also: al_start_thread, │ │ │ │ al_join_thread.

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_create_thread_with_stacksize

    │ │ │ │
    ALLEGRO_THREAD *al_create_thread_with_stacksize(
    │ │ │ │     void *(*proc)(ALLEGRO_THREAD *thread, void *arg), void *arg, size_t stacksize)
    │ │ │ │

    Source │ │ │ │ @@ -294,17 +294,17 @@ │ │ │ │

    See also: al_create_thread.

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_join_thread

    │ │ │ │
    void al_join_thread(ALLEGRO_THREAD *thread, void **ret_value)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Wait for the thread to finish executing. This implicitly calls See also: al_join_thread.

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_run_detached_thread

    │ │ │ │
    void al_run_detached_thread(void *(*proc)(void *arg), void *arg)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Runs the passed function in its own thread, with arg │ │ │ │ @@ -582,12 +582,12 @@ │ │ │ │ href="threads.html#al_broadcast_cond">al_broadcast_cond but al_signal_cond may be more │ │ │ │ efficient when it’s applicable.

    │ │ │ │

    See also: al_broadcast_cond.

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:22 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:40 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -80,16 +80,16 @@ │ │ │ │ │ #include │ │ │ │ │ ****** ALLEGRO_THREAD ****** │ │ │ │ │ typedef struct ALLEGRO_THREAD ALLEGRO_THREAD; │ │ │ │ │ Source_Code │ │ │ │ │ An opaque structure representing a thread. │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads.c │ │ │ │ │ - * ex_native_filechooser.c │ │ │ │ │ * ex_threads2.c │ │ │ │ │ + * ex_loading_thread.c │ │ │ │ │ ****** ALLEGRO_MUTEX ****** │ │ │ │ │ typedef struct ALLEGRO_MUTEX ALLEGRO_MUTEX; │ │ │ │ │ Source_Code │ │ │ │ │ An opaque structure representing a mutex. │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads2.c │ │ │ │ │ * ex_loading_thread.c │ │ │ │ │ @@ -106,16 +106,16 @@ │ │ │ │ │ Spawn a new thread which begins executing proc. The new thread is passed its │ │ │ │ │ own thread handle and the value arg. │ │ │ │ │ Returns a pointer to the thread on success. Otherwise, returns NULL if there │ │ │ │ │ was an error. │ │ │ │ │ See also: al_start_thread, al_join_thread. │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads.c │ │ │ │ │ - * ex_native_filechooser.c │ │ │ │ │ * ex_threads2.c │ │ │ │ │ + * ex_loading_thread.c │ │ │ │ │ ****** al_create_thread_with_stacksize ****** │ │ │ │ │ ALLEGRO_THREAD *al_create_thread_with_stacksize( │ │ │ │ │ void *(*proc)(ALLEGRO_THREAD *thread, void *arg), void *arg, size_t │ │ │ │ │ stacksize) │ │ │ │ │ Source_Code │ │ │ │ │ Spawn a new thread with the give stacksize in bytes which begins executing │ │ │ │ │ proc. The new thread is passed its own thread handle and the value arg. │ │ │ │ │ @@ -130,16 +130,16 @@ │ │ │ │ │ Source_Code │ │ │ │ │ When a thread is created, it is initially in a suspended state. Calling │ │ │ │ │ al_start_thread will start its actual execution. │ │ │ │ │ Starting a thread which has already been started does nothing. │ │ │ │ │ See also: al_create_thread. │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads.c │ │ │ │ │ - * ex_native_filechooser.c │ │ │ │ │ * ex_threads2.c │ │ │ │ │ + * ex_loading_thread.c │ │ │ │ │ ****** al_join_thread ****** │ │ │ │ │ void al_join_thread(ALLEGRO_THREAD *thread, void **ret_value) │ │ │ │ │ Source_Code │ │ │ │ │ Wait for the thread to finish executing. This implicitly calls │ │ │ │ │ al_set_thread_should_stop first. │ │ │ │ │ If ret_value is non-NULL, the value returned by the thread function will be │ │ │ │ │ stored at the location pointed to by ret_value. │ │ │ │ │ @@ -173,16 +173,16 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Free the resources used by a thread. Implicitly performs al_join_thread on the │ │ │ │ │ thread if it hasn’t been done already. │ │ │ │ │ Does nothing if thread is NULL. │ │ │ │ │ See also: al_join_thread. │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads.c │ │ │ │ │ - * ex_native_filechooser.c │ │ │ │ │ * ex_threads2.c │ │ │ │ │ + * ex_native_filechooser.c │ │ │ │ │ ****** al_run_detached_thread ****** │ │ │ │ │ void al_run_detached_thread(void *(*proc)(void *arg), void *arg) │ │ │ │ │ Source_Code │ │ │ │ │ Runs the passed function in its own thread, with arg passed to it as only │ │ │ │ │ parameter. This is similar to calling al_create_thread, al_start_thread and │ │ │ │ │ (after the thread has finished) al_destroy_thread - but you don’t have the │ │ │ │ │ possibility of ever calling al_join_thread on the thread. │ │ │ │ │ @@ -298,8 +298,8 @@ │ │ │ │ │ ****** al_signal_cond ****** │ │ │ │ │ void al_signal_cond(ALLEGRO_COND *cond) │ │ │ │ │ Source_Code │ │ │ │ │ Unblock at least one thread waiting on a condition variable. │ │ │ │ │ Generally you should use al_broadcast_cond but al_signal_cond may be more │ │ │ │ │ efficient when it’s applicable. │ │ │ │ │ See also: al_broadcast_cond. │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:22 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:40 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/time.html │ │ │ │ @@ -239,12 +239,12 @@ │ │ │ │
  • ex_timer_pause.c
  • │ │ │ │
  • ex_mouse_focus.c
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:22 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:40 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -89,8 +89,8 @@ │ │ │ │ │ al_rest(0.000001) │ │ │ │ │ might pause for something like 10ms. Also see the section on Timer routines for │ │ │ │ │ easier ways to time your program without using up all CPU. │ │ │ │ │ Examples: │ │ │ │ │ * ex_keyboard_focus.c │ │ │ │ │ * ex_timer_pause.c │ │ │ │ │ * ex_mouse_focus.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:22 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:40 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/timer.html │ │ │ │ @@ -423,12 +423,12 @@ │ │ │ │
  • ex_timer_pause.c
  • │ │ │ │
  • ex_user_events.c
  • │ │ │ │ │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:42 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -199,8 +199,8 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Retrieve the associated event source. Timers will generate events of type │ │ │ │ │ ALLEGRO_EVENT_TIMER. │ │ │ │ │ Examples: │ │ │ │ │ * ex_enet_server.c │ │ │ │ │ * ex_timer_pause.c │ │ │ │ │ * ex_user_events.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:42 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/touch.html │ │ │ │ @@ -316,17 +316,17 @@ │ │ │ │ called successfully.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_lockbitmap.c
    • │ │ │ │
    • ex_prim_shader.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_haiku.c#L973">ex_haiku.c │ │ │ │
    • nihgui.cpp
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_prim_shader.c#L154">ex_prim_shader.c │ │ │ │
    │ │ │ │

    al_get_touch_input_state

    │ │ │ │
    void al_get_touch_input_state(ALLEGRO_TOUCH_INPUT_STATE *ret_state)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Gets the current touch input state. The touch information is copied │ │ │ │ @@ -387,17 +387,17 @@ │ │ │ │ href="events.html#allegro_event_source">ALLEGRO_EVENT_SOURCE, al_register_event_source

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_get_touch_input_mouse_emulation_event_source

    │ │ │ │
    ALLEGRO_EVENT_SOURCE *al_get_touch_input_mouse_emulation_event_source(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -415,18 +415,18 @@ │ │ │ │ different semantics compared to mouse input.

    │ │ │ │ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_lockbitmap.c
    • │ │ │ │
    • ex_prim_shader.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_haiku.c#L975">ex_haiku.c │ │ │ │
    • ex_polygon.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_prim_shader.c#L156">ex_prim_shader.c │ │ │ │
    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:42 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -133,16 +133,16 @@ │ │ │ │ │ ****** al_is_touch_input_installed ****** │ │ │ │ │ bool al_is_touch_input_installed(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if al_install_touch_input was called successfully. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ Examples: │ │ │ │ │ * ex_lockbitmap.c │ │ │ │ │ + * ex_haiku.c │ │ │ │ │ * ex_prim_shader.c │ │ │ │ │ - * nihgui.cpp │ │ │ │ │ ****** al_get_touch_input_state ****** │ │ │ │ │ void al_get_touch_input_state(ALLEGRO_TOUCH_INPUT_STATE *ret_state) │ │ │ │ │ Source_Code │ │ │ │ │ Gets the current touch input state. The touch information is copied into the │ │ │ │ │ ALLEGRO_TOUCH_INPUT_STATE you provide to this function. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ ****** al_set_mouse_emulation_mode ****** │ │ │ │ │ @@ -169,23 +169,23 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Returns the global touch input event source. This event source generates touch │ │ │ │ │ input_events. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: ALLEGRO_EVENT_SOURCE, al_register_event_source │ │ │ │ │ Examples: │ │ │ │ │ * ex_touch_input.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ * ex_android.c │ │ │ │ │ + * ex_polygon.c │ │ │ │ │ ****** al_get_touch_input_mouse_emulation_event_source ****** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_get_touch_input_mouse_emulation_event_source(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the global touch input event source for emulated mouse events. This │ │ │ │ │ event source generates emulated_mouse_events that are based on touch events. │ │ │ │ │ See also: ALLEGRO_EVENT_SOURCE, al_register_event_source │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ Unstable_API: Seems of limited value, as touch input tends to have │ │ │ │ │ different semantics compared to mouse input. │ │ │ │ │ Examples: │ │ │ │ │ * ex_lockbitmap.c │ │ │ │ │ + * ex_haiku.c │ │ │ │ │ * ex_prim_shader.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:42 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/transformations.html │ │ │ │ @@ -296,15 +296,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_shader.cpp
    • │ │ │ │
    • ex_shader_target.c
    • │ │ │ │
    • ex_polygon.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_audio_timer.c#L74">ex_audio_timer.c │ │ │ │
    │ │ │ │

    al_copy_transform

    │ │ │ │
    void al_copy_transform(ALLEGRO_TRANSFORM *dest, const ALLEGRO_TRANSFORM *src)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Makes a copy of a transformation.

    │ │ │ │ @@ -349,15 +349,15 @@ │ │ │ │

    Examples:

    │ │ │ │
      │ │ │ │
    • ex_shader.cpp
    • │ │ │ │
    • ex_shader_target.c
    • │ │ │ │
    • ex_polygon.c
    • │ │ │ │ +href="https://github.com/liballeg/allegro5/blob/master/examples/ex_audio_timer.c#L124">ex_audio_timer.c │ │ │ │
    │ │ │ │

    al_get_current_transform

    │ │ │ │
    const ALLEGRO_TRANSFORM *al_get_current_transform(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the transformation of the current target bitmap, as set by Examples:

    │ │ │ │ │ │ │ │

    al_build_transform

    │ │ │ │
    void al_build_transform(ALLEGRO_TRANSFORM *trans, float x, float y,
    │ │ │ │     float sx, float sy, float theta)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │ @@ -585,17 +585,17 @@ │ │ │ │ al_compose_transform

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_build_camera_transform

    │ │ │ │
    void al_build_camera_transform(ALLEGRO_TRANSFORM *trans,
    │ │ │ │     float position_x, float position_y, float position_z,
    │ │ │ │     float look_x, float look_y, float look_z,
    │ │ │ │     float up_x, float up_y, float up_z)
    │ │ │ │

    al_build_transform

    │ │ │ │

    Examples:

    │ │ │ │ │ │ │ │

    al_transform_coordinates

    │ │ │ │
    void al_transform_coordinates(const ALLEGRO_TRANSFORM *trans, float *x, float *y)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Transform a pair of coordinates.

    │ │ │ │ @@ -1059,12 +1059,12 @@ │ │ │ │
  • theta - Rotation angle in radians
  • │ │ │ │ │ │ │ │

    Since: 5.1.7

    │ │ │ │

    See also: al_horizontal_shear_transform

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:47 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -143,15 +143,15 @@ │ │ │ │ │ small subsection of this matrix, namely the top left 2x2 matrix, and the right │ │ │ │ │ most 2x1 matrix, for a total of 6 values. │ │ │ │ │ Fields: │ │ │ │ │ * m - A 4x4 float matrix │ │ │ │ │ Examples: │ │ │ │ │ * ex_shader.cpp │ │ │ │ │ * ex_shader_target.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ + * ex_audio_timer.c │ │ │ │ │ ****** al_copy_transform ****** │ │ │ │ │ void al_copy_transform(ALLEGRO_TRANSFORM *dest, const ALLEGRO_TRANSFORM *src) │ │ │ │ │ Source_Code │ │ │ │ │ Makes a copy of a transformation. │ │ │ │ │ Parameters: │ │ │ │ │ * dest - Source transformation │ │ │ │ │ * src - Destination transformation │ │ │ │ │ @@ -176,15 +176,15 @@ │ │ │ │ │ } │ │ │ │ │ Parameters: │ │ │ │ │ * trans - Transformation to use │ │ │ │ │ See also: al_get_current_transform, al_transform_coordinates │ │ │ │ │ Examples: │ │ │ │ │ * ex_shader.cpp │ │ │ │ │ * ex_shader_target.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ + * ex_audio_timer.c │ │ │ │ │ ****** al_get_current_transform ****** │ │ │ │ │ const ALLEGRO_TRANSFORM *al_get_current_transform(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the transformation of the current target bitmap, as set by │ │ │ │ │ al_use_transform. If there is no target bitmap, this function returns NULL. │ │ │ │ │ Returns: A pointer to the current transformation. │ │ │ │ │ See also: al_get_current_projection_transform │ │ │ │ │ @@ -306,15 +306,15 @@ │ │ │ │ │ al_use_transform(&t); │ │ │ │ │ Parameters: │ │ │ │ │ * trans - Transformation to alter │ │ │ │ │ See also: al_translate_transform, al_rotate_transform, al_scale_transform │ │ │ │ │ Examples: │ │ │ │ │ * ex_shader.cpp │ │ │ │ │ * ex_shader_target.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ + * ex_audio_timer.c │ │ │ │ │ ****** al_build_transform ****** │ │ │ │ │ void al_build_transform(ALLEGRO_TRANSFORM *trans, float x, float y, │ │ │ │ │ float sx, float sy, float theta) │ │ │ │ │ Source_Code │ │ │ │ │ Builds a transformation given some parameters. This call is equivalent to │ │ │ │ │ calling the transformations in this order: make identity, rotate, scale, │ │ │ │ │ translate. This method is faster, however, than actually calling those │ │ │ │ │ @@ -327,16 +327,16 @@ │ │ │ │ │ Note: this function was previously documented to be equivalent to a │ │ │ │ │ different (and more useful) order of operations: identity, scale, │ │ │ │ │ rotate, translate. │ │ │ │ │ See also: al_translate_transform, al_rotate_transform, al_scale_transform, │ │ │ │ │ al_compose_transform │ │ │ │ │ Examples: │ │ │ │ │ * ex_threads.c │ │ │ │ │ - * ex_prim.c │ │ │ │ │ * ex_color_gradient.c │ │ │ │ │ + * ex_prim.c │ │ │ │ │ ****** al_build_camera_transform ****** │ │ │ │ │ void al_build_camera_transform(ALLEGRO_TRANSFORM *trans, │ │ │ │ │ float position_x, float position_y, float position_z, │ │ │ │ │ float look_x, float look_y, float look_z, │ │ │ │ │ float up_x, float up_y, float up_z) │ │ │ │ │ Source_Code │ │ │ │ │ Builds a transformation which can be used to transform 3D coordinates in world │ │ │ │ │ @@ -401,16 +401,16 @@ │ │ │ │ │ Apply a scale to a transformation. │ │ │ │ │ Parameters: │ │ │ │ │ * trans - Transformation to alter │ │ │ │ │ * sx, sy - Scale │ │ │ │ │ See also: al_translate_transform, al_rotate_transform, al_build_transform │ │ │ │ │ Examples: │ │ │ │ │ * ex_shader_target.c │ │ │ │ │ - * ex_polygon.c │ │ │ │ │ * ex_audio_timer.c │ │ │ │ │ + * ex_polygon.c │ │ │ │ │ ****** al_transform_coordinates ****** │ │ │ │ │ void al_transform_coordinates(const ALLEGRO_TRANSFORM *trans, float *x, float │ │ │ │ │ *y) │ │ │ │ │ Source_Code │ │ │ │ │ Transform a pair of coordinates. │ │ │ │ │ Parameters: │ │ │ │ │ * trans - Transformation to use │ │ │ │ │ @@ -637,8 +637,8 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Apply a vertical shear to the transform │ │ │ │ │ Parameters: │ │ │ │ │ * trans - Transformation to alter │ │ │ │ │ * theta - Rotation angle in radians │ │ │ │ │ Since: 5.1.7 │ │ │ │ │ See also: al_horizontal_shear_transform │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:47 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/utf8.html │ │ │ │ @@ -1611,12 +1611,12 @@ │ │ │ │ points above 0x10FFFF.

    │ │ │ │

    Returns the number of bytes written, which is the same as that │ │ │ │ returned by al_utf16_width.

    │ │ │ │

    See also: al_utf8_encode, al_ustr_encode_utf16

    │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ + - Last updated: 2024-01-08 05:22:47 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -915,8 +915,8 @@ │ │ │ │ │ Source_Code │ │ │ │ │ Encode the specified code point to UTF-16 into the buffer s. The buffer must │ │ │ │ │ have enough space to hold the encoding, which takes either 2 or 4 bytes. This │ │ │ │ │ routine will refuse to encode code points above 0x10FFFF. │ │ │ │ │ Returns the number of bytes written, which is the same as that returned by │ │ │ │ │ al_utf16_width. │ │ │ │ │ See also: al_utf8_encode, al_ustr_encode_utf16 │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:23 UTC │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:22:47 UTC │ │ │ ├── ./usr/share/doc/allegro5-doc/refman/video.html │ │ │ │ @@ -266,14 +266,19 @@ │ │ │ │

    al_init_video_addon

    │ │ │ │
    bool al_init_video_addon(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Initializes the video addon.

    │ │ │ │

    Since: 5.1.12

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_is_video_addon_initialized

    │ │ │ │
    bool al_is_video_addon_initialized(void)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if the video addon is initialized, otherwise returns │ │ │ │ @@ -299,14 +304,19 @@ │ │ │ │

    ALLEGRO_VIDEO *al_open_video(char const *filename)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Reads a video file. This does not start streaming yet but reads the │ │ │ │ meta info so you can query e.g. the size or audio rate.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_identify_video

    │ │ │ │
    char const *al_identify_video(char const *filename)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    This works exactly as al_identify_video_f but you │ │ │ │ @@ -338,21 +348,31 @@ │ │ │ │

    void al_close_video(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Closes the video and frees all allocated resources. The video pointer │ │ │ │ is invalid after the function returns.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_start_video

    │ │ │ │
    void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Starts streaming the video from the beginning.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_start_video_with_voice

    │ │ │ │
    void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Like al_start_video but audio │ │ │ │ is routed to the provided voice.

    │ │ │ │ @@ -362,65 +382,100 @@ │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Get an event source for the video. The possible events are described │ │ │ │ under ALLEGRO_VIDEO_EVENT_TYPE.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_set_video_playing

    │ │ │ │
    void al_set_video_playing(ALLEGRO_VIDEO *video, bool play)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Paused or resumes playback.

    │ │ │ │

    Since: 5.1.12

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_is_video_playing

    │ │ │ │
    bool al_is_video_playing(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns true if the video is currently playing.

    │ │ │ │

    Since: 5.1.12

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_audio_rate

    │ │ │ │
    double al_get_video_audio_rate(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the audio rate of the video, in Hz.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_fps

    │ │ │ │
    double al_get_video_fps(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the speed of the video in frames per second. Often this will │ │ │ │ not be an integer value.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_scaled_width

    │ │ │ │
    float al_get_video_scaled_width(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the width with which the video frame should be drawn. Videos │ │ │ │ often do not use square pixels, so this will may return a value larger │ │ │ │ than the width of the frame bitmap.

    │ │ │ │

    Since: 5.1.12

    │ │ │ │

    See also: al_get_video_frame

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_scaled_height

    │ │ │ │
    float al_get_video_scaled_height(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the height with which the video frame should be drawn. Videos │ │ │ │ often do not use square pixels, so this will may return a value larger │ │ │ │ than the height of the frame bitmap.

    │ │ │ │

    See also: al_get_video_frame

    │ │ │ │

    Since: 5.1.12

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_frame

    │ │ │ │
    ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the current video frame. The bitmap is owned by the video so │ │ │ │ do not attempt to free it. The bitmap will stay valid until the next │ │ │ │ @@ -435,32 +490,47 @@ │ │ │ │ float dh = scale * al_get_video_scaled_height(video); │ │ │ │ al_draw_scaled_bitmap(frame, 0, 0, sw, sh, 0, 0, dw, dh, 0); │ │ │ │

    Since: 5.1.0

    │ │ │ │

    See also: al_get_video_scaled_width, │ │ │ │ al_get_video_scaled_height

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_get_video_position

    │ │ │ │
    double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE which)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Returns the current position of the video stream in seconds since the │ │ │ │ beginning. The parameter is one of the ALLEGRO_VIDEO_POSITION_TYPE │ │ │ │ constants.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    al_seek_video

    │ │ │ │
    bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds)
    │ │ │ │

    Source │ │ │ │ Code

    │ │ │ │

    Seek to a different position in the video. Currently only seeking to │ │ │ │ the beginning of the video is supported.

    │ │ │ │

    Since: 5.1.0

    │ │ │ │ +

    Examples:

    │ │ │ │ + │ │ │ │

    │ │ │ │ Allegro version 5.2.8 │ │ │ │ - - Last updated: 2025-02-09 11:25:29 UTC │ │ │ │ + - Last updated: 2024-01-08 05:23:05 UTC │ │ │ │

    │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ├── html2text {} │ │ │ │ │ @@ -113,14 +113,16 @@ │ │ │ │ │ in sync. │ │ │ │ │ Since: 5.1.11 │ │ │ │ │ ****** al_init_video_addon ****** │ │ │ │ │ bool al_init_video_addon(void) │ │ │ │ │ Source_Code │ │ │ │ │ Initializes the video addon. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_is_video_addon_initialized ****** │ │ │ │ │ bool al_is_video_addon_initialized(void) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the video addon is initialized, otherwise returns false. │ │ │ │ │ Since: 5.2.6 │ │ │ │ │ ****** al_shutdown_video_addon ****** │ │ │ │ │ void al_shutdown_video_addon(void) │ │ │ │ │ @@ -136,14 +138,16 @@ │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ ****** al_open_video ****** │ │ │ │ │ ALLEGRO_VIDEO *al_open_video(char const *filename) │ │ │ │ │ Source_Code │ │ │ │ │ Reads a video file. This does not start streaming yet but reads the meta info │ │ │ │ │ so you can query e.g. the size or audio rate. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_identify_video ****** │ │ │ │ │ char const *al_identify_video(char const *filename) │ │ │ │ │ Source_Code │ │ │ │ │ This works exactly as al_identify_video_f but you specify the filename of the │ │ │ │ │ file for which to detect the type and not a file handle. The extension, if any, │ │ │ │ │ of the passed filename is not taken into account - only the file contents. │ │ │ │ │ Since: 5.2.8 │ │ │ │ │ @@ -161,67 +165,85 @@ │ │ │ │ │ See also: al_init_video_addon, al_identify_video │ │ │ │ │ ****** al_close_video ****** │ │ │ │ │ void al_close_video(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Closes the video and frees all allocated resources. The video pointer is │ │ │ │ │ invalid after the function returns. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_start_video ****** │ │ │ │ │ void al_start_video(ALLEGRO_VIDEO *video, ALLEGRO_MIXER *mixer) │ │ │ │ │ Source_Code │ │ │ │ │ Starts streaming the video from the beginning. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_start_video_with_voice ****** │ │ │ │ │ void al_start_video_with_voice(ALLEGRO_VIDEO *video, ALLEGRO_VOICE *voice) │ │ │ │ │ Source_Code │ │ │ │ │ Like al_start_video but audio is routed to the provided voice. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ ****** al_get_video_event_source ****** │ │ │ │ │ ALLEGRO_EVENT_SOURCE *al_get_video_event_source(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Get an event source for the video. The possible events are described under │ │ │ │ │ ALLEGRO_VIDEO_EVENT_TYPE. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_set_video_playing ****** │ │ │ │ │ void al_set_video_playing(ALLEGRO_VIDEO *video, bool play) │ │ │ │ │ Source_Code │ │ │ │ │ Paused or resumes playback. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_is_video_playing ****** │ │ │ │ │ bool al_is_video_playing(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns true if the video is currently playing. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_audio_rate ****** │ │ │ │ │ double al_get_video_audio_rate(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the audio rate of the video, in Hz. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_fps ****** │ │ │ │ │ double al_get_video_fps(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the speed of the video in frames per second. Often this will not be an │ │ │ │ │ integer value. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_scaled_width ****** │ │ │ │ │ float al_get_video_scaled_width(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the width with which the video frame should be drawn. Videos often do │ │ │ │ │ not use square pixels, so this will may return a value larger than the width of │ │ │ │ │ the frame bitmap. │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ See also: al_get_video_frame │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_scaled_height ****** │ │ │ │ │ float al_get_video_scaled_height(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the height with which the video frame should be drawn. Videos often do │ │ │ │ │ not use square pixels, so this will may return a value larger than the height │ │ │ │ │ of the frame bitmap. │ │ │ │ │ See also: al_get_video_frame │ │ │ │ │ Since: 5.1.12 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_frame ****** │ │ │ │ │ ALLEGRO_BITMAP *al_get_video_frame(ALLEGRO_VIDEO *video) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the current video frame. The bitmap is owned by the video so do not │ │ │ │ │ attempt to free it. The bitmap will stay valid until the next call to │ │ │ │ │ al_get_video_frame. │ │ │ │ │ Videos often do not use square pixels so the recommended way to draw a video │ │ │ │ │ @@ -231,21 +253,27 @@ │ │ │ │ │ float sw = al_get_bitmap_width(frame); │ │ │ │ │ float sh = al_get_bitmap_height(frame); │ │ │ │ │ float dw = scale * al_get_video_scaled_width(video); │ │ │ │ │ float dh = scale * al_get_video_scaled_height(video); │ │ │ │ │ al_draw_scaled_bitmap(frame, 0, 0, sw, sh, 0, 0, dw, dh, 0); │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ See also: al_get_video_scaled_width, al_get_video_scaled_height │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_get_video_position ****** │ │ │ │ │ double al_get_video_position(ALLEGRO_VIDEO *video, ALLEGRO_VIDEO_POSITION_TYPE │ │ │ │ │ which) │ │ │ │ │ Source_Code │ │ │ │ │ Returns the current position of the video stream in seconds since the │ │ │ │ │ beginning. The parameter is one of the ALLEGRO_VIDEO_POSITION_TYPE constants. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ ****** al_seek_video ****** │ │ │ │ │ bool al_seek_video(ALLEGRO_VIDEO *video, double pos_in_seconds) │ │ │ │ │ Source_Code │ │ │ │ │ Seek to a different position in the video. Currently only seeking to the │ │ │ │ │ beginning of the video is supported. │ │ │ │ │ Since: 5.1.0 │ │ │ │ │ -Allegro version 5.2.8 - Last updated: 2025-02-09 11:25:29 UTC │ │ │ │ │ +Examples: │ │ │ │ │ + * ex_video.c │ │ │ │ │ +Allegro version 5.2.8 - Last updated: 2024-01-08 05:23:05 UTC