You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
#include "glutil.h" |
|
|
|
GLenum glCheckError_(const char *file, int line) |
|
{ |
|
GLenum errorCode; |
|
while ((errorCode = glGetError()) != GL_NO_ERROR) |
|
{ |
|
std::string error; |
|
switch (errorCode) |
|
{ |
|
case GL_INVALID_ENUM: error = "INVALID_ENUM"; break; |
|
case GL_INVALID_VALUE: error = "INVALID_VALUE"; break; |
|
case GL_INVALID_OPERATION: error = "INVALID_OPERATION"; break; |
|
case GL_STACK_OVERFLOW: error = "STACK_OVERFLOW"; break; |
|
case GL_STACK_UNDERFLOW: error = "STACK_UNDERFLOW"; break; |
|
case GL_OUT_OF_MEMORY: error = "OUT_OF_MEMORY"; break; |
|
case GL_INVALID_FRAMEBUFFER_OPERATION: error = "INVALID_FRAMEBUFFER_OPERATION"; break; |
|
} |
|
fmt::print("error::gl {} | {} {}\n", error, file, line); |
|
} |
|
return errorCode; |
|
} |
|
|
|
|
|
|
|
void printProgramLog( GLuint program ) |
|
{ |
|
//Make sure name is shader |
|
if( glIsProgram( program ) ) |
|
{ |
|
//Program loglength |
|
int infoLogLength = 0; |
|
int maxLength = infoLogLength; |
|
|
|
//Get info string length |
|
glGetProgramiv( program, GL_INFO_LOG_LENGTH, &maxLength ); |
|
|
|
//Allocate string |
|
char* infoLog = new char[ maxLength ]; |
|
|
|
//Get info log |
|
glGetProgramInfoLog( program, maxLength, &infoLogLength, infoLog ); |
|
if( infoLogLength > 0 ) |
|
{ |
|
//Print Log |
|
fmt::print( "{}\n", infoLog ); |
|
} |
|
|
|
//Deallocate string |
|
delete[] infoLog; |
|
} |
|
else |
|
{ |
|
fmt::print( "Name {} is not a program\n", program ); |
|
} |
|
} |
|
|
|
|