@@ -2297,6 +2297,35 @@ void flush_glerror()
2297
2297
glGetError ();
2298
2298
}
2299
2299
2300
+ const std::string getGLErrorString (GLenum error)
2301
+ {
2302
+ switch (error)
2303
+ {
2304
+ case GL_NO_ERROR:
2305
+ return " No Error" ;
2306
+ case GL_INVALID_ENUM:
2307
+ return " Invalid Enum" ;
2308
+ case GL_INVALID_VALUE:
2309
+ return " Invalid Value" ;
2310
+ case GL_INVALID_OPERATION:
2311
+ return " Invalid Operation" ;
2312
+ case GL_INVALID_FRAMEBUFFER_OPERATION:
2313
+ return " Invalid Framebuffer Operation" ;
2314
+ case GL_OUT_OF_MEMORY:
2315
+ return " Out of Memory" ;
2316
+ case GL_STACK_UNDERFLOW:
2317
+ return " Stack Underflow" ;
2318
+ case GL_STACK_OVERFLOW:
2319
+ return " Stack Overflow" ;
2320
+ #ifdef GL_TABLE_TOO_LARGE
2321
+ case GL_TABLE_TOO_LARGE:
2322
+ return " Table too large" ;
2323
+ #endif
2324
+ default :
2325
+ return " UNKNOWN ERROR" ;
2326
+ }
2327
+ }
2328
+
2300
2329
// this function outputs gl error to the log file, does not crash the code.
2301
2330
void log_glerror ()
2302
2331
{
@@ -2309,17 +2338,8 @@ void log_glerror()
2309
2338
error = glGetError ();
2310
2339
while (LL_UNLIKELY (error))
2311
2340
{
2312
- GLubyte const * gl_error_msg = gluErrorString (error);
2313
- if (NULL != gl_error_msg)
2314
- {
2315
- LL_WARNS () << " GL Error: " << error << " GL Error String: " << gl_error_msg << LL_ENDL ;
2316
- }
2317
- else
2318
- {
2319
- // gluErrorString returns NULL for some extensions' error codes.
2320
- // you'll probably have to grep for the number in glext.h.
2321
- LL_WARNS () << " GL Error: UNKNOWN 0x" << std::hex << error << std::dec << LL_ENDL;
2322
- }
2341
+ std::string gl_error_msg = getGLErrorString (error);
2342
+ LL_WARNS () << " GL Error: 0x" << std::hex << error << std::dec << " GL Error String: " << gl_error_msg << LL_ENDL;
2323
2343
error = glGetError ();
2324
2344
}
2325
2345
}
@@ -2333,27 +2353,12 @@ void do_assert_glerror()
2333
2353
if (LL_UNLIKELY (error))
2334
2354
{
2335
2355
quit = true ;
2336
- GLubyte const * gl_error_msg = gluErrorString (error);
2337
- if (NULL != gl_error_msg)
2338
- {
2339
- LL_WARNS (" RenderState" ) << " GL Error:" << error<< LL_ENDL;
2340
- LL_WARNS (" RenderState" ) << " GL Error String:" << gl_error_msg << LL_ENDL;
2341
-
2342
- if (gDebugSession )
2343
- {
2344
- gFailLog << " GL Error:" << gl_error_msg << std::endl;
2345
- }
2346
- }
2347
- else
2356
+ std::string gl_error_msg = getGLErrorString (error);
2357
+ LL_WARNS (" RenderState" ) << " GL Error: 0x" << std::hex << error << std::dec << LL_ENDL;
2358
+ LL_WARNS (" RenderState" ) << " GL Error String: " << gl_error_msg << LL_ENDL;
2359
+ if (gDebugSession )
2348
2360
{
2349
- // gluErrorString returns NULL for some extensions' error codes.
2350
- // you'll probably have to grep for the number in glext.h.
2351
- LL_WARNS (" RenderState" ) << " GL Error: UNKNOWN 0x" << std::hex << error << std::dec << LL_ENDL;
2352
-
2353
- if (gDebugSession )
2354
- {
2355
- gFailLog << " GL Error: UNKNOWN 0x" << std::hex << error << std::dec << std::endl;
2356
- }
2361
+ gFailLog << " GL Error: 0x" << std::hex << error << std::dec << " GL Error String: " << gl_error_msg << std::endl;
2357
2362
}
2358
2363
}
2359
2364
0 commit comments