From 0dc3a9df980630b671bbc5df69503c2e72dcf004 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sun, 2 Nov 2025 18:18:56 -0800 Subject: Consolidate scene data structures --- src/scene/material.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/scene/material.c (limited to 'src/scene/material.c') diff --git a/src/scene/material.c b/src/scene/material.c new file mode 100644 index 0000000..9fe6c1b --- /dev/null +++ b/src/scene/material.c @@ -0,0 +1,24 @@ +#include "material_impl.h" + +#include "memory.h" + +static void material_make(Material* material, const MaterialDesc* desc) { + assert(material); + assert(desc); + assert(desc->num_uniforms < GFX_MAX_UNIFORMS_PER_MATERIAL); + material->alpha_mode = desc->alpha_mode; + material->alpha_cutoff = desc->alpha_cutoff; + material->num_uniforms = (int8_t)desc->num_uniforms; + for (int i = 0; i < desc->num_uniforms; ++i) { + material->uniforms[i] = desc->uniforms[i]; + } +} + +Material* gfx_make_material(const MaterialDesc* desc) { + assert(desc); + Material* material = mem_alloc_material(); + material_make(material, desc); + return material; +} + +void gfx_destroy_material(Material** material) { mem_free_material(material); } -- cgit v1.2.3