output: Add commit sequence number
This allows synchronisation between different instances of commit/precommit callbacks.
This commit is contained in:
parent
d113e48a2a
commit
5d8bd4d343
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue