wlroots-hyprland/render/gles2/util.c

39 lines
949 B
C
Raw Normal View History

2017-06-23 17:38:45 +02:00
#include <GLES2/gl2.h>
2018-02-12 21:29:23 +01:00
#include <stdbool.h>
#include <stdlib.h>
2017-06-21 18:10:07 +02:00
#include <wlr/util/log.h>
2017-06-23 17:38:45 +02:00
#include "render/gles2.h"
2017-06-09 16:28:50 +02:00
2017-06-23 17:38:45 +02:00
const char *gles2_strerror(GLenum err) {
2017-06-09 16:28:50 +02:00
switch (err) {
case GL_INVALID_ENUM:
return "Invalid enum";
case GL_INVALID_VALUE:
return "Invalid value";
case GL_INVALID_OPERATION:
return "Invalid operation";
case GL_OUT_OF_MEMORY:
return "Out of memory";
case GL_INVALID_FRAMEBUFFER_OPERATION:
return "Invalid framebuffer operation";
default:
return "Unknown error";
}
}
2017-06-23 17:38:45 +02:00
bool _gles2_flush_errors(const char *file, int line) {
2017-06-09 16:28:50 +02:00
GLenum err;
bool failure = false;
while ((err = glGetError()) != GL_NO_ERROR) {
failure = true;
if (err == GL_OUT_OF_MEMORY) {
// The OpenGL context is now undefined
2018-07-09 23:49:54 +02:00
_wlr_log(WLR_ERROR, "[%s:%d] Fatal GL error: out of memory", file, line);
2017-06-09 16:28:50 +02:00
exit(1);
} else {
2018-07-09 23:49:54 +02:00
_wlr_log(WLR_ERROR, "[%s:%d] GL error %d %s", file, line, err, gles2_strerror(err));
2017-06-09 16:28:50 +02:00
}
}
return failure;
}