1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
#include "context.h"
#include "error.h"
SDL_Texture *SDL_Texture_render_text(SDL_Renderer *renderer, TTF_Font *font,
char const text[], const SDL_Color color)
{
SDL_Surface *surface = NULL;
SDL_Texture *texture = NULL;
if((surface = TTF_RenderText_Blended(font, text, color)) == NULL)
error_ttf();
if((texture = SDL_CreateTextureFromSurface(renderer, surface)) == 0)
error_sdl();
SDL_FreeSurface(surface);
return texture;
}
void GameCtx_render_speed_tex(SDL_Renderer *renderer, GameCtx *game)
{
char text[20];
SDL_Color color = {0x0, 0x0, 0x0, 0x0};
if(game->speed == SPEED_MAX)
sprintf(text, "- Speed : %" PRIu8 " (MAX)", game->speed);
else
sprintf(text, "- Speed : %" PRIu8, game->speed);
SDL_DestroyTexture(game->tex->speed);
game->tex->speed = SDL_Texture_render_text(renderer, game->font, text, color);
SDL_QueryTexture(game->tex->speed, NULL, NULL, &game->rect->speed.w,
&game->rect->speed.h);
}
void GameCtx_render_score_tex(SDL_Renderer *renderer, GameCtx *game)
{
char text[512];
SDL_Color color = {0x0, 0x0, 0x0, 0x0};
sprintf(text, " - Score : %" PRIu32 " -", game->score);
SDL_DestroyTexture(game->tex->score);
game->tex->score = SDL_Texture_render_text(renderer, game->font, text, color);
SDL_QueryTexture(game->tex->score, NULL, NULL, &game->rect->score.w,
&game->rect->score.h);
} |
Partager