diff options
| author | Mel <einebeere@gmail.com> | 2024-02-12 12:55:11 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2024-02-12 12:55:11 +0100 |
| commit | d2b5fc5b3bc648afffa42375706429685ac63794 (patch) | |
| tree | a2dfbb241e1d46e5616c5884e5f3d685de2a2cb6 /src/GFX/Resources.cpp | |
| parent | 588c7e87b7cab270698d43ca5c22d67793ae5fc4 (diff) | |
| download | meowcraft-d2b5fc5b3bc648afffa42375706429685ac63794.tar.zst meowcraft-d2b5fc5b3bc648afffa42375706429685ac63794.zip | |
Split rendering into own thread and sync through render action lists
Diffstat (limited to 'src/GFX/Resources.cpp')
| -rw-r--r-- | src/GFX/Resources.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/GFX/Resources.cpp b/src/GFX/Resources.cpp new file mode 100644 index 0000000..34ce32e --- /dev/null +++ b/src/GFX/Resources.cpp @@ -0,0 +1,26 @@ +#include "Resources.hpp" + +#include "../Common/Assert.hpp" + +namespace MC::GFX { + +void Resources::initialize() { + ASSERT(!m_initialized, "Resources already initialized"); + for (auto& metadata: m_program_metadata) { + m_programs[static_cast<USize>(metadata.id)] = create_program(metadata); + } + m_initialized = true; +} + +Shading::Program const& Resources::program(Program id) const { + ASSERT(m_initialized, "Resources not initialized"); + return m_programs[static_cast<USize>(id)]; +} + +Shading::Program Resources::create_program(ProgramMetadata const& metadata) { + Shading::Shader vertex(Shading::Shader::Type::Vertex, metadata.vertex); + Shading::Shader fragment(Shading::Shader::Type::Fragment, metadata.fragment); + return {vertex, fragment}; +} + +} |
