#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(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(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}; } }