aboutsummaryrefslogtreecommitdiff
path: root/src/sdl/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdl/main.c')
-rw-r--r--src/sdl/main.c40
1 files changed, 30 insertions, 10 deletions
diff --git a/src/sdl/main.c b/src/sdl/main.c
index 8d7fdff..7cbe68f 100644
--- a/src/sdl/main.c
+++ b/src/sdl/main.c
@@ -11,6 +11,7 @@
#include "sprites.h"
#include "draw.h"
#include "log-renderer-info.h"
+#include "assets.h"
static void
log_moves(
@@ -31,6 +32,32 @@ log_moves(
SDL_Log("Solution (%zu moves): %s", ctx->num_moves - skip_moves, buf);
}
+static TTF_Font *
+load_font(
+ const asset_id_t id
+) {
+ // get asset
+ const asset_t * const asset = asset_get(ASSET_ROBOTO_TTF);
+ if (!asset) {
+ die("asset_get()");
+ }
+
+ // create io
+ SDL_RWops *rw = SDL_RWFromConstMem(asset->buf, asset->len);
+ if (!rw) {
+ die("SDL_RWFromConstMem(): %s", SDL_GetError());
+ }
+
+ // load font
+ TTF_Font *font = TTF_OpenFontIndexRW(rw, 1, 16, 0);
+ if (!font) {
+ die("TTF_OpenFontIndex(): %s", TTF_GetError());
+ }
+
+ // return font
+ return font;
+}
+
static void
solve_on_error(
const char * const err
@@ -65,8 +92,6 @@ set_level(
int main(int argc, char *argv[]) {
size_t level_num = (argc > 1) ? atoi(argv[1]) : 0,
zoom = 0;
- const char *sprites_png_path = "../assets/sprites.png";
- const char *font_path = "../assets/roboto.ttf";
// init warp buffer
warp_buf_t warp_buf;
@@ -132,14 +157,9 @@ int main(int argc, char *argv[]) {
// set level
set_level(win, &draw_ctx, &ctx, level_num);
- // init sprites
- sprites_init(renderer, sprites_png_path, draw_ctx.sprites);
-
- // load font
- draw_ctx.font = TTF_OpenFontIndex(font_path, 16, 0);
- if (!draw_ctx.font) {
- die("TTF_OpenFontIndex(): %s", TTF_GetError());
- }
+ // init sprites, load font
+ sprites_init(renderer, draw_ctx.sprites);
+ draw_ctx.font = load_font(ASSET_ROBOTO_TTF);
bool is_fullscreen = false;
bool done = false;