-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathopengl.h
72 lines (52 loc) · 1.6 KB
/
opengl.h
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
// Copyright Ryan Schmidt 2011.
// Distributed under the Boost Software License, Version 1.0.
// (See copy at http://www.boost.org/LICENSE_1_0.txt)
#ifdef WIN32
#include <windows.h>
#include <gl/GL.h>
#include <gl/GLU.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
// #error TODO
#endif
/*
*
* OpenGL debug utility functions
*
*/
#ifdef __RMS_DEBUG_WANT_GL
#include <GL/gl.h>
static char _RMSDEBUG_GLErrorStrings[][32] = { "GL_NO_ERROR",
"GL_INVALID_ENUM",
"GL_INVALID_VALUE",
"GL_INVALID_OPERATION",
"GL_STACK_OVERFLOW",
"GL_STACK_UNDERFLOW",
"GL_OUT_OF_MEMORY",
"Unknown GL Error"};
static char * glErrorString(GLenum error)
{
switch(error) {
case GL_NO_ERROR: return _RMSDEBUG_GLErrorStrings[0];
case GL_INVALID_ENUM: return _RMSDEBUG_GLErrorStrings[1];
case GL_INVALID_VALUE: return _RMSDEBUG_GLErrorStrings[2];
case GL_INVALID_OPERATION: return _RMSDEBUG_GLErrorStrings[3];
case GL_STACK_OVERFLOW: return _RMSDEBUG_GLErrorStrings[4];
case GL_STACK_UNDERFLOW: return _RMSDEBUG_GLErrorStrings[5];
case GL_OUT_OF_MEMORY: return _RMSDEBUG_GLErrorStrings[6];
default: return _RMSDEBUG_GLErrorStrings[7];
}
}
static GLenum _RMSGLError = GL_NO_ERROR;
#define _RMSHaveGLError() (_RMSGLError != GL_NO_ERROR)
static bool glError()
{
_RMSGLError = glGetError();
int nextErr = _RMSGLError;
while (nextErr != GL_NO_ERROR)
nextErr = glGetError();
return _RMSGLError != GL_NO_ERROR;
}
#endif // __RMS_DEBUG_WANT_GL