Put extension flags, string into separate struct.
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 29 Nov 2005 04:43:37 +0000 (04:43 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 29 Nov 2005 04:43:37 +0000 (04:43 +0000)
src/egl/drivers/dri/egldri.c
src/egl/main/egldriver.c
src/egl/main/egldriver.h

index 2e8c745..d9dc29c 100644 (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;
 }
index e2cc069..2b9034d 100644 (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;
index 6d2d707..51ec27c 100644 (file)
@@ -5,11 +5,23 @@
 #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.
  */
 struct _egl_driver
@@ -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;
 };