ae5adb593452a0411cffba3bd404cf2bdac94f3f
8 {$DEFINE LibraryLibAllegroDecl := cdecl}
9 {$DEFINE LibraryLibAllegroImp := cdecl; external}
10 {$DEFINE LibraryLibAllegroVar := cvar; external}
11 {$ELSEIF DEFINED(UNIX)}
12 {$LINKLIB liballeg.so}
13 {$DEFINE LibraryLibAllegroDecl := cdecl}
14 {$DEFINE LibraryLibAllegroImp := cdecl; external 'alleg'}
15 {$DEFINE LibraryLibAllegroVar := cvar; external 'alleg'}
17 {$ERROR unsupported platform!}
29 ALEGRO_SUB_VERSION
= 2;
30 ALLEGRO_WIP_VERSION
= 3;
31 ALLEGRO_VERSION_STR
= '4.2.3';
32 {$ELSEIF DEFINED(UNIX)}
34 ALEGRO_SUB_VERSION
= 4;
35 ALLEGRO_WIP_VERSION
= 2;
36 ALLEGRO_VERSION_STR
= '4.4.2';
38 {$ERROR unsupported platform!}
41 SYSTEM_AUTODETECT
= 0;
42 SYSTEM_NONE
= $4e4f4e45;
46 GFX_AUTODETECT_FULLSCREEN
= 1;
47 GFX_AUTODETECT_WINDOWED
= 2;
149 KEY_CIRCUMFLEX
= 100;
152 KEY_EQUALS_PAD
= 103;
179 KB_SHIFT_FLAG
= $0001;
180 KB_CTRL_FLAG
= $0002;
182 KB_LWIN_FLAG
= $0008;
183 KB_RWIN_FLAG
= $0010;
184 KB_MENU_FLAG
= $0020;
185 KB_COMMAND_FLAG
= $0040;
186 KB_SCROLOCK_FLAG
= $0100;
187 KB_NUMLOCK_FLAG
= $0200;
188 KB_CAPSLOCK_FLAG
= $0400;
189 KB_INALTSEQ_FLAG
= $0800;
190 KB_ACCENT1_FLAG
= $1000;
191 KB_ACCENT2_FLAG
= $2000;
192 KB_ACCENT3_FLAG
= $4000;
193 KB_ACCENT4_FLAG
= $8000;
195 ALLEGRO_ERROR_SIZE
= 256;
202 cl
, cr
, ct
, cb
: cint
;
203 vtable
: Pointer; {PGFX_VTABLE}
215 PGFX_MODE
= ^GFX_MODE
;
217 width
, height
, bpp
: cint
;
220 PGFX_MODE_LIST
= ^GFX_MODE_LIST
;
221 GFX_MODE_LIST
= record
226 KeyboardCallback
= procedure (scancode
: cint
); LibraryLibAllegroDecl
;
227 AtExitCallback
= procedure; LibraryLibAllegroDecl
;
228 AtExitFunction
= function (func
: AtExitCallback
): cint
; LibraryLibAllegroDecl
;
231 allegro_id
: array [0..ALLEGRO_ERROR_SIZE
] of char; LibraryLibAllegroVar
;
232 allegro_error
: array [0..ALLEGRO_ERROR_SIZE
] of char; LibraryLibAllegroVar
;
233 keyboard_lowlevel_callback
: KeyboardCallback
; LibraryLibAllegroVar
;
235 function get_desktop_resolution (width
, height
: Pcint
): cint
; LibraryLibAllegroImp
;
236 function get_gfx_mode_list (card
: cint
): PGFX_MODE_LIST
; LibraryLibAllegroImp
;
237 procedure destroy_gfx_mode_list (gfx_mode_list
: PGFX_MODE_LIST
); LibraryLibAllegroImp
;
238 function set_gfx_mode (card
, w
, h
, v_w
, v_h
: cint
): cint
; LibraryLibAllegroImp
;
239 procedure set_window_title (name
: Pchar); LibraryLibAllegroImp
;
240 function create_video_bitmap (width
, height
: cint
): PBITMAP
; LibraryLibAllegroImp
;
241 procedure destroy_bitmap (bitmap
: PBITMAP
); LibraryLibAllegroImp
;
242 function show_video_bitmap (bitmap
: PBITMAP
): cint
; LibraryLibAllegroImp
;
243 function poll_keyboard
: cint
; LibraryLibAllegroImp
;
244 function install_keyboard
: cint
; LibraryLibAllegroImp
;
245 procedure remove_keyboard
; LibraryLibAllegroImp
;
246 function _install_allegro_version_check (system_id
: cint
; errno_ptr
: Pcint
; atexit_ptr
: AtExitFunction
; version
: cint
): cint
; LibraryLibAllegroImp
;
248 function install_allegro (system_id
: cint
; errno_ptr
: Pcint
; atexit_ptr
: AtExitFunction
): cint
; inline; (* macros *)
249 function allegro_init
: cint
; inline; (* macros *)
251 function install_timer
: cint
; LibraryLibAllegroImp
;
252 procedure remove_timer
; LibraryLibAllegroImp
;
253 procedure set_keyboard_rate (delay
, _repeat
: cint
); LibraryLibAllegroImp
;
254 function makeacol (r
, g
, b
, a
: cint
): cint
; LibraryLibAllegroImp
;
255 function makecol (r
, g
, b
: cint
): cint
; LibraryLibAllegroImp
;
256 procedure clear_to_color (source
: PBITMAP
; color
: cint
); LibraryLibAllegroImp
;
257 procedure putpixel (bmp
: PBITMAP
; x
, y
, color
: cint
); LibraryLibAllegroImp
;
258 procedure fastline (bmp
: PBITMAP
; x1
, y_1
, x2
, y2
, color
: cint
); LibraryLibAllegroImp
;
259 procedure draw_sprite (bmp
, sprite
: PBITMAP
; x
, y
: cint
); LibraryLibAllegroImp
;
260 procedure rect (bmp
: PBITMAP
; x1
, y_1
, x2
, y2
, color
: cint
); LibraryLibAllegroImp
;
261 procedure rectfill (bmp
: PBITMAP
; x1
, y_1
, x2
, y2
, color
: cint
); LibraryLibAllegroImp
;
262 function create_bitmap (width
, height
: cint
): PBITMAP
; LibraryLibAllegroImp
;
263 function create_system_bitmap (width
, height
: cint
): PBITMAP
; LibraryLibAllegroImp
;
264 procedure allegro_exit
; LibraryLibAllegroImp
;
266 // function _install_allegro (system_id: cint; errno_prt: Pcint; AtExitFunction): cint; LibraryLibAllegroImp;
270 function install_allegro (system_id
: cint
; errno_ptr
: Pcint
; atexit_ptr
: AtExitFunction
): cint
; inline;
272 install_allegro
:= _install_allegro_version_check(system_id
, errno_ptr
, atexit_ptr
, (ALLEGRO_VERSION
shl 16) OR (ALEGRO_SUB_VERSION
shl 8) OR ALLEGRO_WIP_VERSION
)
275 function allegro_init
: cint
; inline;
277 (* original macros sets atexit_ptr *)
278 (* original macros sets libc errno? *)
279 allegro_init
:= _install_allegro_version_check(SYSTEM_AUTODETECT
, nil, nil, (ALLEGRO_VERSION
shl 16) OR (ALEGRO_SUB_VERSION
shl 8) OR ALLEGRO_WIP_VERSION
)