diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index 2bd94a77f..0a77df009 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -667,6 +667,22 @@ e_pixmap_parent_window_get(E_Pixmap *cp) return cp->parent; } +E_API Eina_Bool +e_pixmap_is_pixels(E_Pixmap *cp) +{ + switch (cp->type) + { + case E_PIXMAP_TYPE_X: + return EINA_FALSE; + case E_PIXMAP_TYPE_WL: + if (!cp->buffer) return EINA_TRUE; + if (cp->buffer->shm_buffer) return EINA_TRUE; + return EINA_FALSE; + default: + return EINA_TRUE; + } +} + E_API Eina_Bool e_pixmap_native_surface_init(E_Pixmap *cp, Evas_Native_Surface *ns) { diff --git a/src/bin/e_pixmap.h b/src/bin/e_pixmap.h index 8370efe34..cdd1f18af 100644 --- a/src/bin/e_pixmap.h +++ b/src/bin/e_pixmap.h @@ -38,6 +38,7 @@ E_API E_Pixmap *e_pixmap_find(E_Pixmap_Type type, ...); E_API E_Client *e_pixmap_find_client(E_Pixmap_Type type, ...); E_API int64_t e_pixmap_window_get(E_Pixmap *cp); E_API Ecore_Window e_pixmap_parent_window_get(E_Pixmap *cp); +E_API Eina_Bool e_pixmap_is_pixels(E_Pixmap *cp); E_API Eina_Bool e_pixmap_native_surface_init(E_Pixmap *cp, Evas_Native_Surface *ns); E_API void e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache); E_API Eina_Bool e_pixmap_image_refresh(E_Pixmap *cp);