From 479840459f9562afaecb150537da3173c8735b18 Mon Sep 17 00:00:00 2001 From: David Stevens Date: Thu, 26 Nov 2020 14:03:16 +0900 Subject: [PATCH] dri: add image cleanup callback to loader extensions MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The callback may be used by dri drivers to perform cleanup when images are destroyed. It is added to the dri2 and image loader extensions. Signed-off-by: David Stevens Reviewed-by: Tapani Pälli Part-of: --- include/GL/internal/dri_interface.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h index 39d5dd0..9b85e67 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -1106,7 +1106,7 @@ struct __DRIbufferRec { }; #define __DRI_DRI2_LOADER "DRI_DRI2Loader" -#define __DRI_DRI2_LOADER_VERSION 4 +#define __DRI_DRI2_LOADER_VERSION 5 enum dri_loader_cap { /* Whether the loader handles RGBA channel ordering correctly. If not, @@ -1177,6 +1177,15 @@ struct __DRIdri2LoaderExtensionRec { * \since 4 */ unsigned (*getCapability)(void *loaderPrivate, enum dri_loader_cap cap); + + /** + * Clean up any loader state associated with an image. + * + * \param loaderPrivate Loader's private data that was previously passed + * into a __DRIimageExtensionRec::createImage function + * \since 5 + */ + void (*destroyLoaderImageState)(void *loaderPrivate); }; /** @@ -2032,7 +2041,7 @@ struct __DRIimageList { }; #define __DRI_IMAGE_LOADER "DRI_IMAGE_LOADER" -#define __DRI_IMAGE_LOADER_VERSION 3 +#define __DRI_IMAGE_LOADER_VERSION 4 struct __DRIimageLoaderExtensionRec { __DRIextension base; @@ -2091,6 +2100,15 @@ struct __DRIimageLoaderExtensionRec { * \since 3 */ void (*flushSwapBuffers)(__DRIdrawable *driDrawable, void *loaderPrivate); + + /** + * Clean up any loader state associated with an image. + * + * \param loaderPrivate Loader's private data that was previously passed + * into a __DRIimageExtensionRec::createImage function + * \since 4 + */ + void (*destroyLoaderImageState)(void *loaderPrivate); }; /** -- 2.7.4