diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-10 14:06:15 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-08-10 14:06:15 +1000 |
commit | 9cb4bfacc69b2a95ce8e9250afc33fb04d1ba548 (patch) | |
tree | fbe75da188ac83b34153ac79c367b9d57e0d5ff9 /src/render/skybox.h | |
parent | 071a635e63536e50abfad7d5aeca1208dba58025 (diff) |
remove old code
Diffstat (limited to 'src/render/skybox.h')
-rw-r--r-- | src/render/skybox.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/render/skybox.h b/src/render/skybox.h new file mode 100644 index 0000000..c2ef3a2 --- /dev/null +++ b/src/render/skybox.h @@ -0,0 +1,41 @@ +/** + * @brief + */ + +#pragma once +#include "camera.h" +#include "defines.h" +#include "ral_impl.h" +#include "render_types.h" + +typedef struct Skybox { + Mesh cube; + TextureHandle texture; + GPU_Pipeline* pipeline; // "shader" +} Skybox; + +PUB Skybox Skybox_Create(const char** face_paths, int n); // should always pass n = 6 for now + +PUB void Skybox_Draw(Skybox* skybox, Camera camera); + +typedef struct SkyboxUniforms { + TextureHandle cubemap; +} SkyboxUniforms; + +static ShaderDataLayout Skybox_GetLayout(void* data) { + SkyboxUniforms* d = (SkyboxUniforms*)data; // cold cast + bool has_data = data != NULL; + + ShaderBinding b1 = { + .label = "cubeMap", + .vis = VISIBILITY_FRAGMENT, + .kind = BINDING_TEXTURE, + }; + + if (has_data) { + b1.data.texture.handle = d->cubemap; + } + return (ShaderDataLayout){ .bindings = { b1 }, .binding_count = 1 }; +} + +Skybox Skybox_Default();
\ No newline at end of file |