From 1ec46bead3cf87971a2329f9ef4ddde5a0c48325 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 4 Jul 2025 10:27:06 -0700 Subject: Clarify doc --- src/scene/light.c | 42 ---------------------------------- src/scene/light_impl.h | 25 --------------------- src/scene/material.c | 57 ----------------------------------------------- src/scene/material_impl.h | 16 ------------- src/scene/mesh.c | 24 -------------------- src/scene/mesh_impl.h | 12 ---------- 6 files changed, 176 deletions(-) delete mode 100644 src/scene/light.c delete mode 100644 src/scene/light_impl.h delete mode 100644 src/scene/material.c delete mode 100644 src/scene/material_impl.h delete mode 100644 src/scene/mesh.c delete mode 100644 src/scene/mesh_impl.h (limited to 'src/scene') diff --git a/src/scene/light.c b/src/scene/light.c deleted file mode 100644 index adbec8d..0000000 --- a/src/scene/light.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "light_impl.h" - -#include "node_impl.h" -#include "scene_memory.h" - -#include - -static void make_environment_light( - Light* light, const EnvironmentLightDesc* desc) { - assert(light); - assert(desc); - light->type = EnvironmentLightType; - light->environment.environment_map = desc->environment_map; -} - -Light* gfx_make_light(const LightDesc* desc) { - assert(desc); - - Light* light = mem_alloc_light(); - - switch (desc->type) { - case EnvironmentLightType: - make_environment_light(light, &desc->light.environment); - break; - default: - log_error("Unhandled light type"); - gfx_destroy_light(&light); - return 0; - } - - return light; -} - -void gfx_destroy_light(Light** light) { - assert(light); - if (*light) { - if ((*light)->parent.val) { - gfx_del_node((*light)->parent); - } - mem_free_light(light); - } -} diff --git a/src/scene/light_impl.h b/src/scene/light_impl.h deleted file mode 100644 index 1aa0bb4..0000000 --- a/src/scene/light_impl.h +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once - -#include - -#include "types.h" - -typedef struct Texture Texture; - -/// An environment light. -typedef struct EnvironmentLight { - const Texture* environment_map; - const Texture* irradiance_map; // Renderer implementation. - const Texture* prefiltered_environment_map; // Renderer implementation. - int max_reflection_lod; // Mandatory when prefiltered_environment_map is - // given. -} EnvironmentLight; - -/// A scene light. -typedef struct Light { - LightType type; - union { - EnvironmentLight environment; - }; - node_idx parent; // Parent SceneNode. -} Light; diff --git a/src/scene/material.c b/src/scene/material.c deleted file mode 100644 index 3248243..0000000 --- a/src/scene/material.c +++ /dev/null @@ -1,57 +0,0 @@ -#include "material_impl.h" - -#include "scene_memory.h" - -#include - -static void material_make(Material* material, const MaterialDesc* desc) { - assert(material); - assert(desc); - assert(desc->num_uniforms < GFX_MAX_UNIFORMS_PER_MATERIAL); - material->num_uniforms = 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); } - -static void set_uniform(ShaderProgram* prog, const ShaderUniform* uniform) { - switch (uniform->type) { - case UniformTexture: - gfx_set_texture_uniform(prog, uniform->name.str, uniform->value.texture); - break; - case UniformMat4: - gfx_set_mat4_uniform(prog, uniform->name.str, &uniform->value.mat4); - break; - case UniformVec3: - gfx_set_vec3_uniform(prog, uniform->name.str, uniform->value.vec3); - break; - case UniformVec4: - gfx_set_vec4_uniform(prog, uniform->name.str, uniform->value.vec4); - break; - case UniformFloat: - gfx_set_float_uniform(prog, uniform->name.str, uniform->value.scalar); - break; - case UniformMat4Array: - gfx_set_mat4_array_uniform( - prog, uniform->name.str, uniform->value.array.values, - uniform->value.array.count); - break; - } -} - -void material_activate(ShaderProgram* shader, const Material* material) { - assert(material); - for (int i = 0; i < material->num_uniforms; ++i) { - const ShaderUniform* uniform = &material->uniforms[i]; - set_uniform(shader, uniform); - } -} diff --git a/src/scene/material_impl.h b/src/scene/material_impl.h deleted file mode 100644 index a6aa95b..0000000 --- a/src/scene/material_impl.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#include - -typedef struct ShaderProgram ShaderProgram; - -typedef struct Material { - ShaderUniform uniforms[GFX_MAX_UNIFORMS_PER_MATERIAL]; - int num_uniforms; -} Material; - -/// Activate the material. -/// -/// This activates the material's shader and configures the shader uniforms that -/// are specific to the material. -void material_activate(ShaderProgram* shader, const Material* material); diff --git a/src/scene/mesh.c b/src/scene/mesh.c deleted file mode 100644 index 1a93bed..0000000 --- a/src/scene/mesh.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "mesh_impl.h" - -#include "scene_memory.h" - -#include - -static void mesh_make(Mesh* mesh, const MeshDesc* desc) { - assert(mesh); - assert(desc); - assert(desc->geometry); - assert(desc->material); - assert(desc->shader); - mesh->geometry = desc->geometry; - mesh->material = desc->material; - mesh->shader = desc->shader; -} - -Mesh* gfx_make_mesh(const MeshDesc* desc) { - Mesh* mesh = mem_alloc_mesh(); - mesh_make(mesh, desc); - return mesh; -} - -void gfx_destroy_mesh(Mesh** mesh) { mem_free_mesh(mesh); } diff --git a/src/scene/mesh_impl.h b/src/scene/mesh_impl.h deleted file mode 100644 index 560b77e..0000000 --- a/src/scene/mesh_impl.h +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once - -#include - -typedef struct Mesh { - const Geometry* geometry; - const Material* material; - ShaderProgram* shader; -} Mesh; - -// TODO: a mesh_render() that takes a transform, applies the material and the -// transform, and then renders the geometry. -- cgit v1.2.3