#include #include #include "Shader.hpp" namespace MC::GFX::Shading { Shader::Shader(Type type, const Char* source) { U32 gl_type = 0; switch (type) { case Type::Vertex: gl_type = GL_VERTEX_SHADER; break; case Type::Fragment: gl_type = GL_FRAGMENT_SHADER; break; } m_shader = glCreateShader(gl_type); glShaderSource(m_shader, 1, &source, nullptr); glCompileShader(m_shader); GLint success; glGetShaderiv(m_shader, GL_COMPILE_STATUS, &success); if(!success) { Char message[512] = {}; glGetShaderInfoLog(m_shader, 512, nullptr, message); throw std::runtime_error(message); } } }