From d2b5fc5b3bc648afffa42375706429685ac63794 Mon Sep 17 00:00:00 2001 From: Mel Date: Mon, 12 Feb 2024 12:55:11 +0100 Subject: Split rendering into own thread and sync through render action lists --- src/GFX/Shading/Program.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/GFX/Shading/Program.cpp') diff --git a/src/GFX/Shading/Program.cpp b/src/GFX/Shading/Program.cpp index ff10012..fe5d576 100644 --- a/src/GFX/Shading/Program.cpp +++ b/src/GFX/Shading/Program.cpp @@ -2,6 +2,8 @@ #include #include "Program.hpp" +#include "../../Common/Assert.hpp" + namespace MC::GFX::Shading { Program::Program(Shader vertex, Shader fragment) { @@ -26,6 +28,7 @@ Program::Program(Shader vertex, Shader fragment) { } void Program::bind() const { + ASSERT(m_program != 0, "Program is not initialized"); glUseProgram(m_program); } @@ -33,10 +36,12 @@ void Program::unbind() const { glUseProgram(0); } -Uniform Program::uniform(const std::string& name) const { +std::optional Program::uniform(const std::string& name) const { + ASSERT(m_program != 0, "Program is not initialized"); auto index = glGetUniformLocation(m_program, name.c_str()); - return {name, static_cast(index)}; + if (index == -1) return {}; + return {{name, static_cast(index)}}; } U32 Program::get() const { -- cgit 1.4.1