mirror of
https://github.com/swaywm/sway.git
synced 2026-04-20 06:47:03 -04:00
Add support for tearing-control-v1
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3871
This commit is contained in:
parent
b881c2e84c
commit
85c2167063
20 changed files with 250 additions and 3 deletions
|
|
@ -184,6 +184,7 @@ sway_cmd cmd_sticky;
|
|||
sway_cmd cmd_swaybg_command;
|
||||
sway_cmd cmd_swaynag_command;
|
||||
sway_cmd cmd_swap;
|
||||
sway_cmd cmd_tearing_allowed;
|
||||
sway_cmd cmd_tiling_drag;
|
||||
sway_cmd cmd_tiling_drag_threshold;
|
||||
sway_cmd cmd_title_align;
|
||||
|
|
@ -297,6 +298,7 @@ sway_cmd output_cmd_render_bit_depth;
|
|||
sway_cmd output_cmd_scale;
|
||||
sway_cmd output_cmd_scale_filter;
|
||||
sway_cmd output_cmd_subpixel;
|
||||
sway_cmd output_cmd_tearing_allowed;
|
||||
sway_cmd output_cmd_toggle;
|
||||
sway_cmd output_cmd_transform;
|
||||
sway_cmd output_cmd_unplug;
|
||||
|
|
|
|||
|
|
@ -289,6 +289,7 @@ struct output_config {
|
|||
enum render_bit_depth render_bit_depth;
|
||||
bool set_color_transform;
|
||||
struct wlr_color_transform *color_transform;
|
||||
int tearing_allowed;
|
||||
|
||||
char *background;
|
||||
char *background_option;
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ struct sway_output {
|
|||
int max_render_time; // In milliseconds
|
||||
struct wl_event_source *repaint_timer;
|
||||
bool gamma_lut_changed;
|
||||
bool tearing_allowed;
|
||||
};
|
||||
|
||||
struct sway_output_non_desktop {
|
||||
|
|
|
|||
|
|
@ -115,6 +115,10 @@ struct sway_server {
|
|||
struct wl_listener xdg_activation_v1_new_token;
|
||||
|
||||
struct wl_listener request_set_cursor_shape;
|
||||
|
||||
struct wlr_tearing_control_manager_v1 *tearing_control_v1;
|
||||
struct wl_listener tearing_control_new_object;
|
||||
struct wl_list tearing_controllers; // sway_tearing_controller::link
|
||||
|
||||
struct wl_list pending_launcher_ctxs; // launcher_ctx::link
|
||||
|
||||
|
|
@ -182,4 +186,6 @@ void xdg_activation_v1_handle_new_token(struct wl_listener *listener,
|
|||
|
||||
void set_rr_scheduling(void);
|
||||
|
||||
void handle_new_tearing_hint(struct wl_listener *listener, void *data);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -34,6 +34,12 @@ enum sway_view_prop {
|
|||
#endif
|
||||
};
|
||||
|
||||
enum sway_view_tearing_mode {
|
||||
TEARING_OVERRIDE_FALSE,
|
||||
TEARING_OVERRIDE_TRUE,
|
||||
TEARING_WINDOW_HINT,
|
||||
};
|
||||
|
||||
struct sway_view_impl {
|
||||
void (*get_constraints)(struct sway_view *view, double *min_width,
|
||||
double *max_width, double *min_height, double *max_height);
|
||||
|
|
@ -111,6 +117,9 @@ struct sway_view {
|
|||
int max_render_time; // In milliseconds
|
||||
|
||||
enum seat_config_shortcuts_inhibit shortcuts_inhibit;
|
||||
|
||||
enum sway_view_tearing_mode tearing_mode;
|
||||
bool tearing_hint;
|
||||
};
|
||||
|
||||
struct sway_xdg_shell_view {
|
||||
|
|
@ -335,4 +344,6 @@ void view_assign_ctx(struct sway_view *view, struct launcher_ctx *ctx);
|
|||
|
||||
void view_send_frame_done(struct sway_view *view);
|
||||
|
||||
bool view_can_tear(struct sway_view *view);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue