Bueno, lo prometido es deuda
Esto es algo que puede dar una mano a la hora de debugguear, segun tengo entendido, openGL cuando tiene un error ejecutando una funcion no le avisa a nadie, entonces se tiene que capturar el error e imprimirlo en consola.
Esta funcion captura el error e imprime la descripcion en consola con el numero de linea.
void imprimirError(int nroLine){
GLenum errCode;
errCode = glGetError();
const GLubyte* errString = NULL;
if(errCode != GL_NO_ERROR){
errString = gluErrorString(errCode);
printf("%s\n",(char*)errString);
printf("Linea %d\n",nroLine);
}
}
Suponiendo que tenes 2 funciones que sabes que una falla se invoca a la funcion de arriba de la siguiente manera
func1();
imprimirError(__LINE__);
func2();
imprimirError(__LINE__);
Cuando se compila, el compilador cambia __LINE__ por el numero de la linea de codigo.
Como ultima aclaracion, cuando se llama a glGetError() devuelve el primer error detectado, si hubieron errores mas adelante se perdieron y no se pueden capturar
Si algo no quedo del todo claro, trato de explicarlo un poco mejor
Saludos.