diff options
author | Chad Versace <[email protected]> | 2013-10-11 16:04:55 -0700 |
---|---|---|
committer | Chad Versace <[email protected]> | 2013-11-26 12:50:29 -0800 |
commit | 3c58d4c700bc1d0a0d56c26645e900201b7f249e (patch) | |
tree | a52cc2fda7db2f83c59f23f2f304cf9cae23d807 | |
parent | ddc77c5092b6f782327a7014b320f31f5f4e8e93 (diff) |
egl: Enable EGL_EXT_client_extensions
Insert two fields into _egl_global to hold the client extensions and
statically initialize them:
ClientExtensions // a struct of bools
ClientExtensionString
Post-patch, Mesa supports exactly one client extension,
EGL_EXT_client_extensions.
Signed-off-by: Chad Versace <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Reviewed-by: Ian Romanick <[email protected]>
-rw-r--r-- | src/egl/main/eglapi.c | 8 | ||||
-rw-r--r-- | src/egl/main/eglglobals.c | 8 | ||||
-rw-r--r-- | src/egl/main/eglglobals.h | 7 |
3 files changed, 22 insertions, 1 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 2d8653f04cb..66f96de4140 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -87,6 +87,7 @@ #include <stdlib.h> #include <string.h> +#include "eglglobals.h" #include "eglcontext.h" #include "egldisplay.h" #include "egltypedefs.h" @@ -354,10 +355,15 @@ eglTerminate(EGLDisplay dpy) const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name) { - _EGLDisplay *disp = _eglLockDisplay(dpy); + _EGLDisplay *disp; _EGLDriver *drv; const char *ret; + if (dpy == EGL_NO_DISPLAY && name == EGL_EXTENSIONS) { + RETURN_EGL_SUCCESS(NULL, _eglGlobal.ClientExtensionString); + } + + disp = _eglLockDisplay(dpy); _EGL_CHECK_DISPLAY(disp, NULL, drv); ret = drv->API.QueryString(drv, disp, name); diff --git a/src/egl/main/eglglobals.c b/src/egl/main/eglglobals.c index f53f078d710..5c2fddfbf9e 100644 --- a/src/egl/main/eglglobals.c +++ b/src/egl/main/eglglobals.c @@ -47,6 +47,14 @@ struct _egl_global _eglGlobal = _eglUnloadDrivers, /* always called last */ _eglFiniDisplay }, + + /* ClientExtensions */ + { + true /* EGL_EXT_client_extensions */ + }, + + /* ClientExtensionsString */ + "EGL_EXT_client_extensions" }; diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h index b40e30e2251..63428f7f45a 100644 --- a/src/egl/main/eglglobals.h +++ b/src/egl/main/eglglobals.h @@ -31,6 +31,7 @@ #ifndef EGLGLOBALS_INCLUDED #define EGLGLOBALS_INCLUDED +#include <stdbool.h> #include "egltypedefs.h" #include "eglmutex.h" @@ -48,6 +49,12 @@ struct _egl_global EGLint NumAtExitCalls; void (*AtExitCalls[10])(void); + + struct _egl_client_extensions { + bool EXT_client_extensions; + } ClientExtensions; + + const char *ClientExtensionString; }; |