Advertisement
Guest User

Untitled

a guest
May 26th, 2023
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. static void wl_surface_frame_done(void *data, struct wl_callback *cb, uint32_t time)
  2. {
  3. gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
  4.  
  5. wl->swap_complete = true;
  6.  
  7. /* Destroy this callback */
  8. wl_callback_destroy(cb);
  9. }
  10.  
  11. static const struct wl_callback_listener wl_surface_frame_listener = {
  12. .done = wl_surface_frame_done,
  13. };
  14.  
  15. static void gfx_ctx_wl_swap_buffers(void *data)
  16. {
  17. gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
  18.  
  19. struct wl_callback *cb = wl_surface_frame(wl->surface);
  20.  
  21. wl_callback_add_listener(cb, &wl_surface_frame_listener, &wl);
  22.  
  23. wl->swap_complete = false;
  24.  
  25. egl_swap_buffers(&wl->egl);
  26.  
  27. //while (!wl->swap_complete && wl_display_dispatch(wl->input.dpy)) {}
  28.  
  29. while (!wl->swap_complete) {
  30. int ret = wl_display_dispatch(wl->input.dpy);
  31. if (!ret)
  32. break;
  33. }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement