summaryrefslogtreecommitdiff
path: root/in_practice/breakout/gl_utils.c
blob: fc1e3af22df22cae08d353e344f7dbcf64003389 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "gl_utils.h"
#include "sys.h"

extern void gl_debug_output(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *user_param)
{
	/* ignore these non-significant error codes */
	if(id == 131169 || id == 131185 || id == 131218 || id == 131204)
		return;
	if (user_param)
		info("user parameters doesn't supported");
	info("debug message (%d length: %d): %s", id, length, message);
	switch (source) {
	case GL_DEBUG_SOURCE_API:
		info("source: api");
		break;
	case GL_DEBUG_SOURCE_WINDOW_SYSTEM:
		info("source: window system");
		break;
	case GL_DEBUG_SOURCE_SHADER_COMPILER:
		info("source: shader compiler");
		break;
	case GL_DEBUG_SOURCE_THIRD_PARTY:
		info("source: third party");
		break;
	case GL_DEBUG_SOURCE_APPLICATION:
		info("source: application");
		break;
	case GL_DEBUG_SOURCE_OTHER:
		info("source: other");
		break;
	}
	switch (type) {
	case GL_DEBUG_TYPE_ERROR:
		info("type: error");
		break;
	case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR:
		info("type: deprecated behaviour");
		break;
	case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR:
		info("type: undefined behaviour");
		break; 
	case GL_DEBUG_TYPE_PORTABILITY:
		info("type: portability");
		break;
	case GL_DEBUG_TYPE_PERFORMANCE:
		info("type: performance");
		break;
	case GL_DEBUG_TYPE_MARKER:
		info("type: marker");
		break;
	case GL_DEBUG_TYPE_PUSH_GROUP:
		info("type: push group");
		break;
	case GL_DEBUG_TYPE_POP_GROUP:
		info("type: pop group");
		break;
	case GL_DEBUG_TYPE_OTHER:
		info("type: other");
		break;
	}
	switch (severity) {
	case GL_DEBUG_SEVERITY_HIGH:
		info("severity: high");
		break;
	case GL_DEBUG_SEVERITY_MEDIUM:
		info("severity: medium");
		break;
	case GL_DEBUG_SEVERITY_LOW:
		info("severity: low");
		break;
	case GL_DEBUG_SEVERITY_NOTIFICATION:
		info("severity: notification");
		break;
	}
}