diff --git a/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h new file mode 100644 index 0000000000..259ccf7060 --- /dev/null +++ b/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h @@ -0,0 +1,47 @@ +#ifndef _EVAS_ENGINE_WAYLAND_EGL_H +# define _EVAS_ENGINE_WAYLAND_EGL_H + +# define EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_EXISTS 1 + +typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl; + +typedef enum _Evas_Engine_Info_Wayland_Egl_Swap_Mode +{ + EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_AUTO = 0, + EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_FULL = 1, + EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_COPY = 2, + EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_DOUBLE = 3, + EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_TRIPLE = 4 +} Evas_Engine_Info_Wayland_Egl_Swap_Mode; + +struct _Evas_Engine_Info_Wayland_Egl +{ + /* PRIVATE - don't mess with this baby or evas will poke its tongue out + * at you and make nasty noises */ + Evas_Engine_Info magic; + + /* engine specific data & parameters it needs to set up */ + struct + { + struct wl_display *display; + struct wl_surface *surface; + int depth, screen, rotation, edges; + unsigned int destination_alpha : 1; + } info; + + struct + { + void (*pre_swap) (void *data, Evas *evas); + void (*post_swap) (void *data, Evas *evas); + void *data; + } callback; + + /* non-blocking or blocking mode */ + Evas_Engine_Render_Mode render_mode; + + unsigned char vsync : 1; + unsigned char indirect : 1; + unsigned char swap_mode : 4; +}; + +#endif