[Allegro 5] al_draw_tinted_bitmap crashuje na Windowsie
Ostatnio zmodyfikowano 2015-08-17 18:46
potate Temat założony przez niniejszego użytkownika |
[Allegro 5] al_draw_tinted_bitmap crashuje na Windowsie » 2015-08-16 16:00:49 #include <vector> #include <allegro5/allegro.h> #include <allegro5/allegro_image.h> int main() { al_init(); al_install_keyboard(); al_init_image_addon(); ALLEGRO_KEYBOARD_STATE keyboard; ALLEGRO_DISPLAY * game_window = al_create_display( 1280, 960 ); ALLEGRO_EVENT_QUEUE * event_queue = al_create_event_queue(); al_set_window_title( game_window, "Crash Test" ); al_register_event_source( event_queue, al_get_display_event_source( game_window ) ); ALLEGRO_BITMAP * pix = al_load_bitmap( "blocks.png" ); short color = 0; while( 1 ) { ALLEGRO_EVENT ev; ALLEGRO_TIMEOUT timeout; al_init_timeout( & timeout, 0.01 ); bool get_event = al_wait_for_event_until( event_queue, & ev, & timeout ); if( get_event && ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE ) { break; } al_get_keyboard_state( & keyboard ); al_clear_to_color( al_map_rgb( 255, 0, 255 ) ); for( int i = 0; i < 160; i++ ) { for( int y = 0; y < 120; y++ ) { al_draw_tinted_bitmap( pix, al_map_rgb(( 255 - color ),( color / 2 ), color ), i * 8, y * 8, 0 ); } } color += 5; if( color > 255 ) color = 0; al_flip_display(); } al_destroy_bitmap( pix ); al_destroy_display( game_window ); return 0; }
Skompilowałem ten kod na 2 platformy (Linux i Windows) - na Linuxie wszystko działa jak należy, jednak mój znajomy z Windowsem 8.1 mówi, że po kilku sekundach program mu crashuje. Dodam, że wywalenie kolorowania bitmapy (w sensie: zwykłe al_draw_bitmap) zapobiega crashom, jednak potrzebuję tej funkcji. Jak można to naprawić? (o ile w ogóle się da) |
|
DejaVu |
» 2015-08-17 10:26:18 Ale crashuje mu bo co? - Bo bibliotek nie widzi aplikacja - bo plików nie widzi aplikacja - wszystko niby działało ale się w pewnym momencie wywaliło |
|
potate Temat założony przez niniejszego użytkownika |
» 2015-08-17 12:20:52 Przez chwilę działa jak powinno, a po kilku sekundach crashuje. |
|
DejaVu |
» 2015-08-17 13:25:11 a) wyciek pamięci b) piszesz po nieswojej pamięci |
|
1aam2am1 |
» 2015-08-17 18:46:44 debuguj to najlepsze rozwiązanie |
|
« 1 » |