void dot_privacy_render(void * data) { APP_INSTANCE * app = (APP_INSTANCE *)data; int i; al_clear_to_color(app->level_color[0]); al_hold_bitmap_drawing(true); dot_bg_objects_render(data); al_draw_bitmap(app->bitmap[DOT_BITMAP_BG], 0, 0, 0); for(i = 0; i < 128; i++) { if(privacy_text[i]) { dot_shadow_text(app->font[DOT_FONT_16], t3f_color_white, al_map_rgba_f(0.0, 0.0, 0.0, 0.5), 8, i * 16, DOT_SHADOW_OX, DOT_SHADOW_OY, 0, privacy_text[i]); } else { break; } } if(!app->desktop_mode) { t3f_render_gui(app->menu[app->current_menu]); } al_hold_bitmap_drawing(false); dot_intro_render_split(data); }
void dot_intro_render(void * data) { APP_INSTANCE * app = (APP_INSTANCE *)data; al_clear_to_color(app->level_color[0]); al_hold_bitmap_drawing(true); dot_bg_objects_render(data); al_draw_bitmap(app->bitmap[DOT_BITMAP_BG], 0, 0, 0); if(!app->desktop_mode || !app->menu_showing) { al_draw_bitmap(app->bitmap[DOT_BITMAP_LOGO], DOT_GAME_PLAYFIELD_WIDTH / 2 - al_get_bitmap_width(app->bitmap[DOT_BITMAP_LOGO]) / 2 + app->logo_ox, DOT_GAME_PLAYFIELD_HEIGHT / 2 - al_get_bitmap_height(app->bitmap[DOT_BITMAP_LOGO]) / 2, 0); dot_credits_render(data, app->credits_ox); dot_shadow_text(app->font[DOT_FONT_16], t3f_color_white, al_map_rgba_f(0.0, 0.0, 0.0, 0.5), t3f_virtual_display_width / 2 + app->logo_ox, DOT_GAME_PLAYFIELD_HEIGHT - al_get_font_line_height(app->font[DOT_FONT_16]) * 2, DOT_SHADOW_OX, DOT_SHADOW_OY, ALLEGRO_ALIGN_CENTRE, "Copyright (c) 2016 T^3 Software."); } al_hold_bitmap_drawing(false); dot_intro_render_split(data); if(app->menu_showing) { al_hold_bitmap_drawing(true); t3f_render_gui(app->menu[app->current_menu]); if(app->entering_name) { if((app->tick / 15) % 2) { dot_shadow_text(app->font[DOT_FONT_32], t3f_color_white, al_map_rgba_f(0.0, 0.0, 0.0, 0.5), app->menu[DOT_MENU_PROFILE]->ox + app->menu[DOT_MENU_PROFILE]->element[1].ox + al_get_text_width(app->menu[DOT_MENU_PROFILE]->element[1].aux_data, app->menu[DOT_MENU_PROFILE]->element[1].data) / 2, app->menu[DOT_MENU_PROFILE]->oy + app->menu[DOT_MENU_PROFILE]->element[1].oy, DOT_SHADOW_OX, DOT_SHADOW_OY, 0, "_"); } } al_hold_bitmap_drawing(false); } }
/* render routines, passed to T^3 Framework */ void paddle_render(void * data) { /* render switch, render graphics according to which state we are in */ switch(paddle_state) { case EXAMPLE_STATE_TITLE: { /* draw background */ al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_BG], 0.0, 0.0, 0); /* center logo */ al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_LOGO], al_get_display_width(t3f_display) / 2 - al_get_bitmap_width(paddle_bitmap[EXAMPLE_BITMAP_LOGO]) / 2, 32.0, 0); /* draw menu */ t3f_render_gui(paddle_menu); break; } case EXAMPLE_STATE_GAME: { int i; /* draw background */ al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_BG], 0.0, 0.0, 0); /* draw game objects */ for(i = 0; i < 2; i++) { if(paddle[i].active) { al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_PADDLE], paddle[i].x, paddle[i].y, 0); } if(ball.active) { al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_BALL], ball.x, ball.y, 0); } } /* draw scores */ al_draw_textf(paddle_font[EXAMPLE_FONT_GAME], al_map_rgba(0, 0, 0, 255), 10.0, 0.0, 0, "Player 1: %d", score[0]); al_draw_textf(paddle_font[EXAMPLE_FONT_GAME], al_map_rgba(0, 0, 0, 255), 540.0, 0.0, 0, "Player 2: %d", score[1]); break; } case EXAMPLE_STATE_GAME_OVER: { /* draw background */ al_draw_bitmap(paddle_bitmap[EXAMPLE_BITMAP_BG], 0.0, 0.0, 0); /* draw results */ al_draw_filled_circle(640.0 * t3f_drand(&rng_state), 480.0 * t3f_drand(&rng_state), 10.0 + 32.0 * t3f_drand(&rng_state), al_map_rgba(0, 0, 192, 128)); al_draw_filled_rectangle(220.0, 192.0, 420.0, 280.0, al_map_rgba(0, 192, 0, 128)); al_draw_rectangle(220.0, 192.0, 420.0, 280.0, al_map_rgba(0, 0, 0, 255), 2.0); al_draw_textf(paddle_font[EXAMPLE_FONT_MENU], al_map_rgba(0, 0, 0, 255), 320.0, 200.0, ALLEGRO_ALIGN_CENTRE, "Player %d Wins!", score[0] > score[1] ? 1 : 2); al_draw_textf(paddle_font[EXAMPLE_FONT_GAME], al_map_rgba(0, 0, 0, 255), 320.0, 240.0, ALLEGRO_ALIGN_CENTRE, "Click to continue..."); break; } } }
void render(void * data) { al_clear_to_color(bgcolor); t3f_render_gui(page); }