refactor text stuff
parent
052d1d9c84
commit
65a7b6dcb5
19
font.c
19
font.c
|
@ -2,17 +2,18 @@
|
|||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
SDL_Texture *load_font(SDL_Renderer *renderer) {
|
||||
SDL_Surface *s = SDL_LoadBMP_IO(SDL_IOFromConstMem(font_data, font_data_len), true);
|
||||
SDL_SetSurfaceColorKey(s, true, SDL_MapSurfaceRGB(s, 255, 0, 255));
|
||||
SDL_Texture *font_texture = SDL_CreateTextureFromSurface(renderer, s);
|
||||
SDL_DestroySurface(s);
|
||||
return font_texture;
|
||||
}
|
||||
static SDL_Texture *font = NULL;
|
||||
|
||||
void draw_text(SDL_Renderer *renderer, SDL_Texture *font,
|
||||
void draw_text(SDL_Renderer *renderer,
|
||||
char *text, size_t len, int x, int y, uint8_t r, uint8_t g, uint8_t b) {
|
||||
if (font == NULL) return;
|
||||
|
||||
if (font == NULL) {
|
||||
SDL_Surface *s = SDL_LoadBMP_IO(SDL_IOFromConstMem(font_data, font_data_len), true);
|
||||
SDL_SetSurfaceColorKey(s, true, SDL_MapSurfaceRGB(s, 255, 0, 255));
|
||||
font = SDL_CreateTextureFromSurface(renderer, s);
|
||||
SDL_DestroySurface(s);
|
||||
}
|
||||
|
||||
SDL_SetTextureColorMod(font, r, g, b);
|
||||
SDL_FRect src = { .w = font_w, .h = font_h },
|
||||
dst = { .x = x, .y = y, .w = font_w, .h = font_h };
|
||||
|
|
3
font.h
3
font.h
|
@ -4,6 +4,5 @@
|
|||
|
||||
#define RC(r, c) (c)*font_w, (r)*font_h
|
||||
|
||||
SDL_Texture *load_font(SDL_Renderer *renderer);
|
||||
void draw_text(SDL_Renderer *renderer, SDL_Texture *font,
|
||||
void draw_text(SDL_Renderer *renderer,
|
||||
char *text, size_t len, int x, int y, uint8_t r, uint8_t g, uint8_t b);
|
||||
|
|
8
xormod.c
8
xormod.c
|
@ -27,8 +27,6 @@ int main() {
|
|||
|
||||
SDL_Renderer *rend = SDL_CreateRenderer(window, NULL);
|
||||
|
||||
SDL_Texture *font = load_font(rend);
|
||||
|
||||
Field f;
|
||||
Field_init(&f, rend, w, h);
|
||||
|
||||
|
@ -79,18 +77,18 @@ int main() {
|
|||
0, 0, sizeof(buf)*font_w, 8*font_h
|
||||
});
|
||||
|
||||
draw_text(rend, font, ACCEL_PLATFORM_STR, sizeof(ACCEL_PLATFORM_STR), RC(1,1), 255, 255, 255);
|
||||
draw_text(rend, ACCEL_PLATFORM_STR, sizeof(ACCEL_PLATFORM_STR), RC(1,1), 255, 255, 255);
|
||||
|
||||
size_t len = snprintf(buf, sizeof(buf),
|
||||
"off.x: %d, off.y: %d, \xEBT: %" SDL_PRIu64, f.offset.x, f.offset.y, delta);
|
||||
draw_text(rend, font, buf, len, RC(2, 1), 255, 255, 255);
|
||||
draw_text(rend, buf, len, RC(2, 1), 255, 255, 255);
|
||||
|
||||
char *q[] = {"TL", "TR", "BL", "BR"};
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Picture *p = f.pics[i];
|
||||
len = snprintf(buf, sizeof(buf), "%s| x1: %05d, x2: %05d, y1: %05d, y2: %05d, p: %p",
|
||||
q[i], p->x1, p->x2, p->y1, p->y2, p);
|
||||
draw_text(rend, font, buf, len, RC(3+i, 1), 255, 255, 255);
|
||||
draw_text(rend, buf, len, RC(3+i, 1), 255, 255, 255);
|
||||
}
|
||||
|
||||
SDL_RenderPresent(rend);
|
||||
|
|
Loading…
Reference in New Issue