Add macros to generate CreateNewScreen entrypoint.

This commit is contained in:
Kristian Høgsberg
2007-04-30 21:05:10 -04:00
parent 4a22ae8d44
commit b42152061c
2 changed files with 20 additions and 5 deletions

View File

@@ -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. * \name Functions and data provided by the driver.
*/ */
/*@{*/ /*@{*/
#define __DRI_INTERFACE_VERSION 20070105
typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn, typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
__DRIscreen *psc, const __GLcontextModes * modes, __DRIscreen *psc, const __GLcontextModes * modes,
const __DRIversion * ddx_version, const __DRIversion * dri_version, const __DRIversion * ddx_version, const __DRIversion * dri_version,
@@ -106,7 +123,8 @@ typedef void *(CREATENEWSCREENFUNC)(__DRInativeDisplay *dpy, int scrn,
const __DRIinterfaceMethods * interface, const __DRIinterfaceMethods * interface,
__GLcontextModes ** driver_modes); __GLcontextModes ** driver_modes);
typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC; typedef CREATENEWSCREENFUNC* PFNCREATENEWSCREENFUNC;
extern CREATENEWSCREENFUNC __driCreateNewScreen_20070105; extern CREATENEWSCREENFUNC __DRI_CREATE_NEW_SCREEN;
/** /**

View File

@@ -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 * The version of the last incompatible loader/driver inteface change is
* appended to the name of the \c __driCreateNewScreen function. This * appended to the name of the \c __driCreateNewScreen function. This
* prevents loaders from trying to load drivers that are too old. * 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;
/** /**