summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/GL/internal/dri_interface.h20
-rw-r--r--src/glx/x11/dri_glx.c5
2 files changed, 20 insertions, 5 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index a1a29409b1..97edec0ca9 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -94,10 +94,27 @@ typedef void (* PFNGLXSCRENABLEEXTENSIONPROC) ( void *psc, const char * name );
/**
+ * Macros for building symbol and strings. Standard CPP two step...
+ */
+
+#define __DRI_REAL_STRINGIFY(x) # x
+#define __DRI_STRINGIFY(x) __DRI_REAL_STRINGIFY(x)
+#define __DRI_REAL_MAKE_VERSION(name, version) name ## _ ## version
+#define __DRI_MAKE_VERSION(name, version) __DRI_REAL_MAKE_VERSION(name, version)
+
+#define __DRI_CREATE_NEW_SCREEN \
+ __DRI_MAKE_VERSION(__driCreateNewScreen, __DRI_INTERFACE_VERSION)
+
+#define __DRI_CREATE_NEW_SCREEN_STRING \
+ __DRI_STRINGIFY(__DRI_CREATE_NEW_SCREEN)
+
+/**
* \name Functions and data provided by the driver.
*/
/*@{*/
+#define __DRI_INTERFACE_VERSION 20070105
+
typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
__DRIscreen *psc, const __GLcontextModes * modes,
const __DRIversion * ddx_version, const __DRIversion * dri_version,
@@ -106,7 +123,8 @@ typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
const __DRIinterfaceMethods * interface,
__GLcontextModes ** driver_modes);
typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC;
-extern CREATENEWSCREENFUNC __driCreateNewScreen_20070105;
+extern CREATENEWSCREENFUNC __DRI_CREATE_NEW_SCREEN;
+
/**
diff --git a/src/glx/x11/dri_glx.c b/src/glx/x11/dri_glx.c
index d68addaa9f..c02f105611 100644
--- a/src/glx/x11/dri_glx.c
+++ b/src/glx/x11/dri_glx.c
@@ -167,11 +167,8 @@ ExtractDir(int index, const char *paths, int dirLen, char *dir)
* The version of the last incompatible loader/driver inteface change is
* appended to the name of the \c __driCreateNewScreen function. This
* prevents loaders from trying to load drivers that are too old.
- *
- * \todo
- * Create a macro or something so that this is automatically updated.
*/
-static const char createNewScreenName[] = "__driCreateNewScreen_20070105";
+static const char createNewScreenName[] = __DRI_CREATE_NEW_SCREEN_STRING;
/**