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>
This commit is contained in:
committed by
Emil Velikov
parent
0e983276b9
commit
e384d75b12
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user