From 2f87b7542f7e56e61850ea0b99d8fe5ff0e88273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=B6glund?= Date: Sun, 19 May 2013 16:17:41 +0200 Subject: [PATCH] kwin/es: Resolve functions for GL_EXT_robustness --- libkwineffects/kwinglutils_funcs.cpp | 18 ++++++++++++++++++ libkwineffects/kwinglutils_funcs.h | 9 +++++++++ 2 files changed, 27 insertions(+) diff --git a/libkwineffects/kwinglutils_funcs.cpp b/libkwineffects/kwinglutils_funcs.cpp index 234c62c4d6..ce31749903 100644 --- a/libkwineffects/kwinglutils_funcs.cpp +++ b/libkwineffects/kwinglutils_funcs.cpp @@ -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 diff --git a/libkwineffects/kwinglutils_funcs.h b/libkwineffects/kwinglutils_funcs.h index 9e68a5eb0a..ea123b1b72 100644 --- a/libkwineffects/kwinglutils_funcs.h +++ b/libkwineffects/kwinglutils_funcs.h @@ -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