diff options
-rw-r--r-- | include/GL/internal/dri_interface.h | 20 | ||||
-rw-r--r-- | src/glx/x11/dri_glx.c | 5 |
2 files changed, 20 insertions, 5 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index a1a29409b11..97edec0ca9d 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 d68addaa9f4..c02f105611c 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; /** |