diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/wlr/interfaces/wlr_output.h | 5 | ||||
-rw-r--r-- | include/wlr/types/wlr_output.h | 9 | ||||
-rw-r--r-- | include/wlr/types/wlr_seat.h | 1 | ||||
-rw-r--r-- | include/wlr/xwayland.h | 6 |
4 files changed, 18 insertions, 3 deletions
diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h index d365e8f5..b4f39d35 100644 --- a/include/wlr/interfaces/wlr_output.h +++ b/include/wlr/interfaces/wlr_output.h @@ -2,6 +2,7 @@ #define WLR_INTERFACES_WLR_OUTPUT_H #include <stdbool.h> +#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> #include <wlr/backend.h> @@ -31,4 +32,8 @@ struct wl_global *wlr_output_create_global(struct wlr_output *wlr_output, struct wl_display *display); void wlr_output_destroy_global(struct wlr_output *wlr_output); +void wlr_output_transform_apply_to_box(enum wl_output_transform transform, + struct wlr_box *box, struct wlr_box *dest); +enum wl_output_transform wlr_output_transform_invert(enum wl_output_transform); + #endif diff --git a/include/wlr/types/wlr_output.h b/include/wlr/types/wlr_output.h index f9bce91f..e6323f9c 100644 --- a/include/wlr/types/wlr_output.h +++ b/include/wlr/types/wlr_output.h @@ -1,9 +1,9 @@ #ifndef WLR_TYPES_WLR_OUTPUT_H #define WLR_TYPES_WLR_OUTPUT_H +#include <stdbool.h> #include <wayland-util.h> #include <wayland-server.h> -#include <stdbool.h> struct wlr_output_mode { uint32_t flags; // enum wl_output_mode @@ -15,10 +15,12 @@ struct wlr_output_mode { struct wlr_output_cursor { struct wlr_output *output; int32_t x, y; + bool enabled; uint32_t width, height; int32_t hotspot_x, hotspot_y; struct wl_list link; + // only when using a software cursor without a surface struct wlr_renderer *renderer; struct wlr_texture *texture; @@ -44,8 +46,9 @@ struct wlr_output { uint32_t scale; int32_t width, height; int32_t phys_width, phys_height; // mm - int32_t subpixel; // enum wl_output_subpixel - int32_t transform; // enum wl_output_transform + enum wl_output_subpixel subpixel; + enum wl_output_transform transform; + bool needs_swap; float transform_matrix[16]; diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h index b1872a3d..b8b467d2 100644 --- a/include/wlr/types/wlr_seat.h +++ b/include/wlr/types/wlr_seat.h @@ -142,6 +142,7 @@ struct wlr_seat { struct wlr_seat_pointer_request_set_cursor_event { struct wlr_seat_client *seat_client; struct wlr_surface *surface; + uint32_t serial; int32_t hotspot_x, hotspot_y; }; diff --git a/include/wlr/xwayland.h b/include/wlr/xwayland.h index 2d968133..bea97394 100644 --- a/include/wlr/xwayland.h +++ b/include/wlr/xwayland.h @@ -12,6 +12,7 @@ #endif struct wlr_xwm; +struct wlr_xwayland_cursor; struct wlr_xwayland { pid_t pid; @@ -25,6 +26,7 @@ struct wlr_xwayland { struct wl_event_source *sigusr1_source; struct wl_listener destroy_listener; struct wlr_xwm *xwm; + struct wlr_xwayland_cursor *cursor; struct { struct wl_signal new_surface; @@ -148,6 +150,10 @@ struct wlr_xwayland *wlr_xwayland_create(struct wl_display *wl_display, void wlr_xwayland_destroy(struct wlr_xwayland *wlr_xwayland); +void wlr_xwayland_set_cursor(struct wlr_xwayland *wlr_xwayland, + uint8_t *pixels, uint32_t stride, uint32_t width, uint32_t height, + int32_t hotspot_x, int32_t hotspot_y); + void wlr_xwayland_surface_activate(struct wlr_xwayland *wlr_xwayland, struct wlr_xwayland_surface *surface, bool activated); |