allegro-php / allegro
PHP bindings to the allegro.
Installs: 30
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Language:C
Requires
- php: >=8.1
- ext-ffi: *
- ffi-headers/contracts: ^1.0
- ffi/location: ^1.0
- ffi/preprocessor: ^0.2.2
- ffi/proxy: ^1.0
- psr/simple-cache: ^3.0
README
PHP bindings to the allegro 5 C library.
Requirements
- PHP >= 8.1
- PHP FFI extension available
- allegro 5
Example:
require __DIR__ . '/vendor/autoload.php'; $allegro = new \AllegroPHP\Allegro\Allegro(); $init = $allegro->al_install_system($allegro->al_get_allegro_version(), function (){}); $display = $allegro->al_create_display(500, 500); $queue = $allegro->al_create_event_queue(); $timer = $allegro->al_create_timer(1.0 / 60); $event_queue = $allegro->al_create_event_queue(); $allegro->al_install_keyboard(); $allegro->al_install_joystick(); $allegro->al_install_mouse(); $allegro->al_register_event_source($event_queue, $allegro->al_get_keyboard_event_source()); $allegro->al_register_event_source($event_queue, $allegro->al_get_joystick_event_source()); $allegro->al_register_event_source($event_queue, $allegro->al_get_mouse_event_source()); $allegro->al_register_event_source($event_queue, $allegro->al_get_display_event_source($display)); $allegro->al_register_event_source($event_queue, $allegro->al_get_timer_event_source($timer)); $running = true; $event = $allegro->new('ALLEGRO_EVENT'); while ($running){ $allegro->al_wait_for_event($event_queue, \FFI::addr($event)); if ($event->type === \AllegroPHP\Allegro\Event\Type::DISPLAY_CLOSE) { $running = false; } } $allegro->al_destroy_display($display);