performance fixes on menu fades

This commit is contained in:
Sebastian Krzyszkowiak 2012-03-02 00:00:31 +01:00
parent 329e867714
commit b96edbfbce
2 changed files with 19 additions and 21 deletions

View file

@ -67,7 +67,7 @@ struct Menu {
ALLEGRO_FONT *font_selected; ALLEGRO_FONT *font_selected;
int selected; int selected;
bool options; bool options;
bool draw_while_fading; //bool draw_while_fading;
bool loaded; bool loaded;
}; };

View file

@ -166,16 +166,12 @@ void Menu_Stop(struct Game* game) {
game->menu.menu_fade_bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display)); game->menu.menu_fade_bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display));
ALLEGRO_EVENT ev; ALLEGRO_EVENT ev;
int fadeloop; float fadeloop;
for(fadeloop=255; fadeloop>=0; fadeloop-=tps(game, 600)){ for(fadeloop=0; fadeloop<256; fadeloop+=tps(game, 600)){
if ((game->menu.draw_while_fading) || (fadeloop==255)) { //if ((game->menu.draw_while_fading) || (fadeloop==255)) {
Menu_Draw(game);
al_set_target_bitmap(game->menu.menu_fade_bitmap);
al_draw_bitmap(al_get_backbuffer(game->display), 0, 0, 0);
al_set_target_bitmap(al_get_backbuffer(game->display));
}
al_wait_for_event(game->event_queue, &ev); al_wait_for_event(game->event_queue, &ev);
al_draw_tinted_bitmap(game->menu.menu_fade_bitmap,al_map_rgba_f(fadeloop/255.0,fadeloop/255.0,fadeloop/255.0,1),0,0,0); Menu_Draw(game);
al_draw_tinted_bitmap(game->menu.menu_fade_bitmap,al_map_rgba_f(1,1,1,fadeloop/255.0),0,0,0);
DrawConsole(game); DrawConsole(game);
al_flip_display(); al_flip_display();
} }
@ -208,7 +204,7 @@ void play_samples(struct Game *game) {
} }
void Menu_Load(struct Game *game) { void Menu_Load(struct Game *game) {
game->menu.draw_while_fading = atoi(GetConfigOptionDefault("[MuffinAttack]", "menu_draw_while_fading", "1")); //game->menu.draw_while_fading = atoi(GetConfigOptionDefault("[MuffinAttack]", "menu_draw_while_fading", "1"));
game->menu.cloud_position = 100; game->menu.cloud_position = 100;
game->menu.cloud2_position = 100; game->menu.cloud2_position = 100;
game->menu.options = false; game->menu.options = false;
@ -216,18 +212,20 @@ void Menu_Load(struct Game *game) {
play_samples(game); play_samples(game);
game->menu.menu_fade_bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display)); game->menu.menu_fade_bitmap = al_create_bitmap(al_get_display_width(game->display), al_get_display_height(game->display));
ALLEGRO_EVENT ev;
int fadeloop;
for(fadeloop=0; fadeloop<256; fadeloop+=tps(game, 600)){
if ((game->menu.draw_while_fading) || (fadeloop==0)) {
Menu_Draw(game);
al_set_target_bitmap(game->menu.menu_fade_bitmap); al_set_target_bitmap(game->menu.menu_fade_bitmap);
al_draw_bitmap(al_get_backbuffer(game->display), 0, 0, 0); al_clear_to_color(al_map_rgb(0,0,0));
al_set_target_bitmap(al_get_backbuffer(game->display)); al_set_target_bitmap(al_get_backbuffer(game->display));
} ALLEGRO_EVENT ev;
float fadeloop;
for(fadeloop=255; fadeloop>=0; fadeloop-=tps(game, 600)){
//if ((game->menu.draw_while_fading) || (fadeloop==0)) {
// al_set_target_bitmap(game->menu.menu_fade_bitmap);
// al_draw_bitmap(al_get_backbuffer(game->display), 0, 0, 0);
// al_set_target_bitmap(al_get_backbuffer(game->display));
//}
al_wait_for_event(game->event_queue, &ev); al_wait_for_event(game->event_queue, &ev);
al_draw_tinted_bitmap(game->menu.menu_fade_bitmap,al_map_rgba_f(fadeloop/255.0,fadeloop/255.0,fadeloop/255.0,1),0,0,0); Menu_Draw(game);
al_draw_tinted_bitmap(game->menu.menu_fade_bitmap,al_map_rgba_f(1,1,1,fadeloop/255.0),0,0,0);
DrawConsole(game); DrawConsole(game);
al_flip_display(); al_flip_display();
} }