make notes about wayland stuff being experimental. we cant really back
[profile/ivi/evas.git] / src / modules / engines / wayland_egl / Evas_Engine_Wayland_Egl.h
1 #ifndef _EVAS_ENGINE_WAYLAND_EGL_H
2 #define _EVAS_ENGINE_WAYLAND_EGL_H
3
4 /*
5  * Wayland supoprt is considered experimental as wayland itself is still
6  * unstable and liable to change core protocol. If you use this api, it is
7  * possible it will break in future, until this notice is removed.
8  */
9
10 #include <wayland-client.h>
11
12 typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
13
14 struct _Evas_Engine_Info_Wayland_Egl
15 {
16    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
17    /* at you and make nasty noises */
18    Evas_Engine_Info magic;
19
20    /* engine specific data & parameters it needs to set up */
21    struct {
22       struct wl_display *display;
23       struct wl_surface *surface;
24       int          depth;
25       int          screen;
26       int          rotation;
27       unsigned int destination_alpha  : 1;
28    } info;
29    /* engine specific function calls to query stuff about the destination */
30    /* engine (what visual & colormap & depth to use, performance info etc. */
31    struct {
32       int       (*best_depth_get)    (Evas_Engine_Info_Wayland_Egl *einfo);
33    } func;
34
35    struct {
36       void      (*pre_swap)          (void *data, Evas *e);
37       void      (*post_swap)         (void *data, Evas *e);
38
39       void       *data; // data for callback calls
40    } callback;
41
42    /* non-blocking or blocking mode */
43    Evas_Engine_Render_Mode render_mode;
44
45    unsigned char vsync : 1; // does nothing right now
46    unsigned char indirect : 1; // use indirect rendering
47 };
48 #endif