return ret;
}
+E_API bool
+e_pixmap_view_native_surface_init(E_Pixmap *cp, E_View_Native_Surface *ns)
+{
+ Eina_Bool ret = EINA_FALSE;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(cp, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(ns, EINA_FALSE);
+ EINA_SAFETY_ON_FALSE_RETURN_VAL(cp->type == E_PIXMAP_TYPE_WL, EINA_FALSE);
+
+ ns->version = E_VIEW_NATIVE_SURFACE_VERSION;
+ if (cp->buffer && cp->buffer->type == E_COMP_WL_BUFFER_TYPE_NATIVE)
+ {
+ ns->type = E_VIEW_NATIVE_SURFACE_WL;
+ ns->data.wl.legacy_buffer = cp->buffer->resource;
+ ret = !cp->buffer->shm_buffer;
+ }
+ else if (cp->buffer && cp->buffer->type == E_COMP_WL_BUFFER_TYPE_TBM)
+ {
+ ns->type = E_VIEW_NATIVE_SURFACE_TBM;
+ ns->data.tbm.buffer = cp->buffer->tbm_surface;
+ if (cp->buffer->tbm_surface)
+ ret = EINA_TRUE;
+ }
+ else /* SHM buffer or VIDEO buffer */
+ {
+ ns->type = E_VIEW_NATIVE_SURFACE_NONE;
+ ret = EINA_FALSE;
+ }
+
+ return ret;
+}
+
E_API void
e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache)
{
#include <e_types.h>
#include <e_client.h>
+#include <e_view_image.h>
typedef struct _E_Pixmap E_Pixmap;
typedef struct _E_Pixmap_Hook E_Pixmap_Hook;
E_API uint32_t e_pixmap_res_id_get(E_Pixmap *cp);
E_API uint64_t e_pixmap_window_get(E_Pixmap *cp);
E_API Eina_Bool e_pixmap_native_surface_init(E_Pixmap *cp, Evas_Native_Surface *ns);
+E_API bool e_pixmap_view_native_surface_init(E_Pixmap *cp, E_View_Native_Surface *ns);
E_API void e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache);
E_API E_Pixmap_Hook *e_pixmap_hook_add(E_Pixmap_Hook_Point hookpoint, E_Pixmap_Hook_Cb func, const void *data);