diff options
35 files changed, 80 insertions, 62 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c index b6b4baf6..fb498a5d 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -17,6 +17,7 @@ #include <wlr/interfaces/wlr_output.h> #include <wlr/render/wlr_renderer.h> #include <wlr/types/wlr_matrix.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <xf86drm.h> #include <xf86drmMode.h> diff --git a/examples/fullscreen-shell.c b/examples/fullscreen-shell.c index 52776c55..c4916a71 100644 --- a/examples/fullscreen-shell.c +++ b/examples/fullscreen-shell.c @@ -14,6 +14,7 @@ #include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output.h> #include <wlr/types/wlr_surface.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> /** diff --git a/examples/output-layout.c b/examples/output-layout.c index 121ea15b..356d5d56 100644 --- a/examples/output-layout.c +++ b/examples/output-layout.c @@ -17,6 +17,7 @@ #include <wlr/types/wlr_input_device.h> #include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <xkbcommon/xkbcommon.h> #include "cat.h" diff --git a/examples/quads.c b/examples/quads.c index 8745706e..6696ef7c 100644 --- a/examples/quads.c +++ b/examples/quads.c @@ -14,6 +14,7 @@ #include <wlr/types/wlr_output.h> #include <wlr/types/wlr_input_device.h> #include <wlr/types/wlr_matrix.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <xkbcommon/xkbcommon.h> diff --git a/examples/tablet.c b/examples/tablet.c index 7d82f441..5d0e8dcc 100644 --- a/examples/tablet.c +++ b/examples/tablet.c @@ -9,13 +9,13 @@ #include <wlr/backend.h> #include <wlr/backend/session.h> #include <wlr/render/wlr_renderer.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_matrix.h> #include <wlr/types/wlr_output.h> #include <wlr/types/wlr_input_device.h> #include <wlr/types/wlr_keyboard.h> #include <wlr/types/wlr_tablet_pad.h> #include <wlr/types/wlr_tablet_tool.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <xkbcommon/xkbcommon.h> diff --git a/include/backend/wayland.h b/include/backend/wayland.h index 5d69c248..6f4fa201 100644 --- a/include/backend/wayland.h +++ b/include/backend/wayland.h @@ -8,7 +8,6 @@ #include <wlr/backend/wayland.h> #include <wlr/render/wlr_renderer.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_pointer.h> #include <wlr/render/drm_format_set.h> diff --git a/include/wlr/interfaces/wlr_output.h b/include/wlr/interfaces/wlr_output.h index 83a8c321..83d1b58a 100644 --- a/include/wlr/interfaces/wlr_output.h +++ b/include/wlr/interfaces/wlr_output.h @@ -11,7 +11,6 @@ #include <stdbool.h> #include <wlr/backend.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> /** diff --git a/include/wlr/render/interface.h b/include/wlr/render/interface.h index 1e355d43..b3a21b0b 100644 --- a/include/wlr/render/interface.h +++ b/include/wlr/render/interface.h @@ -13,10 +13,12 @@ #include <wayland-server-core.h> #include <wlr/render/wlr_renderer.h> #include <wlr/render/wlr_texture.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> #include <wlr/render/dmabuf.h> +struct wlr_box; +struct wlr_fbox; + struct wlr_renderer_impl { bool (*bind_buffer)(struct wlr_renderer *renderer, struct wlr_buffer *buffer); diff --git a/include/wlr/render/wlr_renderer.h b/include/wlr/render/wlr_renderer.h index 4a98443f..bae2fa97 100644 --- a/include/wlr/render/wlr_renderer.h +++ b/include/wlr/render/wlr_renderer.h @@ -13,7 +13,6 @@ #include <wayland-server-core.h> #include <wlr/backend.h> #include <wlr/render/wlr_texture.h> -#include <wlr/types/wlr_box.h> enum wlr_renderer_read_pixels_flags { WLR_RENDERER_READ_PIXELS_Y_INVERT = 1, @@ -22,6 +21,8 @@ enum wlr_renderer_read_pixels_flags { struct wlr_renderer_impl; struct wlr_drm_format_set; struct wlr_buffer; +struct wlr_box; +struct wlr_fbox; struct wlr_renderer { const struct wlr_renderer_impl *impl; diff --git a/include/wlr/types/wlr_box.h b/include/wlr/types/wlr_box.h index 2a407c4d..8720cef8 100644 --- a/include/wlr/types/wlr_box.h +++ b/include/wlr/types/wlr_box.h @@ -1,42 +1,7 @@ -/* - * This an unstable interface of wlroots. No guarantees are made regarding the - * future consistency of this API. - */ -#ifndef WLR_USE_UNSTABLE -#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features" -#endif - #ifndef WLR_TYPES_WLR_BOX_H #define WLR_TYPES_WLR_BOX_H -#include <pixman.h> -#include <stdbool.h> -#include <wayland-server-protocol.h> - -struct wlr_box { - int x, y; - int width, height; -}; - -struct wlr_fbox { - double x, y; - double width, height; -}; - -void wlr_box_closest_point(const struct wlr_box *box, double x, double y, - double *dest_x, double *dest_y); - -bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a, - const struct wlr_box *box_b); - -bool wlr_box_contains_point(const struct wlr_box *box, double x, double y); - -bool wlr_box_empty(const struct wlr_box *box); - -/** - * Transforms a box inside a `width` x `height` box. - */ -void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box, - enum wl_output_transform transform, int width, int height); +#warning "wlr_box has been moved to wlr/util/box.h" +#include <wlr/util/box.h> #endif diff --git a/include/wlr/types/wlr_cursor.h b/include/wlr/types/wlr_cursor.h index 58ce8505..71eddc43 100644 --- a/include/wlr/types/wlr_cursor.h +++ b/include/wlr/types/wlr_cursor.h @@ -10,7 +10,6 @@ #define WLR_TYPES_WLR_CURSOR_H #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_input_device.h> #include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output.h> @@ -26,6 +25,7 @@ * the screen, and so on. */ +struct wlr_box; struct wlr_cursor_state; struct wlr_cursor { diff --git a/include/wlr/types/wlr_layer_shell_v1.h b/include/wlr/types/wlr_layer_shell_v1.h index 3b214dc9..846b9466 100644 --- a/include/wlr/types/wlr_layer_shell_v1.h +++ b/include/wlr/types/wlr_layer_shell_v1.h @@ -8,10 +8,10 @@ #ifndef WLR_TYPES_WLR_LAYER_SHELL_V1_H #define WLR_TYPES_WLR_LAYER_SHELL_V1_H + #include <stdbool.h> #include <stdint.h> #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_surface.h> #include "wlr-layer-shell-unstable-v1-protocol.h" diff --git a/include/wlr/types/wlr_matrix.h b/include/wlr/types/wlr_matrix.h index ede78cb1..1a8b5be5 100644 --- a/include/wlr/types/wlr_matrix.h +++ b/include/wlr/types/wlr_matrix.h @@ -16,8 +16,9 @@ #ifndef WLR_TYPES_WLR_MATRIX_H #define WLR_TYPES_WLR_MATRIX_H -#include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> +#include <wayland-server-protocol.h> + +struct wlr_box; /** Writes the identity matrix into mat */ void wlr_matrix_identity(float mat[static 9]); diff --git a/include/wlr/types/wlr_output_damage.h b/include/wlr/types/wlr_output_damage.h index e4b1f862..e7c609ed 100644 --- a/include/wlr/types/wlr_output_damage.h +++ b/include/wlr/types/wlr_output_damage.h @@ -11,7 +11,6 @@ #include <pixman.h> #include <time.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> /** @@ -21,6 +20,8 @@ */ #define WLR_OUTPUT_DAMAGE_PREVIOUS_LEN 2 +struct wlr_box; + /** * Tracks damage for an output. * diff --git a/include/wlr/types/wlr_output_layout.h b/include/wlr/types/wlr_output_layout.h index 4f4266e9..5cb742c6 100644 --- a/include/wlr/types/wlr_output_layout.h +++ b/include/wlr/types/wlr_output_layout.h @@ -11,9 +11,9 @@ #include <stdbool.h> #include <wayland-util.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> +struct wlr_box; struct wlr_output_layout_state; /** diff --git a/include/wlr/types/wlr_pointer_constraints_v1.h b/include/wlr/types/wlr_pointer_constraints_v1.h index 0c49e3bf..90438729 100644 --- a/include/wlr/types/wlr_pointer_constraints_v1.h +++ b/include/wlr/types/wlr_pointer_constraints_v1.h @@ -12,7 +12,6 @@ #include <stdint.h> #include <wayland-server-core.h> #include <pixman.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_seat.h> #include "pointer-constraints-unstable-v1-protocol.h" diff --git a/include/wlr/types/wlr_screencopy_v1.h b/include/wlr/types/wlr_screencopy_v1.h index 1c45f905..aaa300b3 100644 --- a/include/wlr/types/wlr_screencopy_v1.h +++ b/include/wlr/types/wlr_screencopy_v1.h @@ -11,7 +11,7 @@ #include <stdbool.h> #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> +#include <wlr/util/box.h> struct wlr_screencopy_manager_v1 { struct wl_global *global; diff --git a/include/wlr/types/wlr_surface.h b/include/wlr/types/wlr_surface.h index 72dc4b30..7668c83d 100644 --- a/include/wlr/types/wlr_surface.h +++ b/include/wlr/types/wlr_surface.h @@ -14,8 +14,8 @@ #include <stdint.h> #include <time.h> #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> +#include <wlr/util/box.h> enum wlr_surface_state_field { WLR_SURFACE_STATE_BUFFER = 1 << 0, diff --git a/include/wlr/types/wlr_xdg_shell.h b/include/wlr/types/wlr_xdg_shell.h index 856648f9..f80c6685 100644 --- a/include/wlr/types/wlr_xdg_shell.h +++ b/include/wlr/types/wlr_xdg_shell.h @@ -8,9 +8,10 @@ #ifndef WLR_TYPES_WLR_XDG_SHELL_H #define WLR_TYPES_WLR_XDG_SHELL_H -#include <wlr/types/wlr_box.h> -#include <wlr/types/wlr_seat.h> + #include <wayland-server-core.h> +#include <wlr/types/wlr_seat.h> +#include <wlr/util/box.h> #include "xdg-shell-protocol.h" struct wlr_xdg_shell { diff --git a/include/wlr/util/box.h b/include/wlr/util/box.h new file mode 100644 index 00000000..2a407c4d --- /dev/null +++ b/include/wlr/util/box.h @@ -0,0 +1,42 @@ +/* + * This an unstable interface of wlroots. No guarantees are made regarding the + * future consistency of this API. + */ +#ifndef WLR_USE_UNSTABLE +#error "Add -DWLR_USE_UNSTABLE to enable unstable wlroots features" +#endif + +#ifndef WLR_TYPES_WLR_BOX_H +#define WLR_TYPES_WLR_BOX_H + +#include <pixman.h> +#include <stdbool.h> +#include <wayland-server-protocol.h> + +struct wlr_box { + int x, y; + int width, height; +}; + +struct wlr_fbox { + double x, y; + double width, height; +}; + +void wlr_box_closest_point(const struct wlr_box *box, double x, double y, + double *dest_x, double *dest_y); + +bool wlr_box_intersection(struct wlr_box *dest, const struct wlr_box *box_a, + const struct wlr_box *box_b); + +bool wlr_box_contains_point(const struct wlr_box *box, double x, double y); + +bool wlr_box_empty(const struct wlr_box *box); + +/** + * Transforms a box inside a `width` x `height` box. + */ +void wlr_box_transform(struct wlr_box *dest, const struct wlr_box *box, + enum wl_output_transform transform, int width, int height); + +#endif diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index a31896bf..7ca08d9f 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -15,6 +15,7 @@ #include <wlr/types/wlr_drm.h> #include <wlr/types/wlr_matrix.h> #include <wlr/types/wlr_linux_dmabuf_v1.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "render/egl.h" #include "render/gles2.h" diff --git a/render/pixman/renderer.c b/render/pixman/renderer.c index 71af1939..ff9c0f3a 100644 --- a/render/pixman/renderer.c +++ b/render/pixman/renderer.c @@ -5,6 +5,7 @@ #include <wayland-server.h> #include <wlr/render/interface.h> #include <wlr/types/wlr_matrix.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "render/pixman.h" diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c index 2fa79b27..cf307bd3 100644 --- a/render/wlr_renderer.c +++ b/render/wlr_renderer.c @@ -5,6 +5,7 @@ #include <wlr/render/pixman.h> #include <wlr/render/wlr_renderer.h> #include <wlr/types/wlr_matrix.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <wlr/config.h> diff --git a/types/meson.build b/types/meson.build index cf644978..6a650035 100644 --- a/types/meson.build +++ b/types/meson.build @@ -16,7 +16,6 @@ wlr_files += files( 'xdg_shell/wlr_xdg_shell.c', 'xdg_shell/wlr_xdg_surface.c', 'xdg_shell/wlr_xdg_toplevel.c', - 'wlr_box.c', 'wlr_buffer.c', 'wlr_compositor.c', 'wlr_cursor.c', diff --git a/types/wlr_cursor.c b/types/wlr_cursor.c index aff7859d..2bc22668 100644 --- a/types/wlr_cursor.c +++ b/types/wlr_cursor.c @@ -10,6 +10,7 @@ #include <wlr/types/wlr_pointer.h> #include <wlr/types/wlr_tablet_tool.h> #include <wlr/types/wlr_touch.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "util/signal.h" diff --git a/types/wlr_matrix.c b/types/wlr_matrix.c index 775b991c..a1b2b31a 100644 --- a/types/wlr_matrix.c +++ b/types/wlr_matrix.c @@ -2,8 +2,8 @@ #include <string.h> #include <wayland-server-protocol.h> #include <wlr/types/wlr_matrix.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output.h> +#include <wlr/util/box.h> void wlr_matrix_identity(float mat[static 9]) { static const float identity[9] = { diff --git a/types/wlr_output.c b/types/wlr_output.c index 0e21fcf2..325b0233 100644 --- a/types/wlr_output.c +++ b/types/wlr_output.c @@ -9,11 +9,11 @@ #include <wlr/interfaces/wlr_output.h> #include <wlr/render/interface.h> #include <wlr/render/wlr_renderer.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_matrix.h> #include <wlr/types/wlr_output.h> #include <wlr/types/wlr_seat.h> #include <wlr/types/wlr_surface.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include <wlr/util/region.h> #include "backend/backend.h" diff --git a/types/wlr_output_damage.c b/types/wlr_output_damage.c index 76dac57f..b0655a65 100644 --- a/types/wlr_output_damage.c +++ b/types/wlr_output_damage.c @@ -2,9 +2,9 @@ #include <stdlib.h> #include <time.h> #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output_damage.h> #include <wlr/types/wlr_output.h> +#include <wlr/util/box.h> #include "util/signal.h" static void output_handle_destroy(struct wl_listener *listener, void *data) { diff --git a/types/wlr_output_layout.c b/types/wlr_output_layout.c index 3286b8f8..8c474387 100644 --- a/types/wlr_output_layout.c +++ b/types/wlr_output_layout.c @@ -2,9 +2,9 @@ #include <float.h> #include <limits.h> #include <stdlib.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_output_layout.h> #include <wlr/types/wlr_output.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "util/signal.h" diff --git a/types/wlr_pointer_constraints_v1.c b/types/wlr_pointer_constraints_v1.c index eca45984..d608b778 100644 --- a/types/wlr_pointer_constraints_v1.c +++ b/types/wlr_pointer_constraints_v1.c @@ -4,9 +4,9 @@ #include <stdbool.h> #include <stdlib.h> #include <wayland-server-core.h> -#include <wlr/types/wlr_box.h> #include <wlr/types/wlr_pointer_constraints_v1.h> #include <wlr/types/wlr_region.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "util/signal.h" diff --git a/types/wlr_screencopy_v1.c b/types/wlr_screencopy_v1.c index ba55bbe2..9469c53f 100644 --- a/types/wlr_screencopy_v1.c +++ b/types/wlr_screencopy_v1.c @@ -7,6 +7,7 @@ #include <wlr/types/wlr_linux_dmabuf_v1.h> #include <wlr/types/wlr_screencopy_v1.h> #include <wlr/backend.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "wlr-screencopy-unstable-v1-protocol.h" #include "render/pixel_format.h" diff --git a/types/xdg_shell/wlr_xdg_surface.c b/types/xdg_shell/wlr_xdg_surface.c index 0f85ac2d..33cf3319 100644 --- a/types/xdg_shell/wlr_xdg_surface.c +++ b/types/xdg_shell/wlr_xdg_surface.c @@ -1,6 +1,7 @@ #include <assert.h> #include <stdlib.h> #include <string.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> #include "types/wlr_xdg_shell.h" #include "util/signal.h" diff --git a/types/wlr_box.c b/util/box.c index 3e33ba97..b382716b 100644 --- a/types/wlr_box.c +++ b/util/box.c @@ -2,8 +2,7 @@ #include <math.h> #include <stdbool.h> #include <stdlib.h> -#include <wayland-server-protocol.h> -#include <wlr/types/wlr_box.h> +#include <wlr/util/box.h> #include <wlr/util/log.h> void wlr_box_closest_point(const struct wlr_box *box, double x, double y, diff --git a/util/meson.build b/util/meson.build index 5e31cbbe..c2b46749 100644 --- a/util/meson.build +++ b/util/meson.build @@ -1,5 +1,6 @@ wlr_files += files( 'array.c', + 'box.c', 'global.c', 'log.c', 'region.c', diff --git a/util/region.c b/util/region.c index f39f0469..817d7b1a 100644 --- a/util/region.c +++ b/util/region.c @@ -2,7 +2,6 @@ #include <math.h> #include <limits.h> #include <stdlib.h> -#include <wlr/types/wlr_box.h> #include <wlr/util/region.h> void wlr_region_scale(pixman_region32_t *dst, pixman_region32_t *src, |