Put extension flags, string into separate struct.

This commit is contained in:
Brian Paul 2005-11-29 04:43:37 +00:00
parent f576450cae
commit 5285c32a17
3 changed files with 25 additions and 18 deletions

View file

@ -1117,6 +1117,6 @@ _eglDRIInitDriverFallbacks(_EGLDriver *drv)
drv->API.SwapBuffers = _eglDRISwapBuffers;
/* enable supported extensions */
drv->MESA_screen_surface = EGL_TRUE;
drv->MESA_copy_context = EGL_TRUE;
drv->Extensions.MESA_screen_surface = EGL_TRUE;
drv->Extensions.MESA_copy_context = EGL_TRUE;
}

View file

@ -201,15 +201,15 @@ _eglInitDriverFallbacks(_EGLDriver *drv)
* the driver's Extensions string.
*/
static void
UpdateExtensionsString(_EGLDriver *drv)
_eglUpdateExtensionsString(_EGLDriver *drv)
{
drv->Extensions[0] = 0;
drv->Extensions.String[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);
if (drv->Extensions.MESA_screen_surface)
strcat(drv->Extensions.String, "EGL_MESA_screen_surface ");
if (drv->Extensions.MESA_copy_context)
strcat(drv->Extensions.String, "EGL_MESA_copy_context ");
assert(strlen(drv->Extensions.String) < MAX_EXTENSIONS_LEN);
}
@ -225,8 +225,8 @@ _eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name)
case EGL_VERSION:
return "1.0";
case EGL_EXTENSIONS:
UpdateExtensionsString(drv);
return drv->Extensions;
_eglUpdateExtensionsString(drv);
return drv->Extensions.String;
default:
_eglError(EGL_BAD_PARAMETER, "eglQueryString");
return NULL;

View file

@ -5,10 +5,22 @@
#include "egltypedefs.h"
#include "eglapi.h"
/* should probably use a dynamic-lengh string, but this will do */
/* should probably use a dynamic-length string, but this will do */
#define MAX_EXTENSIONS_LEN 1000
/**
* Optional EGL extensions info.
*/
struct _egl_extensions
{
EGLBoolean MESA_screen_surface;
EGLBoolean MESA_copy_context;
char String[MAX_EXTENSIONS_LEN];
};
/**
* Base class for device drivers.
*/
@ -25,12 +37,7 @@ struct _egl_driver
_EGLAPI API;
/* Extension enable flags */
EGLBoolean MESA_screen_surface;
EGLBoolean MESA_copy_context;
/* Extensions string */
char Extensions[MAX_EXTENSIONS_LEN];
_EGLExtensions Extensions;
};