diff options
author | Dudemanguy <random342@airmail.cc> | 2021-06-26 16:12:03 -0500 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2021-06-26 17:24:44 -0500 |
commit | 488581912d01a982f226162eef19ad8aec0c8ead (patch) | |
tree | 3b5aa34fe9afa52b9573b10c5f20448952712b73 /video/out/wayland_common.h | |
parent | 76a53f9de3592c435def1d020fab4a05f88a14e0 (diff) | |
download | mpv-488581912d01a982f226162eef19ad8aec0c8ead.tar.bz2 mpv-488581912d01a982f226162eef19ad8aec0c8ead.tar.xz |
wayland: reorganize wayland common code
Mostly a cosmetic change that (hopefully) makes things look better. Some
functions and structs that were previously being exported in the wayland
header were made static to the wayland_common.c file (these shouldn't be
accessed by anyone else).
Diffstat (limited to 'video/out/wayland_common.h')
-rw-r--r-- | video/out/wayland_common.h | 131 |
1 files changed, 54 insertions, 77 deletions
diff --git a/video/out/wayland_common.h b/video/out/wayland_common.h index bbdfdf82d2..f6075ae4cf 100644 --- a/video/out/wayland_common.h +++ b/video/out/wayland_common.h @@ -19,11 +19,8 @@ #define MPLAYER_WAYLAND_COMMON_H #include <wayland-client.h> -#include <wayland-cursor.h> -#include <xkbcommon/xkbcommon.h> - -#include "vo.h" #include "input/event.h" +#include "vo.h" struct wayland_opts { int disable_vsync; @@ -31,85 +28,66 @@ struct wayland_opts { int edge_pixels_touch; }; -struct vo_wayland_sync { - int64_t ust; - int64_t msc; - int64_t sbc; - bool filled; -}; - -struct vo_wayland_output { - struct vo_wayland_state *wl; - uint32_t id; - struct wl_output *output; - struct mp_rect geometry; - int phys_width; - int phys_height; - int scale; - uint32_t flags; - double refresh_rate; - char *make; - char *model; - bool has_surface; - struct wl_list link; -}; - struct vo_wayland_state { - struct mp_log *log; - struct vo *vo; - struct wl_display *display; - struct wl_shm *shm; - struct wl_compositor *compositor; - struct wl_registry *registry; - struct wayland_opts *opts; - struct m_config_cache *vo_opts_cache; - struct mp_vo_opts *vo_opts; - - /* State */ + struct mp_log *log; + struct mp_vo_opts *vo_opts; + struct vo *vo; + struct wayland_opts *opts; + struct wl_callback *frame_callback; + struct wl_compositor *compositor; + struct wl_display *display; + struct wl_registry *registry; + struct wl_shm *shm; + struct wl_surface *surface; + + /* Geometry */ struct mp_rect geometry; - struct mp_rect window_size; struct mp_rect vdparams; + struct mp_rect window_size; + struct wl_list output_list; + struct vo_wayland_output *current_output; int gcd; - int reduced_width; int reduced_height; + int reduced_width; + int toplevel_width; + int toplevel_height; + + /* State */ + bool activated; + bool has_keyboard_input; + bool focused; bool frame_wait; bool render; bool state_change; bool toplevel_configured; - bool activated; - bool has_keyboard_input; - bool focused; - int timeout_count; - int wakeup_pipe[2]; - int pending_vo_events; - int mouse_x; - int mouse_y; + int display_fd; int mouse_unscaled_x; int mouse_unscaled_y; + int mouse_x; + int mouse_y; + int pending_vo_events; int scaling; + int timeout_count; int touch_entries; - int toplevel_width; - int toplevel_height; - uint32_t pointer_id; - int display_fd; - struct wl_callback *frame_callback; - struct wl_list output_list; - struct vo_wayland_output *current_output; + int wakeup_pipe[2]; + + /* idle-inhibit */ + struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager; + struct zwp_idle_inhibitor_v1 *idle_inhibitor; + + /* xdg-decoration */ + struct zxdg_decoration_manager_v1 *xdg_decoration_manager; + struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration; - /* Shell */ - struct wl_surface *surface; + /* xdg-shell */ struct xdg_wm_base *wm_base; - struct xdg_toplevel *xdg_toplevel; struct xdg_surface *xdg_surface; + struct xdg_toplevel *xdg_toplevel; + + /* presentation-time */ struct wp_presentation *presentation; struct wp_presentation_feedback *feedback; - struct zxdg_decoration_manager_v1 *xdg_decoration_manager; - struct zxdg_toplevel_decoration_v1 *xdg_toplevel_decoration; - struct zwp_idle_inhibit_manager_v1 *idle_inhibit_manager; - struct zwp_idle_inhibitor_v1 *idle_inhibitor; - - /* Presentation Feedback */ struct vo_wayland_sync *sync; int sync_size; int64_t last_ust; @@ -120,43 +98,42 @@ struct vo_wayland_state { int64_t vsync_duration; /* Input */ - uint32_t keyboard_code; - struct wl_seat *seat; + struct wl_keyboard *keyboard; struct wl_pointer *pointer; + struct wl_seat *seat; struct wl_touch *touch; - struct wl_keyboard *keyboard; struct xkb_context *xkb_context; struct xkb_keymap *xkb_keymap; struct xkb_state *xkb_state; + uint32_t keyboard_code; /* DND */ - struct wl_data_device_manager *dnd_devman; struct wl_data_device *dnd_ddev; + struct wl_data_device_manager *dnd_devman; struct wl_data_offer *dnd_offer; enum mp_dnd_action dnd_action; char *dnd_mime_type; - int dnd_mime_score; int dnd_fd; + int dnd_mime_score; /* Cursor */ struct wl_cursor_theme *cursor_theme; struct wl_cursor *default_cursor; struct wl_surface *cursor_surface; - int allocated_cursor_scale; bool cursor_visible; + int allocated_cursor_scale; + uint32_t pointer_id; }; +int vo_wayland_control(struct vo *vo, int *events, int request, void *arg); int vo_wayland_init(struct vo *vo); int vo_wayland_reconfig(struct vo *vo); -int vo_wayland_control(struct vo *vo, int *events, int request, void *arg); -int last_available_sync(struct vo_wayland_state *wl); + +void vo_wayland_set_opaque_region(struct vo_wayland_state *wl, int alpha); +void vo_wayland_sync_swap(struct vo_wayland_state *wl); void vo_wayland_uninit(struct vo *vo); -void vo_wayland_wakeup(struct vo *vo); void vo_wayland_wait_events(struct vo *vo, int64_t until_time_us); void vo_wayland_wait_frame(struct vo_wayland_state *wl); -void vo_wayland_set_opaque_region(struct vo_wayland_state *wl, int alpha); -void wayland_sync_swap(struct vo_wayland_state *wl); -void vo_wayland_sync_shift(struct vo_wayland_state *wl); -void queue_new_sync(struct vo_wayland_state *wl); +void vo_wayland_wakeup(struct vo *vo); #endif /* MPLAYER_WAYLAND_COMMON_H */ |