diff options
Diffstat (limited to 'src/GFX/Shading/Program.cpp')
| -rw-r--r-- | src/GFX/Shading/Program.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
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 <stdexcept> #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<Uniform> 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<U32>(index)}; + if (index == -1) return {}; + return {{name, static_cast<U32>(index)}}; } U32 Program::get() const { |
