gl::Program::~Program() try { detachAllShaders(); if (detail::get::global::currentProgram() == id()) { detail::useProgram(); } } catch (error::gl_error& ) { assert(0 && "TODO log"); }
Program::~Program() { if (m_Id == m_usedProgramId) { //if this program is used take care of "unusing" unuse(); } //detach shaders detachAllShaders(); //finally delete glDeleteProgram(m_Id); }