summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDavid Stevens <stevensd@chromium.org>2020-11-26 14:03:16 +0900
committerMarge Bot <eric+marge@anholt.net>2020-12-15 06:05:27 +0000
commit479840459f9562afaecb150537da3173c8735b18 (patch)
tree0e32b8878c1de5c90474285ab21884baeed2a87c /include
parent80a028d830e2198a839e346b3b845999680c92e6 (diff)
dri: add image cleanup callback to loader extensions
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 <stevensd@chromium.org> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7805>
Diffstat (limited to 'include')
-rw-r--r--include/GL/internal/dri_interface.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index 39d5dd07533..9b85e67ce49 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);
};
/**