//-------------------------------------------------------------- static void retainShader(GLuint id){ if(id==0) return; if(getShaderIds().find(id)!=getShaderIds().end()){ getShaderIds()[id]++; }else{ getShaderIds()[id]=1; } }
//-------------------------------------------------------------- static void releaseShader(GLuint program, GLuint id){ if(getShaderIds().find(id)!=getShaderIds().end()){ getShaderIds()[id]--; if(getShaderIds()[id]==0){ glDetachShader(program, id); glDeleteShader(id); getShaderIds().erase(id); } }else{ ofLogWarning("ofShader") << "releaseShader(): something's wrong here, releasing unknown shader id " << id << " from program " << program; glDetachShader(program, id); glDeleteShader(id); } }
//-------------------------------------------------------------- static void releaseShader(GLuint program, GLuint id){ if(getShaderIds().find(id)!=getShaderIds().end()){ getShaderIds()[id]--; if(getShaderIds()[id]==0){ glDetachShader(program, id); glDeleteShader(id); getShaderIds().erase(id); } }else{ ofLog(OF_LOG_WARNING,"ofShader: releasing id not found, this shouldn't be happening releasing anyway"); glDetachShader(program, id); glDeleteShader(id); } }