From: Brian Paul Date: Mon, 16 May 2005 02:15:42 +0000 (+0000) Subject: added boolean extension flags to _EGLDriver X-Git-Tag: mesa-7.8~9224 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=51ac95ba8945711cf65e94a2deba6c896dea5f0e;p=platform%2Fupstream%2Fmesa.git added boolean extension flags to _EGLDriver --- diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c index e2120e3..8cad3d8 100644 --- a/src/egl/main/egldriver.c +++ b/src/egl/main/egldriver.c @@ -197,6 +197,24 @@ _eglInitDriverFallbacks(_EGLDriver *drv) } +/** + * Examine the individual extension enable/disable flags and recompute + * the driver's Extensions string. + */ +static void +UpdateExtensionsString(_EGLDriver *drv) +{ + drv->Extensions[0] = 0; + + if (drv->MESA_screen_surface) + strcat(drv->Extensions, "EGL_MESA_screen_surface"); + if (drv->MESA_copy_context) + strcat(drv->Extensions, "EGL_MESA_copy_context"); + assert(strlen(drv->Extensions) < MAX_EXTENSIONS_LEN); +} + + + const char * _eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name) { @@ -208,7 +226,8 @@ _eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name) case EGL_VERSION: return "1.0"; case EGL_EXTENSIONS: - return ""; + UpdateExtensionsString(drv); + return drv->Extensions; default: _eglError(EGL_BAD_PARAMETER, "eglQueryString"); return NULL; diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h index bc5e4e2..d83bc46 100644 --- a/src/egl/main/egldriver.h +++ b/src/egl/main/egldriver.h @@ -4,6 +4,9 @@ #include "egltypedefs.h" +/* should probably use a dynamic-lengh string, but this will do */ +#define MAX_EXTENSIONS_LEN 1000 + /* driver funcs */ typedef EGLBoolean (*Initialize_t)(_EGLDriver *, EGLDisplay dpy, EGLint *major, EGLint *minor); @@ -114,6 +117,13 @@ struct _egl_driver QueryScreenSurfaceMESA_t QueryScreenSurfaceMESA; QueryScreenModeMESA_t QueryScreenModeMESA; QueryModeStringMESA_t QueryModeStringMESA; + + /* Extension enable flags */ + EGLBoolean MESA_screen_surface; + EGLBoolean MESA_copy_context; + + /* Extensions string */ + char Extensions[MAX_EXTENSIONS_LEN]; };