EFL_INTERNAL_DEPEND_PKG([ECORE_WAYLAND], [eina])
EFL_DEPEND_PKG([ECORE_WAYLAND], [WAYLAND],
- [wayland-client >= 1.3.0 wayland-cursor >= 1.3.0 xkbcommon >= 0.3.0 xdg-shell-client text-client tizen-extension-client tizen-surface-client wayland-tbm-client libtdm-client])
+ [wayland-client >= 1.3.0 wayland-cursor >= 1.3.0 xkbcommon >= 0.3.0 xdg-shell-client text-client tizen-extension-client wayland-tbm-client libtdm-client])
EFL_EVAL_PKGS([ECORE_WAYLAND])
BuildRequires: pkgconfig(wayland-tbm-client)
BuildRequires: pkgconfig(wayland-tbm-server)
BuildRequires: pkgconfig(tizen-extension-client)
-BuildRequires: pkgconfig(tizen-surface-client)
BuildRequires: pkgconfig(tizen-remote-surface-client)
Requires: libwayland-extension-client
%endif
modules/evas/engines/wayland_shm/evas_engine.h \
modules/evas/engines/wayland_shm/evas_shm.c \
modules/evas/engines/wayland_shm/evas_tbmbuf.c \
-modules/evas/engines/wayland_shm/evas_outbuf.c
+modules/evas/engines/wayland_shm/evas_outbuf.c \
+modules/evas/engines/wayland_shm/tizen-surface-protocol.c
if EVAS_STATIC_BUILD_WAYLAND_SHM
lib_evas_libevas_la_SOURCES += $(WAYLAND_SHM_SOURCES)
lib_evas_libevas_la_CPPFLAGS += @evas_engine_wayland_shm_cflags@
#include "evas_engine.h"
#include <sys/mman.h>
-#include <wayland-extension/tizen-surface-client-protocol.h>
+#include "tizen-surface-client.h"
typedef struct _Shm_Pool Shm_Pool;
struct _Shm_Pool
#include <dlfcn.h>
#include <wayland-client.h>
-#include <wayland-extension/tizen-surface-client-protocol.h>
+#include "tizen-surface-client.h"
#define KEY_WINDOW (unsigned long)(&key_window)
#define KEY_WL_BUFFER (unsigned long)(&key_wl_buffer)
--- /dev/null
+#ifndef TIZEN_SURFACE_CLIENT_PROTOCOL_H
+#define TIZEN_SURFACE_CLIENT_PROTOCOL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stddef.h>
+#include "wayland-client.h"
+
+struct wl_client;
+struct wl_resource;
+
+struct tizen_surface_shm;
+struct tizen_surface_shm_flusher;
+struct wl_surface;
+
+extern const struct wl_interface tizen_surface_shm_interface;
+extern const struct wl_interface tizen_surface_shm_flusher_interface;
+
+#define TIZEN_SURFACE_SHM_GET_FLUSHER 0
+
+#define TIZEN_SURFACE_SHM_GET_FLUSHER_SINCE_VERSION 1
+
+static inline void
+tizen_surface_shm_set_user_data(struct tizen_surface_shm *tizen_surface_shm, void *user_data)
+{
+ wl_proxy_set_user_data((struct wl_proxy *) tizen_surface_shm, user_data);
+}
+
+static inline void *
+tizen_surface_shm_get_user_data(struct tizen_surface_shm *tizen_surface_shm)
+{
+ return wl_proxy_get_user_data((struct wl_proxy *) tizen_surface_shm);
+}
+
+static inline uint32_t
+tizen_surface_shm_get_version(struct tizen_surface_shm *tizen_surface_shm)
+{
+ return wl_proxy_get_version((struct wl_proxy *) tizen_surface_shm);
+}
+
+static inline void
+tizen_surface_shm_destroy(struct tizen_surface_shm *tizen_surface_shm)
+{
+ wl_proxy_destroy((struct wl_proxy *) tizen_surface_shm);
+}
+
+static inline struct tizen_surface_shm_flusher *
+tizen_surface_shm_get_flusher(struct tizen_surface_shm *tizen_surface_shm, struct wl_surface *surface)
+{
+ struct wl_proxy *id;
+
+ id = wl_proxy_marshal_constructor((struct wl_proxy *) tizen_surface_shm,
+ TIZEN_SURFACE_SHM_GET_FLUSHER, &tizen_surface_shm_flusher_interface, NULL, surface);
+
+ return (struct tizen_surface_shm_flusher *) id;
+}
+
+struct tizen_surface_shm_flusher_listener {
+ /**
+ * flush - (none)
+ */
+ void (*flush)(void *data,
+ struct tizen_surface_shm_flusher *tizen_surface_shm_flusher);
+ /**
+ * free_flush - (none)
+ * @since: 2
+ */
+ void (*free_flush)(void *data,
+ struct tizen_surface_shm_flusher *tizen_surface_shm_flusher);
+};
+
+static inline int
+tizen_surface_shm_flusher_add_listener(struct tizen_surface_shm_flusher *tizen_surface_shm_flusher,
+ const struct tizen_surface_shm_flusher_listener *listener, void *data)
+{
+ return wl_proxy_add_listener((struct wl_proxy *) tizen_surface_shm_flusher,
+ (void (**)(void)) listener, data);
+}
+
+#define TIZEN_SURFACE_SHM_FLUSHER_DESTROY 0
+
+#define TIZEN_SURFACE_SHM_FLUSHER_DESTROY_SINCE_VERSION 1
+
+static inline void
+tizen_surface_shm_flusher_set_user_data(struct tizen_surface_shm_flusher *tizen_surface_shm_flusher, void *user_data)
+{
+ wl_proxy_set_user_data((struct wl_proxy *) tizen_surface_shm_flusher, user_data);
+}
+
+static inline void *
+tizen_surface_shm_flusher_get_user_data(struct tizen_surface_shm_flusher *tizen_surface_shm_flusher)
+{
+ return wl_proxy_get_user_data((struct wl_proxy *) tizen_surface_shm_flusher);
+}
+
+static inline uint32_t
+tizen_surface_shm_flusher_get_version(struct tizen_surface_shm_flusher *tizen_surface_shm_flusher)
+{
+ return wl_proxy_get_version((struct wl_proxy *) tizen_surface_shm_flusher);
+}
+
+static inline void
+tizen_surface_shm_flusher_destroy(struct tizen_surface_shm_flusher *tizen_surface_shm_flusher)
+{
+ wl_proxy_marshal((struct wl_proxy *) tizen_surface_shm_flusher,
+ TIZEN_SURFACE_SHM_FLUSHER_DESTROY);
+
+ wl_proxy_destroy((struct wl_proxy *) tizen_surface_shm_flusher);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
--- /dev/null
+#include <stdlib.h>
+#include <stdint.h>
+#include "wayland-util.h"
+
+extern const struct wl_interface tizen_surface_shm_flusher_interface;
+extern const struct wl_interface wl_surface_interface;
+
+static const struct wl_interface *types[] = {
+ &tizen_surface_shm_flusher_interface,
+ &wl_surface_interface,
+};
+
+static const struct wl_message tizen_surface_shm_requests[] = {
+ { "get_flusher", "no", types + 0 },
+};
+
+WL_EXPORT const struct wl_interface tizen_surface_shm_interface = {
+ "tizen_surface_shm", 2,
+ 1, tizen_surface_shm_requests,
+ 0, NULL,
+};
+
+static const struct wl_message tizen_surface_shm_flusher_requests[] = {
+ { "destroy", "", types + 0 },
+};
+
+static const struct wl_message tizen_surface_shm_flusher_events[] = {
+ { "flush", "", types + 0 },
+ { "free_flush", "2", types + 0 },
+};
+
+WL_EXPORT const struct wl_interface tizen_surface_shm_flusher_interface = {
+ "tizen_surface_shm_flusher", 2,
+ 1, tizen_surface_shm_flusher_requests,
+ 2, tizen_surface_shm_flusher_events,
+};
+