bool SProgram::AttachShader(const char* a_directory, ShaderID a_type) { Shader* shader = new Shader(); if (!shader->Load(a_directory, a_type)) return false; shader->AttachToProgram(m_programID); switch (a_type) { case ShaderID::VERT_SHADER: m_vertShader = shader; break; case ShaderID::FRAG_SHADER: m_fragShader = shader; break; case ShaderID::GEOM_SHADER: m_geomShader = shader; break; case ShaderID::TESSC_SHADER: m_tessCShader = shader; break; case ShaderID::TESSE_SHADER: m_tessEShader = shader; break; case ShaderID::DEFAULT: return false; default: return false; } return true; }