e_surface: Add e_surface_frame_done_send 91/316391/1
authorSeunghun Lee <shiin.lee@samsung.com>
Mon, 19 Aug 2024 23:39:32 +0000 (08:39 +0900)
committerTizen Window System <tizen.windowsystem@gmail.com>
Tue, 20 Aug 2024 23:51:18 +0000 (08:51 +0900)
Now we can use it to send frame done event.

Change-Id: I3678dde899e5e4e78f395366a202901064c7a17f

src/bin/server/e_compositor.c
src/bin/server/e_compositor_intern.h

index ecfd480aedbf870e9a9d7f7e1ad1bf1720403355..6232f68f558971e246aa265115de136bd033c04e 100644 (file)
@@ -616,6 +616,19 @@ e_surface_has_subsurfaces(E_Surface *surface)
       !wl_list_empty(&surface->ds_surface->current.subsurfaces_below);
 }
 
+EINTERN void
+e_surface_frame_done_send(E_Surface *surface)
+{
+   struct wl_resource *resource;
+   Eina_List *l, *ll;
+
+   EINA_LIST_FOREACH_SAFE(surface->base.frames, l, ll, resource)
+     {
+        wl_callback_send_done(resource, (unsigned int)(ecore_loop_time_get() * 1000));
+        wl_resource_destroy(resource);
+     }
+}
+
 EINTERN E_Subsurface *
 e_subsurface_try_from_surface(E_Surface *surface)
 {
index 40bb8236928b56906e3f35351accdd0ed8a4ae08..6b771ae9cf7922d822fa84986898ee3022c826fa 100644 (file)
@@ -44,6 +44,7 @@ void e_surface_map(E_Surface *surface);
 void e_surface_unmap(E_Surface *surface);
 Eina_Bool e_surface_is_mapped(E_Surface *surface);
 Eina_Bool e_surface_has_subsurfaces(E_Surface *surface);
+void e_surface_frame_done_send(E_Surface *surface);
 
 E_Subsurface *e_subsurface_create(struct wl_resource *factory_resource, uint32_t id, E_Surface *surface, E_Surface *parent);
 E_Subsurface *e_subsurface_from_resource(struct wl_resource *resource);