summaryrefslogtreecommitdiff
path: root/ctx.h
blob: 3bc93f9e07967e3e1b9816b2319174e429420ee5 (plain)
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
prge_context_t init_prge(void)
{
	prge_context_t ctx = {0};
	ctx.arena = alloc_arena(ARENA_SIZE);
	ctx.frame_arena = alloc_arena(FRAME_ARENA_SIZE);
	ctx.input = init_input();
	ctx.dir = sys_getbindir(&ctx.arena);
	assert(ctx.dir);
	printf("[INFO]\tBinary dir\t\"%s\"\n", ctx.dir);
	return ctx;
}

texture_t prge_load_texture(prge_context_t *ctx, const char *filename, i32 gamma)
{
	char full_path[MAX_PATH];
	snprintf(full_path, sizeof(full_path), "%s/%s", ctx->dir, filename);
	texture_t texture = load_texture(&ctx->arena, full_path, gamma);
	return texture;
}

model_t prge_load_model(prge_context_t *ctx, transform_t transform, const char *filename)
{
	char full_path[MAX_PATH];
	snprintf(full_path, sizeof(full_path), "%s/%s", ctx->dir, filename);
	model_t model = load_model_obj(&ctx->arena, transform, full_path);
	return model;
}

i32 prge_load_sound_vorbis(prge_context_t *ctx, const char *filename)
{
	char full_path[MAX_PATH];
	snprintf(full_path, sizeof(full_path), "%s/%s", ctx->dir, filename);
	return load_vorbis(&ctx->arena, ctx->sounds, full_path);
}

void prge_play_sound(prge_context_t *ctx, i32 id)
{
	play_sound(ctx->sounds, &ctx->sound_queue, ctx->sound_queue_nodes, id);
}