summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEmil Velikov <emil.velikov@collabora.com>2016-04-21 17:29:16 +0100
committerEmil Velikov <emil.l.velikov@gmail.com>2016-05-24 23:03:00 +0100
commite384d75b120ce60954c545e8c6edbe98fd01bea7 (patch)
tree91f111db322fbfcb97ce308e0276558a507268e6 /include
parent0e983276b96eee5aa1dd091888bc81e36169a8f1 (diff)
downloadexternal_mesa3d-e384d75b120ce60954c545e8c6edbe98fd01bea7.zip
external_mesa3d-e384d75b120ce60954c545e8c6edbe98fd01bea7.tar.gz
external_mesa3d-e384d75b120ce60954c545e8c6edbe98fd01bea7.tar.bz2
mesa_glinterop: make GL interop version field bidirectional
This allows clear and easy communication between the two. Caller: Requesting information (struct vN) Callee: I know how to deal with older version (vN-1) only. Here is your data and the version I support. Caller: Older version ? Sure I'll cap all access to the fields provided by the older version (vN-1) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Tested-by: Tom Stellard <thomas.stellard@amd.com>
Diffstat (limited to 'include')
-rw-r--r--include/GL/internal/dri_interface.h2
-rw-r--r--include/GL/mesa_glinterop.h23
2 files changed, 20 insertions, 5 deletions
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index 4008658..f80233b 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -414,7 +414,7 @@ struct __DRI2interopExtensionRec {
/** Same as MesaGLInterop*ExportObject. */
int (*export_object)(__DRIcontext *ctx,
- const mesa_glinterop_export_in *in,
+ mesa_glinterop_export_in *in,
mesa_glinterop_export_out *out);
};
diff --git a/include/GL/mesa_glinterop.h b/include/GL/mesa_glinterop.h
index 0a22b9b..b805d63 100644
--- a/include/GL/mesa_glinterop.h
+++ b/include/GL/mesa_glinterop.h
@@ -94,6 +94,11 @@ enum {
*/
typedef struct _mesa_glinterop_device_info {
/* The caller should set this to the version of the struct they support */
+ /* The callee will overwrite it if it supports a lower version.
+ *
+ * The caller should check the value and access up-to the version supported
+ * by the the callee.
+ */
/* NOTE: Do not use the MESA_GLINTEROP_DEVICE_INFO_VERSION macro */
uint32_t version;
@@ -117,6 +122,11 @@ typedef struct _mesa_glinterop_device_info {
*/
typedef struct _mesa_glinterop_export_in {
/* The caller should set this to the version of the struct they support */
+ /* The callee will overwrite it if it supports a lower version.
+ *
+ * The caller should check the value and access up-to the version supported
+ * by the the callee.
+ */
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_IN_VERSION macro */
uint32_t version;
@@ -177,6 +187,11 @@ typedef struct _mesa_glinterop_export_in {
*/
typedef struct _mesa_glinterop_export_out {
/* The caller should set this to the version of the struct they support */
+ /* The callee will overwrite it if it supports a lower version.
+ *
+ * The caller should check the value and access up-to the version supported
+ * by the the callee.
+ */
/* NOTE: Do not use the MESA_GLINTEROP_EXPORT_OUT_VERSION macro */
uint32_t version;
@@ -257,7 +272,7 @@ MesaGLInteropEGLQueryDeviceInfo(EGLDisplay dpy, EGLContext context,
*/
int
MesaGLInteropGLXExportObject(Display *dpy, GLXContext context,
- const mesa_glinterop_export_in *in,
+ mesa_glinterop_export_in *in,
mesa_glinterop_export_out *out);
@@ -267,7 +282,7 @@ MesaGLInteropGLXExportObject(Display *dpy, GLXContext context,
*/
int
MesaGLInteropEGLExportObject(EGLDisplay dpy, EGLContext context,
- const mesa_glinterop_export_in *in,
+ mesa_glinterop_export_in *in,
mesa_glinterop_export_out *out);
@@ -276,10 +291,10 @@ typedef int (PFNMESAGLINTEROPGLXQUERYDEVICEINFOPROC)(Display *dpy, GLXContext co
typedef int (PFNMESAGLINTEROPEGLQUERYDEVICEINFOPROC)(EGLDisplay dpy, EGLContext context,
mesa_glinterop_device_info *out);
typedef int (PFNMESAGLINTEROPGLXEXPORTOBJECTPROC)(Display *dpy, GLXContext context,
- const mesa_glinterop_export_in *in,
+ mesa_glinterop_export_in *in,
mesa_glinterop_export_out *out);
typedef int (PFNMESAGLINTEROPEGLEXPORTOBJECTPROC)(EGLDisplay dpy, EGLContext context,
- const mesa_glinterop_export_in *in,
+ mesa_glinterop_export_in *in,
mesa_glinterop_export_out *out);
#ifdef __cplusplus