diff options
author | marha <marha@users.sourceforge.net> | 2011-12-25 17:34:25 +0100 |
---|---|---|
committer | Marc Haesen <marc@hc-consult.be> | 2011-12-25 17:34:25 +0100 |
commit | 7fd4689bd7bac15dcc0ab13d4689a11e2c303681 (patch) | |
tree | c5bd75a1fc913dcb08d03525d87638e66fa8aad2 /mesalib/include/GL/internal | |
parent | 1a9e93b01e2339579bf9a0fae0db0f83b653aab7 (diff) | |
parent | 0fd2d56b0fc0ce74c5f3e5e23cb26b0d1a075ba1 (diff) | |
download | vcxsrv-7fd4689bd7bac15dcc0ab13d4689a11e2c303681.tar.gz vcxsrv-7fd4689bd7bac15dcc0ab13d4689a11e2c303681.tar.bz2 vcxsrv-7fd4689bd7bac15dcc0ab13d4689a11e2c303681.zip |
Merge remote-tracking branch 'origin/released'
Diffstat (limited to 'mesalib/include/GL/internal')
-rw-r--r-- | mesalib/include/GL/internal/dri_interface.h | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/mesalib/include/GL/internal/dri_interface.h b/mesalib/include/GL/internal/dri_interface.h index 5561fcb0d..6aa6db74a 100644 --- a/mesalib/include/GL/internal/dri_interface.h +++ b/mesalib/include/GL/internal/dri_interface.h @@ -681,7 +681,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; @@ -701,6 +701,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); }; /** @@ -783,11 +799,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; @@ -822,6 +872,22 @@ 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 + * + * \sa __DRIswrastExtensionRec::createContextAttribs + */ + __DRIcontext *(*createContextAttribs)(__DRIscreen *screen, + int api, + const __DRIconfig *config, + __DRIcontext *shared, + unsigned num_attribs, + const uint32_t *attribs, + unsigned *error, + void *loaderPrivate); }; |