#include "uiShader.h" #include #include #include #include #include #include #include #include UIShader::UIShader(size_t width, size_t height) : progDefault {uiShader_vs.compile(), uiShader_fs.compile()}, progText {uiShader_vs.compile(), uiShaderFont_fs.compile()} { for (const auto prog : {&progDefault, &progText}) { if (auto loc = glGetUniformLocation(prog->m_program, "uiProjection"); loc >= 0) { glUseProgram(prog->m_program); const auto uiProjection = glm::ortho(0, static_cast(width), 0, static_cast(height)); glUniformMatrix4fv(loc, 1, GL_FALSE, glm::value_ptr(uiProjection)); } } } void UIShader::useDefault() const { glUseProgram(progDefault.m_program); } void UIShader::useText(glm::vec3 colour) const { glUseProgram(progText.m_program); if (auto loc = glGetUniformLocation(progText.m_program, "colour"); loc >= 0) { glUniform3fv(loc, 1, glm::value_ptr(colour)); } }