From dfb6adbcbcc7d50b770b6d5ea82efdd8f8c32e25 Mon Sep 17 00:00:00 2001 From: omniscient <17525998+omnisci3nce@users.noreply.github.com> Date: Sat, 5 Oct 2024 12:48:05 +1000 Subject: delete documentation workflow --- archive/src/render/shadows.h | 48 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 archive/src/render/shadows.h (limited to 'archive/src/render/shadows.h') diff --git a/archive/src/render/shadows.h b/archive/src/render/shadows.h new file mode 100644 index 0000000..0482d10 --- /dev/null +++ b/archive/src/render/shadows.h @@ -0,0 +1,48 @@ +/** + * @brief Functions for adding shadows to scene rendering. + */ + +#pragma once +#include "defines.h" +#include "ral_impl.h" +#include "ral_types.h" +#include "render_types.h" + +typedef struct Shadow_Storage { + bool enabled; + GPU_Renderpass* shadowmap_pass; + GPU_Pipeline* shadowmap_pipeline; + TextureHandle depth_texture; + bool debug_quad_enabled; + Mesh quad; + GPU_Renderpass* debugquad_pass; + GPU_Pipeline* debugquad_pipeline; + // TODO: Some statistics tracking +} Shadow_Storage; + +typedef struct ShadowUniforms { + Mat4 light_space; + Mat4 model; +} ShadowUniforms; + +typedef struct Camera Camera; +typedef struct Mat4 Mat4; + +// --- Public API +PUB void Shadow_Init(Shadow_Storage* storage, u32 shadowmap_width, u32 shadowmap_height); + +/** @brief Run shadow map generation for given entities, and store in a texture. + * @note Uses active directional light for now */ +PUB void Shadow_Run(RenderEnt* entities, size_t entity_count); + +PUB void Shadow_DrawDebugQuad(); + +/** @brief Get the shadow texture generated from shadowmap pass */ +PUB TextureHandle Shadow_GetShadowMapTexture(Shadow_Storage* storage); + +// --- Internal +GPU_Renderpass* Shadow_RPassCreate(); // Creates the render pass +GPU_Pipeline* Shadow_PipelineCreate(GPU_Renderpass* rpass); // Creates the pipeline +void Shadow_ShadowmapExecute(Shadow_Storage* storage, Mat4 light_space_transform, + RenderEnt* entities, size_t entity_count); +void Shadow_RenderDebugQuad(); -- cgit v1.2.3-70-g09d2