diff options
author | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-06-30 10:52:48 +0200 |
---|---|---|
committer | Nicolai Hähnle <nicolai.haehnle@amd.com> | 2017-07-13 13:27:44 +0200 |
commit | 950a7ce09ec8a893435c7afb738a7f65dfa89f4c (patch) | |
tree | 7a3ef6b9a2c42091c70adc77766c1256ea90e724 | |
parent | 8ea0cdc9e84cc560856f24dd717bd1e6003ecace (diff) |
dri: define a version 2 of the DRI_ConfigOptions extension
The new function is defined to return a malloc'ed pointer. In the
following patches, this helps avoid leaking library handles when pipe
drivers are linked dynamically.
It also allows us to generate the XML string on the fly in the future.
-rw-r--r-- | include/GL/internal/dri_interface.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 1893d4c4a5..8ddd8aefb0 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1616,13 +1616,29 @@ struct __DRIrobustnessExtensionRec { * * This extension provides the XML string containing driver options for use by * the loader in supporting the driconf application. + * + * v2: + * - Add the getXml getter function which allows the driver more flexibility in + * how the XML is provided. + * - Deprecate the direct xml pointer. It is only provided as a fallback for + * older versions of libGL and must not be used by clients that are aware of + * the newer version. Future driver versions may set it to NULL. */ #define __DRI_CONFIG_OPTIONS "DRI_ConfigOptions" -#define __DRI_CONFIG_OPTIONS_VERSION 1 +#define __DRI_CONFIG_OPTIONS_VERSION 2 typedef struct __DRIconfigOptionsExtensionRec { __DRIextension base; - const char *xml; + const char *xml; /**< deprecated since v2, use getXml instead */ + + /** + * Get an XML string that describes available driver options for use by a + * config application. + * + * The returned string must be heap-allocated. The caller is responsible for + * freeing it. + */ + char *(*getXml)(const char *driver_name); } __DRIconfigOptionsExtension; /** |