From b5b2081d75105883c3e7452775c674716b665385 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 1 Dec 2011 13:56:38 -0800 Subject: [PATCH] dri2: Add createContextAttribs entry point for DRISW version 3 Signed-off-by: Ian Romanick --- include/GL/internal/dri_interface.h | 20 +++++++++++++++++++- src/mesa/drivers/dri/common/drisw_util.c | 8 ++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index add03c72147..b21445f1046 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -679,7 +679,7 @@ struct __DRIlegacyExtensionRec { * conjunction with the core extension. */ #define __DRI_SWRAST "DRI_SWRast" -#define __DRI_SWRAST_VERSION 2 +#define __DRI_SWRAST_VERSION 3 struct __DRIswrastExtensionRec { __DRIextension base; @@ -699,6 +699,22 @@ struct __DRIswrastExtensionRec { const __DRIconfig *config, __DRIcontext *shared, void *data); + + /** + * Create a context for a particular API with a set of attributes + * + * \since version 3 + * + * \sa __DRIdri2ExtensionRec::createContextAttribs + */ + __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + unsigned num_attribs, + const uint32_t *attribs, + unsigned *error, + void *loaderPrivate); }; /** @@ -859,6 +875,8 @@ struct __DRIdri2ExtensionRec { * Create a context for a particular API with a set of attributes * * \since version 3 + * + * \sa __DRIswrastExtensionRec::createContextAttribs */ __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, int api, diff --git a/src/mesa/drivers/dri/common/drisw_util.c b/src/mesa/drivers/dri/common/drisw_util.c index 614339eeb42..a19123f7064 100644 --- a/src/mesa/drivers/dri/common/drisw_util.c +++ b/src/mesa/drivers/dri/common/drisw_util.c @@ -288,8 +288,12 @@ const __DRIcoreExtension driCoreExtension = { }; const __DRIswrastExtension driSWRastExtension = { - { __DRI_SWRAST, __DRI_SWRAST_VERSION }, + /* Force the version to 2 because the underlying driver don't (can't!) + * support the extra requirements of CreateContextAttribs. + */ + { __DRI_SWRAST, 2 }, driCreateNewScreen, driCreateNewDrawable, - driCreateNewContextForAPI + driCreateNewContextForAPI, + NULL }; -- 2.30.2