diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2012-09-16 17:02:38 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2012-09-16 17:02:38 +0000 |
commit | 2f6d567279ee0e5b7617fe424b88aff87339374f (patch) | |
tree | 214b9bcb3d5b7a218eb8ceea636201f57ddf6263 /dist/Mesa | |
parent | c7459ac257f221e842261427492d2f0d16716c9a (diff) |
Merge some definitions from dri 2.3 needed by xserver 1.13.
ok mpi@
Diffstat (limited to 'dist/Mesa')
-rw-r--r-- | dist/Mesa/include/GL/internal/dri_interface.h | 52 | ||||
-rw-r--r-- | dist/Mesa/src/mesa/drivers/dri/common/dri_util.c | 8 |
2 files changed, 56 insertions, 4 deletions
diff --git a/dist/Mesa/include/GL/internal/dri_interface.h b/dist/Mesa/include/GL/internal/dri_interface.h index 4fe9e943b..55caed8db 100644 --- a/dist/Mesa/include/GL/internal/dri_interface.h +++ b/dist/Mesa/include/GL/internal/dri_interface.h @@ -756,11 +756,45 @@ struct __DRIdri2LoaderExtensionRec { * constructors for DRI2. */ #define __DRI_DRI2 "DRI_DRI2" -#define __DRI_DRI2_VERSION 2 +#define __DRI_DRI2_VERSION 3 -#define __DRI_API_OPENGL 0 +#define __DRI_API_OPENGL 0 /**< OpenGL compatibility profile */ #define __DRI_API_GLES 1 #define __DRI_API_GLES2 2 +#define __DRI_API_OPENGL_CORE 3 /**< OpenGL 3.2+ core profile */ + +#define __DRI_CTX_ATTRIB_MAJOR_VERSION 0 +#define __DRI_CTX_ATTRIB_MINOR_VERSION 1 +#define __DRI_CTX_ATTRIB_FLAGS 2 + +#define __DRI_CTX_FLAG_DEBUG 0x00000001 +#define __DRI_CTX_FLAG_FORWARD_COMPATIBLE 0x00000002 + +/** + * \name Reasons that __DRIdri2Extension::createContextAttribs might fail + */ +/*@{*/ +/** Success! */ +#define __DRI_CTX_ERROR_SUCCESS 0 + +/** Memory allocation failure */ +#define __DRI_CTX_ERROR_NO_MEMORY 1 + +/** Client requested an API (e.g., OpenGL ES 2.0) that the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_API 2 + +/** Client requested an API version that the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_VERSION 3 + +/** Client requested a flag or combination of flags the driver can't do. */ +#define __DRI_CTX_ERROR_BAD_FLAG 4 + +/** Client requested an attribute the driver doesn't understand. */ +#define __DRI_CTX_ERROR_UNKNOWN_ATTRIBUTE 5 + +/** Client requested a flag the driver doesn't understand. */ +#define __DRI_CTX_ERROR_UNKNOWN_FLAG 6 +/*@}*/ struct __DRIdri2ExtensionRec { __DRIextension base; @@ -795,6 +829,20 @@ struct __DRIdri2ExtensionRec { int height); void (*releaseBuffer)(__DRIscreen *screen, __DRIbuffer *buffer); + + /** + * Create a context for a particular API with a set of attributes + * + * \since version 3 + */ + __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + unsigned num_attribs, + const uint32_t *attribs, + unsigned *error, + void *loaderPrivate); }; diff --git a/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c b/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c index 82638fa72..9d628b5bf 100644 --- a/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c +++ b/dist/Mesa/src/mesa/drivers/dri/common/dri_util.c @@ -941,14 +941,18 @@ const __DRIlegacyExtension driLegacyExtension = { /** DRI2 interface */ const __DRIdri2Extension driDRI2Extension = { - { __DRI_DRI2, __DRI_DRI2_VERSION }, + /* Force the version to 2 because the underlying drivers don't (can't!) + * support the extra requirements of CreateContextAttribs. + */ + { __DRI_DRI2, 2 }, dri2CreateNewScreen, dri2CreateNewDrawable, dri2CreateNewContext, dri2GetAPIMask, dri2CreateNewContextForAPI, dri2AllocateBuffer, - dri2ReleaseBuffer + dri2ReleaseBuffer, + NULL }; const __DRI2configQueryExtension dri2ConfigQueryExtension = { |