diff --git a/src/bin/engine_wayland_shm.c b/src/bin/engine_wayland_shm.c index 7ff17d2..55b9449 100644 --- a/src/bin/engine_wayland_shm.c +++ b/src/bin/engine_wayland_shm.c @@ -18,12 +18,9 @@ struct _engine_wayland_shm_display struct wl_registry *registry; struct wl_compositor *compositor; struct wl_surface *surface; - struct wl_callback *frame_callback; struct wl_shell *shell; struct wl_shell_surface *shell_surface; struct wl_shm *shm; - /* struct wl_buffer *buffer; */ - void *data; int width; int height; }; @@ -43,14 +40,6 @@ static const struct wl_registry_listener _registry_listener = NULL, /* global_remove */ }; -/* Frame handler */ -static void _surface_frame_handle_complete(void *data, struct wl_callback *callback, uint32_t time __UNUSED__); -static const struct wl_callback_listener _surface_frame_listener = -{ - _surface_frame_handle_complete, -}; - - /* * API */ @@ -85,13 +74,6 @@ engine_wayland_shm_args(const char *engine __UNUSED__, int width, int height) wl.surface = wl_compositor_create_surface(wl.compositor); wl.shell_surface = engine_wayland_create_shell_surface(wl.shell, wl.surface, "Expedite Wayland SHM"); - /* _engine_wayland_shm_create_buffer(width, height); */ - - /* assert(wl.buffer != NULL); */ - /* assert(wl.data != NULL); */ - - /* wl_surface_attach(wl.surface, wl.buffer, 0, 0); */ - einfo->info.wl_shm = wl.shm; einfo->info.wl_surface = wl.surface; if (!evas_engine_info_set(evas, (Evas_Engine_Info *) einfo)) @@ -103,25 +85,19 @@ engine_wayland_shm_args(const char *engine __UNUSED__, int width, int height) wl.width = width; wl.height = height; - _surface_frame_handle_complete(NULL, NULL, 0); - return EINA_TRUE; } void engine_wayland_shm_loop(void) { - assert(wl_display_dispatch(wl.display) != -1); + assert(wl_display_dispatch_pending(wl.display) != -1); } void engine_wayland_shm_shutdown(void) { - if (wl.frame_callback) - wl_callback_destroy(wl.frame_callback); - - /* wl_buffer_destroy(wl.buffer); */ wl_shell_surface_destroy(wl.shell_surface); wl_surface_destroy(wl.surface); wl_shm_destroy(wl.shm); @@ -147,57 +123,3 @@ _registry_handle_global(void *data __UNUSED__, struct wl_registry *registry, uns else if (!strcmp(interface, "wl_shm")) wl.shm = wl_registry_bind(registry, id, &wl_shm_interface, 1); } - -/* static void */ -/* _engine_wayland_shm_create_buffer(int width, int height) */ -/* { */ -/* struct wl_shm_pool *pool; */ -/* int fd, size, stride; */ -/* char tmp[PATH_MAX]; */ - -/* stride = width * 4; */ -/* size = stride * height; */ - -/* strcpy(tmp, "/tmp/expedite-wayland_shm-XXXXXX"); */ -/* if ((fd = mkstemp(tmp)) < 0) */ -/* { */ -/* fprintf(stderr, "Could not create temporary file.\n"); */ -/* return; */ -/* } */ - -/* if (ftruncate(fd, size) < 0) */ -/* { */ -/* fprintf(stderr, "Could not truncate temporary file.\n"); */ -/* goto end; */ -/* } */ - -/* wl.data = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); */ -/* if (wl.data == MAP_FAILED) */ -/* { */ -/* wl.data = NULL; */ -/* fprintf(stderr, "mmap failed\n"); */ -/* goto end; */ -/* } */ - -/* pool = wl_shm_create_pool(wl.shm, fd, size); */ -/* wl.buffer = wl_shm_pool_create_buffer(pool, 0, width, height, stride, WL_SHM_FORMAT_XRGB8888); */ -/* wl_shm_pool_destroy(pool); */ - -/* end: */ -/* close(fd); */ -/* } */ - -static void -_surface_frame_handle_complete(void *data __UNUSED__, struct wl_callback *callback __UNUSED__, uint32_t time __UNUSED__) -{ - wl_surface_damage(wl.surface, 0, 0, wl.width, wl.height); - - if (wl.frame_callback) - wl_callback_destroy(wl.frame_callback); - - wl.frame_callback = wl_surface_frame(wl.surface); - wl_callback_add_listener(wl.frame_callback, &_surface_frame_listener, NULL); - - wl_surface_commit(wl.surface); -} -