include: include e_types.h file at all public header files
[platform/upstream/enlightenment.git] / src / include / e_pixmap.h
1 # ifndef E_PIXMAP_H
2 # define E_PIXMAP_H
3
4 #include <e_types.h>
5 #include <e_client.h>
6
7 typedef struct _E_Pixmap E_Pixmap;
8 typedef struct _E_Pixmap_Hook E_Pixmap_Hook;
9
10 typedef enum
11 {
12    E_PIXMAP_TYPE_WL,
13    E_PIXMAP_TYPE_EXT_OBJECT,
14    E_PIXMAP_TYPE_NONE,
15    E_PIXMAP_TYPE_MAX
16 } E_Pixmap_Type;
17
18 typedef enum _E_Pixmap_Hook_Point
19 {
20    E_PIXMAP_HOOK_NEW,
21    E_PIXMAP_HOOK_DEL,
22    E_PIXMAP_HOOK_USABLE,
23    E_PIXMAP_HOOK_UNUSABLE,
24    E_PIXMAP_HOOK_BUFFER_CLEAR,
25    E_PIXMAP_HOOK_LAST
26 } E_Pixmap_Hook_Point;
27
28 typedef void (*E_Pixmap_Hook_Cb)(void *data, E_Pixmap *cp);
29
30 E_API E_Pixmap              *e_pixmap_new(E_Pixmap_Type type, ...);
31 E_API int                    e_pixmap_free(E_Pixmap *cp);
32 E_API E_Pixmap              *e_pixmap_ref(E_Pixmap *cp);
33 E_API E_Pixmap_Type          e_pixmap_type_get(const E_Pixmap *cp);
34 E_API void                  *e_pixmap_resource_get(E_Pixmap *cp);
35 E_API E_Comp_Wl_Client_Data *e_pixmap_cdata_get(E_Pixmap *cp);
36 E_API void                   e_pixmap_resource_set(E_Pixmap *cp, void *resource);
37 E_API void                   e_pixmap_clear(E_Pixmap *cp);
38 E_API Eina_Bool              e_pixmap_usable_get(const E_Pixmap *cp);
39 E_API Eina_Bool              e_pixmap_size_get(E_Pixmap *cp, int *w, int *h);
40 E_API E_Client              *e_pixmap_client_get(E_Pixmap *cp);
41 E_API E_Client              *e_pixmap_find_client_by_res_id(uint32_t res_id);
42 E_API uint32_t               e_pixmap_res_id_get(E_Pixmap *cp);
43 E_API uint64_t               e_pixmap_window_get(E_Pixmap *cp);
44 E_API Eina_Bool              e_pixmap_native_surface_init(E_Pixmap *cp, Evas_Native_Surface *ns);
45 E_API void                   e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache);
46
47 E_API E_Pixmap_Hook *e_pixmap_hook_add(E_Pixmap_Hook_Point hookpoint, E_Pixmap_Hook_Cb func, const void *data);
48 E_API void e_pixmap_hook_del(E_Pixmap_Hook *ph);
49
50 E_API void e_pixmap_buffer_clear(E_Pixmap *cp, Eina_Bool only_free);
51
52 #endif