egl/wayland: Update to per-surface frame events
This commit is contained in:
committed by
Kristian Høgsberg
parent
b27f206b0c
commit
f05751aa2a
@@ -429,7 +429,7 @@ wayland_create_buffer(struct dri2_egl_surface *dri2_surf, __DRIbuffer *buffer)
|
||||
}
|
||||
|
||||
static void
|
||||
wayland_frame_callback(void *data, uint32_t time)
|
||||
wayland_frame_callback(struct wl_surface *surface, void *data, uint32_t time)
|
||||
{
|
||||
struct dri2_egl_surface *dri2_surf = data;
|
||||
|
||||
@@ -459,7 +459,8 @@ dri2_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw)
|
||||
|
||||
dri2_surf->block_swap_buffers = EGL_TRUE;
|
||||
wl_display_frame_callback(dri2_dpy->wl_dpy->display,
|
||||
wayland_frame_callback, dri2_surf);
|
||||
dri2_surf->wl_win->surface,
|
||||
wayland_frame_callback, dri2_surf);
|
||||
|
||||
if (dri2_surf->type == DRI2_WINDOW_SURFACE) {
|
||||
pointer_swap(
|
||||
|
||||
@@ -280,7 +280,7 @@ wayland_surface_validate(struct native_surface *nsurf, uint attachment_mask,
|
||||
}
|
||||
|
||||
static void
|
||||
wayland_frame_callback(void *data, uint32_t time)
|
||||
wayland_frame_callback(struct wl_surface *surf, void *data, uint32_t time)
|
||||
{
|
||||
struct wayland_surface *surface = data;
|
||||
|
||||
@@ -307,8 +307,8 @@ wayland_surface_swap_buffers(struct native_surface *nsurf)
|
||||
wl_display_iterate(display->dpy->display, WL_DISPLAY_READABLE);
|
||||
|
||||
surface->block_swap_buffers = TRUE;
|
||||
wl_display_frame_callback(display->dpy->display, wayland_frame_callback,
|
||||
surface);
|
||||
wl_display_frame_callback(display->dpy->display, surface->win->surface,
|
||||
wayland_frame_callback, surface);
|
||||
|
||||
if (surface->type == WL_WINDOW_SURFACE) {
|
||||
resource_surface_swap_buffers(surface->rsurf,
|
||||
|
||||
Reference in New Issue
Block a user