15#define GL_RESOLVE_WITH_EXT(function, symbolName) \
16 function = (function##_func)resolveFunction(#symbolName);
21static GLenum GetGraphicsResetStatus();
22static void ReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum
format,
23 GLenum
type, GLsizei bufSize, GLvoid *data);
24static void GetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
33 const bool haveArbRobustness =
hasGLExtension(QByteArrayLiteral(
"GL_ARB_robustness"));
34 const bool haveExtRobustness =
hasGLExtension(QByteArrayLiteral(
"GL_EXT_robustness"));
35 bool robustContext =
false;
37 if (haveExtRobustness) {
39 glGetIntegerv(GL_CONTEXT_ROBUST_ACCESS_EXT, &value);
40 robustContext = (value != 0);
43 if (haveArbRobustness) {
46 glGetIntegerv(GL_CONTEXT_FLAGS, &value);
47 if (value & GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB) {
55 if (robustContext && haveArbRobustness) {
60 }
else if (robustContext && haveExtRobustness) {
72static GLenum GetGraphicsResetStatus()
77static void ReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum
format,
78 GLenum
type, GLsizei bufSize, GLvoid *data)
80 glReadPixels(x, y, width, height,
format,
type, data);
83static void GetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
85 glGetUniformfv(program, location, params);
#define GL_RESOLVE_WITH_EXT(function, symbolName)
glReadnPixels_func glReadnPixels
glGetnUniformfv_func glGetnUniformfv
bool hasGLVersion(int major, int minor, int release)
GLenum(*)() glGetGraphicsResetStatus_func
void(*)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params) glGetnUniformfv_func
bool hasGLExtension(const QByteArray &extension)
glGetGraphicsResetStatus_func glGetGraphicsResetStatus
void(*)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data) glReadnPixels_func
void glResolveFunctions(const std::function< resolveFuncPtr(const char *)> &resolveFunction)