Merge pull request #136 from guidocella/presentation-time

implement the presentation time protocol
This commit is contained in:
Devin J. Pohly 2021-08-14 07:53:26 -04:00 committed by GitHub
commit 1183a319a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

6
dwl.c
View File

@ -29,6 +29,7 @@
#include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_output_management_v1.h> #include <wlr/types/wlr_output_management_v1.h>
#include <wlr/types/wlr_pointer.h> #include <wlr/types/wlr_pointer.h>
#include <wlr/types/wlr_presentation_time.h>
#include <wlr/types/wlr_primary_selection.h> #include <wlr/types/wlr_primary_selection.h>
#include <wlr/types/wlr_primary_selection_v1.h> #include <wlr/types/wlr_primary_selection_v1.h>
#include <wlr/types/wlr_screencopy_v1.h> #include <wlr/types/wlr_screencopy_v1.h>
@ -317,6 +318,7 @@ static struct wl_list independents;
static struct wlr_idle *idle; static struct wlr_idle *idle;
static struct wlr_layer_shell_v1 *layer_shell; static struct wlr_layer_shell_v1 *layer_shell;
static struct wlr_output_manager_v1 *output_mgr; static struct wlr_output_manager_v1 *output_mgr;
static struct wlr_presentation *presentation;
static struct wlr_virtual_keyboard_manager_v1 *virtual_keyboard_mgr; static struct wlr_virtual_keyboard_manager_v1 *virtual_keyboard_mgr;
static struct wlr_cursor *cursor; static struct wlr_cursor *cursor;
@ -1654,6 +1656,8 @@ render(struct wlr_surface *surface, int sx, int sy, void *data)
/* This lets the client know that we've displayed that frame and it can /* This lets the client know that we've displayed that frame and it can
* prepare another one now if it likes. */ * prepare another one now if it likes. */
wlr_surface_send_frame_done(surface, rdata->when); wlr_surface_send_frame_done(surface, rdata->when);
wlr_presentation_surface_sampled_on_output(presentation, surface, output);
} }
void void
@ -2117,6 +2121,8 @@ setup(void)
wl_signal_add(&output_mgr->events.apply, &output_mgr_apply); wl_signal_add(&output_mgr->events.apply, &output_mgr_apply);
wl_signal_add(&output_mgr->events.test, &output_mgr_test); wl_signal_add(&output_mgr->events.test, &output_mgr_test);
presentation = wlr_presentation_create(dpy, backend);
#ifdef XWAYLAND #ifdef XWAYLAND
/* /*
* Initialise the XWayland X server. * Initialise the XWayland X server.