summaryrefslogtreecommitdiff
path: root/src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h')
-rw-r--r--src/modules/evas/engines/wayland_egl/Evas_Engine_Wayland_Egl.h47
1 files changed, 47 insertions, 0 deletions
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..9d5fd7c8a7
--- /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
+
+# include <wayland-client.h>
+
+# define EVAS_ENGINE_WAYLAND_EGL_SWAP_MODE_EXISTS 1
+
+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;
+
+typedef struct _Evas_Engine_Info_Wayland_Egl Evas_Engine_Info_Wayland_Egl;
+
+struct _Evas_Engine_Info_Wayland_Egl
+{
+ Evas_Engine_Info magic;
+
+ struct
+ {
+ struct wl_display *display;
+ struct wl_surface *surface;
+ int rotation;
+ int edges;
+ Eina_Bool destination_alpha : 1;
+ } info;
+
+ struct
+ {
+ void (*pre_swap) (void *data, Evas *evas);
+ void (*post_swap) (void *data, Evas *evas);
+ void *data;
+ } callback;
+
+ Evas_Engine_Render_Mode render_mode;
+
+ Eina_Bool vsync : 1;
+ Eina_Bool indirect : 1;
+
+ unsigned char swap_mode : 4;
+};
+
+#endif