Debugguear en openGL

Debugguear en openGL

de Nicolás Peri Nu -
Número de respuestas: 0

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.