summaryrefslogtreecommitdiff
path: root/asset.c
diff options
context:
space:
mode:
Diffstat (limited to 'asset.c')
-rw-r--r--asset.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/asset.c b/asset.c
index 0eca404..03689b9 100644
--- a/asset.c
+++ b/asset.c
@@ -22,6 +22,11 @@ static void init_mesh_asset(Asset* asset, void* raw, int size) {
m->verts = (Mesh_Vert*)&m->t[m->tc * 2];
}
+static void init_texture_asset(Asset* asset, void* raw, int size) {
+ asset->payload = raw;
+ asset->payload_size = size;
+}
+
/* Loading assets isn't that efficient. Too bad. */
static int get_asset_info(
File* pack,
@@ -125,6 +130,9 @@ void preload_assets(Arena* mem) {
case asset_type_mesh:
init_mesh_asset(asset, raw, size);
break;
+ case asset_type_texture:
+ init_texture_asset(asset, raw, size);
+ break;
default:
print_err("Invalid asset type.\n");
pbreak(error_invalid_asset);
@@ -150,3 +158,8 @@ const struct Mesh* get_mesh(Asset_ID id) {
return (struct Mesh*)a->payload;
}
+const struct Texture* get_texture(Asset_ID id) {
+ const Asset* a = get_asset(id);
+ return (struct Texture*)a->payload;
+}
+