* Magic version number to know what the native surface struct looks like
*/
-#define EVAS_NATIVE_SURFACE_VERSION 4
+#define EVAS_NATIVE_SURFACE_VERSION 5
/**
* Native surface types that image object supports
} Evas_Native_Surface_Type;
/**
+ * Native surface types that image object supports
+ *
+ * @see Evas_Native_Surface
+ * @see evas_object_image_native_surface_set()
+ */
+typedef enum _Evas_Native_Surface_Status
+{
+ EVAS_NATIVE_SURFACE_STATUS_SCANOUT_ON,
+ EVAS_NATIVE_SURFACE_STATUS_SCANOUT_OFF,
+ EVAS_NATIVE_SURFACE_STATUS_PLANE_ASSIGN,
+ EVAS_NATIVE_SURFACE_STATUS_PLANE_RELEASE,
+} Evas_Native_Surface_Status;
+
+typedef void (*Evas_Native_Scanout_Handler)(void *scanout_data, Evas_Native_Surface_Status status);
+
+typedef struct _Evas_Native_Scanout
+{
+ Evas_Native_Scanout_Handler handler;
+ void *data;
+} Evas_Native_Scanout;
+
+/**
* @brief A generic datatype for engine specific native surface information.
*
* Please fill up Evas_Native_Surface fields that regarded with current surface
{
void *attr; /**< Pointer to dmabuf attributes - contents copied */
void *resource; /**< Wayland resource pointer, kept as is */
+ Evas_Native_Scanout scanout;
} wl_dmabuf; /**< Set this struct fields if surface data is Wayland dmabuf based. @since 1.18 */
struct
{