1 #ifdef E_TYPEDEFS
2 
3 typedef struct _E_Pixmap E_Pixmap;
4 
5 typedef enum
6 {
7    E_PIXMAP_TYPE_X,
8    E_PIXMAP_TYPE_WL,
9    E_PIXMAP_TYPE_NONE,
10 } E_Pixmap_Type;
11 
12 #else
13 # ifndef E_PIXMAP_H
14 # define E_PIXMAP_H
15 
16 E_API int e_pixmap_free(E_Pixmap *cp);
17 E_API E_Pixmap *e_pixmap_ref(E_Pixmap *cp);
18 E_API E_Pixmap *e_pixmap_new(E_Pixmap_Type type, ...);
19 E_API E_Pixmap_Type e_pixmap_type_get(const E_Pixmap *cp);
20 E_API void *e_pixmap_resource_get(E_Pixmap *cp);
21 E_API void e_pixmap_resource_set(E_Pixmap *cp, void *resource);
22 E_API void e_pixmap_parent_window_set(E_Pixmap *cp, Ecore_Window win);
23 E_API void e_pixmap_visual_cmap_set(E_Pixmap *cp, void *visual, unsigned int cmap);
24 E_API unsigned int e_pixmap_failures_get(const E_Pixmap *cp);
25 E_API void *e_pixmap_visual_get(const E_Pixmap *cp);
26 E_API uint32_t e_pixmap_pixmap_get(const E_Pixmap *cp);
27 E_API Eina_Bool e_pixmap_dirty_get(E_Pixmap *cp);
28 E_API void e_pixmap_clear(E_Pixmap *cp);
29 E_API void e_pixmap_usable_set(E_Pixmap *cp, Eina_Bool set);
30 E_API Eina_Bool e_pixmap_usable_get(const E_Pixmap *cp);
31 E_API void e_pixmap_dirty(E_Pixmap *cp);
32 E_API Eina_Bool e_pixmap_refresh(E_Pixmap *cp);
33 E_API Eina_Bool e_pixmap_size_changed(E_Pixmap *cp, int w, int h);
34 E_API Eina_Bool e_pixmap_size_get(E_Pixmap *cp, int *w, int *h);
35 E_API void e_pixmap_client_set(E_Pixmap *cp, E_Client *ec);
36 E_API E_Client *e_pixmap_client_get(E_Pixmap *cp);
37 E_API E_Pixmap *e_pixmap_find(E_Pixmap_Type type, ...);
38 E_API E_Client *e_pixmap_find_client(E_Pixmap_Type type, ...);
39 E_API int64_t e_pixmap_window_get(E_Pixmap *cp);
40 E_API Ecore_Window e_pixmap_parent_window_get(E_Pixmap *cp);
41 E_API Eina_Bool e_pixmap_is_pixels(E_Pixmap *cp);
42 E_API Eina_Bool e_pixmap_native_surface_init(E_Pixmap *cp, Evas_Native_Surface *ns);
43 E_API void e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache);
44 E_API Eina_Bool e_pixmap_image_refresh(E_Pixmap *cp);
45 E_API Eina_Bool e_pixmap_image_exists(const E_Pixmap *cp);
46 E_API Eina_Bool e_pixmap_image_is_argb(const E_Pixmap *cp);
47 E_API void *e_pixmap_image_data_get(E_Pixmap *cp);
48 E_API Eina_Bool e_pixmap_image_data_argb_convert(E_Pixmap *cp, void *pix, void *ipix, Eina_Rectangle *r, int stride);
49 E_API Eina_Bool e_pixmap_image_draw(E_Pixmap *cp, const Eina_Rectangle *r);
50 
51 E_API void e_pixmap_image_opaque_set(E_Pixmap *cp, int x, int y, int w, int h);
52 E_API void e_pixmap_image_opaque_get(E_Pixmap *cp, int *x, int *y, int *w, int *h);
53 
54 E_API void e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...);
55 
56 #ifdef HAVE_WAYLAND
57 E_API Eina_Bool e_pixmap_dmabuf_test(struct linux_dmabuf_buffer *);
58 E_API Eina_Bool e_pixmap_dmabuf_formats_query(int **formats, int *num_formats);
59 E_API Eina_Bool e_pixmap_dmabuf_modifiers_query(int format, uint64_t **modifiers, int *num_modifiers);
60 
61 #endif
62 
63 static inline Eina_Bool
e_pixmap_is_x(const E_Pixmap * cp)64 e_pixmap_is_x(const E_Pixmap *cp)
65 {
66    return cp && e_pixmap_type_get(cp) == E_PIXMAP_TYPE_X;
67 }
68 
69 # endif
70 
71 #endif
72