output: add present event

This commit is contained in:
emersion 2018-09-29 22:38:13 +02:00
parent 3aad9fd6a9
commit 78389fe722
4 changed files with 37 additions and 2 deletions

View file

@ -45,5 +45,7 @@ void wlr_output_update_enabled(struct wlr_output *output, bool enabled);
void wlr_output_update_needs_swap(struct wlr_output *output);
void wlr_output_damage_whole(struct wlr_output *output);
void wlr_output_send_frame(struct wlr_output *output);
void wlr_output_send_present(struct wlr_output *output, struct timespec *when,
unsigned seq, uint32_t flags);
#endif

View file

@ -91,6 +91,7 @@ struct wlr_output {
struct wl_signal frame;
struct wl_signal needs_swap;
struct wl_signal swap_buffers; // wlr_output_event_swap_buffers
struct wl_signal present; // wlr_output_event_present
struct wl_signal enable;
struct wl_signal mode;
struct wl_signal scale;
@ -123,6 +124,19 @@ struct wlr_output_event_swap_buffers {
pixman_region32_t *damage;
};
enum wlr_output_present_flag {
WLR_OUTPUT_PRESENT_VSYNC = 0x1,
WLR_OUTPUT_PRESENT_HW_CLOCK = 0x2,
WLR_OUTPUT_PRESENT_HW_COMPLETION = 0x4,
};
struct wlr_output_event_present {
struct wlr_output *output;
struct timespec *when;
unsigned seq;
uint32_t flags; // enum wlr_output_present_flag
};
struct wlr_surface;
/**