static void render(void) { SDL_SetTextureAlphaMod(title_rotate[rotate_index].texture, 0xFF * brightness); SDL_SetRenderDrawColor(display.renderer, 0x20, 0x20, 0x20, 0x20); SDL_RenderClear(display.renderer); SDL_SetRenderDrawBlendMode(display.renderer, SDL_BLENDMODE_BLEND); SDL_SetRenderDrawColor(display.renderer, 0xFF, 0xFF, 0xFF, 0x20); draw_text_splat(&title_rotate[rotate_index], -1, 0); draw_sprite(panel_timer, 16, 28); timer_blit(ticks_countup, REFERENCE_WIDTH - 22, 32); draw_text_splat(&elapsed_time, -1, 56); SDL_RenderDrawLine(display.renderer, 0, 80, REFERENCE_WIDTH, 80); draw_text_splat(&achievements, -1, 81); if (achievement_index != -1) { draw_sprite(panel_achievement, 0, 106); draw_sprite(achievement_index, 9, 114); draw_text_splat(&ach_title[achievement_index], 48, 130 - (ach_title[achievement_index].source_rect.h / 2)); draw_text_splat(&ach_desc[achievement_index], 4, 152); } else { draw_text_splat(&achievements_none, -1, 130); } SDL_RenderDrawLine(display.renderer, 0, 224, REFERENCE_WIDTH, 224); if (achievement_count > 1) { draw_text_splat(&achievements_more, -1, 232); draw_sprite(sui_arrow_left, 0, 226); draw_sprite(sui_arrow_right, REFERENCE_WIDTH - 32, 226); } }
static void render(void) { SDL_Rect target = target_rect(&sky, -64, (REFERENCE_HEIGHT - BUILDING_HEIGHT / 4) - 128, 0.25f); target.y += sunset; SDL_RenderCopy(display.renderer, sky.texture, sky.src_rect, &target); for (size_t i = 0; i < MAX_THINGS; ++i) { thing_t *thing = &game.things[i]; if (! thing->type) continue; sprite_t *sprite = sprite_thing_get(thing->type); target = target_rect(sprite, thing->position.x, thing->position.y, 1.f); if (thing->current_frame > sprite->frame_count) { LOG_WARN("%llu frame out of range!", (long long unsigned)i); thing->current_frame = 0; } SDL_RenderCopyEx(display.renderer, sprite->texture, &sprite->src_rect[thing->current_frame], &target, thing->angle, NULL, 0); } if (camera.target.y > 0) { timer_blit(game.active_ticks, REFERENCE_WIDTH - 10, 10); } }