output: Add commit sequence number

This allows synchronisation between different instances of commit/precommit
callbacks.
This commit is contained in:
Andri Yngvason 2019-10-19 14:46:24 +00:00 committed by Drew DeVault
parent d113e48a2a
commit 5d8bd4d343
2 changed files with 5 additions and 0 deletions

View File

@ -114,6 +114,9 @@ struct wlr_output {
struct wlr_output_state pending; struct wlr_output_state pending;
// Commit sequence number. Incremented on each commit, may overflow.
uint32_t commit_seq;
struct { struct {
// Request to render a frame // Request to render a frame
struct wl_signal frame; struct wl_signal frame;

View File

@ -311,6 +311,7 @@ void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend,
wl_list_init(&output->modes); wl_list_init(&output->modes);
output->transform = WL_OUTPUT_TRANSFORM_NORMAL; output->transform = WL_OUTPUT_TRANSFORM_NORMAL;
output->scale = 1; output->scale = 1;
output->commit_seq = 0;
wl_list_init(&output->cursors); wl_list_init(&output->cursors);
wl_list_init(&output->resources); wl_list_init(&output->resources);
wl_signal_init(&output->events.frame); wl_signal_init(&output->events.frame);
@ -500,6 +501,7 @@ bool wlr_output_commit(struct wlr_output *output) {
output->needs_frame = false; output->needs_frame = false;
output_state_clear(&output->pending); output_state_clear(&output->pending);
pixman_region32_clear(&output->damage); pixman_region32_clear(&output->damage);
output->commit_seq++;
return true; return true;
} }