From: Kristian Høgsberg Date: Tue, 1 May 2007 01:05:10 +0000 (-0400) Subject: Add macros to generate CreateNewScreen entrypoint. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b42152061c50e870dc2698ea1d860980ce1198b1;p=mesa.git Add macros to generate CreateNewScreen entrypoint. --- 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 @@ -93,11 +93,28 @@ 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; /**