On 10/11/2013 07:08 PM, Chad Versace wrote: > Insert two fields into _egl_global to hold the client extensions: > > _egl_global::ClientExtensions /*struct of bools*/ > _egl_global::ClientExtensionString > > Post-patch, Mesa supports exactly one client extension, > EGL_EXT_client_extensions. So let's keep things simple by statically > initializing the _egl_global::ClientExtension* fields. > > Signed-off-by: Chad Versace <chad.vers...@linux.intel.com> > --- > src/egl/main/eglapi.c | 8 +++++++- > src/egl/main/eglglobals.c | 7 +++++++ > src/egl/main/eglglobals.h | 7 +++++++ > 3 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c > index 2d8653f..66f96de 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 c39b2ce..a75a90b 100644 > --- a/src/egl/main/eglglobals.c > +++ b/src/egl/main/eglglobals.c > @@ -48,6 +48,13 @@ struct _egl_global _eglGlobal = > _eglUnloadDrivers, /* always called last */ > _eglFiniDisplay > }, > + > + /* ClientExtensions */ > + { > + true /* EGL_EXT_client_extensions */ > + }, > + > + "EGL_EXT_client_extensions" /* ClientExtensionsString */ > }; > > > diff --git a/src/egl/main/eglglobals.h b/src/egl/main/eglglobals.h > index b40e30e..63428f7 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;
This field is never used... do we actually need it? > + > + const char *ClientExtensionString; > }; > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev