92ffe25c0f865c46b69e0a977332b05c3e86f144
[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 #include <wayland-client.h>
5
6 typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
7
8 struct _Evas_Engine_Info_Wayland_Egl
9 {
10    /* PRIVATE - don't mess with this baby or evas will poke its tongue out */
11    /* at you and make nasty noises */
12    Evas_Engine_Info magic;
13
14    /* engine specific data & parameters it needs to set up */
15    struct {
16       struct wl_display *display;
17       struct wl_surface *surface;
18       int          depth;
19       int          screen;
20       int          rotation;
21       unsigned int destination_alpha  : 1;
22    } info;
23    /* engine specific function calls to query stuff about the destination */
24    /* engine (what visual & colormap & depth to use, performance info etc. */
25    struct {
26       int       (*best_depth_get)    (Evas_Engine_Info_Wayland_Egl *einfo);
27    } func;
28
29    struct {
30       void      (*pre_swap)          (void *data, Evas *e);
31       void      (*post_swap)         (void *data, Evas *e);
32
33       void       *data; // data for callback calls
34    } callback;
35
36    /* non-blocking or blocking mode */
37    Evas_Engine_Render_Mode render_mode;
38
39    unsigned char vsync : 1; // does nothing right now
40    unsigned char indirect : 1; // use indirect rendering
41 };
42 #endif