kwin/es: Resolve functions for GL_EXT_robustness

This commit is contained in:
Fredrik Höglund 2013-05-19 16:17:41 +02:00
parent adc581d2ab
commit 2f87b7542f
2 changed files with 27 additions and 0 deletions

View file

@ -276,6 +276,13 @@ eglPostSubBufferNV_func eglPostSubBufferNV;
// GLES
glEGLImageTargetTexture2DOES_func glEGLImageTargetTexture2DOES;
#ifdef KWIN_HAVE_OPENGLES
// GL_EXT_robustness
glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
glReadnPixels_func glReadnPixels;
glGetnUniformfv_func glGetnUniformfv;
#endif
void eglResolveFunctions()
{
if (hasGLExtension("EGL_KHR_image") ||
@ -710,6 +717,17 @@ void glResolveFunctions(OpenGLPlatformInterface platformInterface)
glFlushMappedBufferRange = NULL;
}
if (hasGLExtension("GL_EXT_robustness")) {
// See http://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt
glGetGraphicsResetStatus = (glGetGraphicsResetStatus_func) eglGetProcAddress("glGetGraphicsResetStatusEXT");
glReadnPixels = (glReadnPixels_func) eglGetProcAddress("glReadnPixelsEXT");
glGetnUniformfv = (glGetnUniformfv_func) eglGetProcAddress("glGetnUniformfvEXT");
} else {
glGetGraphicsResetStatus = KWin::GetGraphicsResetStatus;
glReadnPixels = KWin::ReadnPixels;
glGetnUniformfv = KWin::GetnUniformfv;
}
#endif // KWIN_HAVE_OPENGLES
#ifdef KWIN_HAVE_EGL

View file

@ -548,6 +548,15 @@ typedef void (*glFlushMappedBufferRange_func)(GLenum target, GLintptr offset, GL
extern KWIN_EXPORT glMapBufferRange_func glMapBufferRange;
extern KWIN_EXPORT glFlushMappedBufferRange_func glFlushMappedBufferRange;
// GL_EXT_robustness
typedef GLenum (*glGetGraphicsResetStatus_func)();
typedef void (*glReadnPixels_func)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
typedef void (*glGetnUniformfv_func)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
extern KWIN_EXPORT glGetGraphicsResetStatus_func glGetGraphicsResetStatus;
extern KWIN_EXPORT glReadnPixels_func glReadnPixels;
extern KWIN_EXPORT glGetnUniformfv_func glGetnUniformfv;
#endif // KWIN_HAVE_OPENGLES
} // namespace