render/pass: accept fractional destination coordinates

Signed-off-by: Loukas Agorgianitis <loukas@agorgianitis.com>
This commit is contained in:
Loukas Agorgianitis 2025-12-08 11:47:15 +02:00
parent 91c08d5a53
commit 5a49f2ae14
No known key found for this signature in database
GPG key ID: DDC6FA7D5BB332E6
13 changed files with 79 additions and 47 deletions

View file

@ -4,6 +4,7 @@
#include <wayland-server-protocol.h>
struct wlr_box;
struct wlr_fbox;
/** Writes the identity matrix into mat */
void wlr_matrix_identity(float mat[static 9]);
@ -27,7 +28,7 @@ void wlr_matrix_transform(float mat[static 9],
* specified wlr_box onto a given orthographic projection with a given
* rotation. The result is written to mat, which can be applied to each
* coordinate of the box to get a new coordinate from [-1,1]. */
void wlr_matrix_project_box(float mat[static 9], const struct wlr_box *box,
void wlr_matrix_project_box(float mat[static 9], const struct wlr_fbox *box,
enum wl_output_transform transform, const float projection[static 9]);
/**

View file

@ -76,10 +76,10 @@ struct wlr_render_timer_impl {
void wlr_render_texture_options_get_src_box(const struct wlr_render_texture_options *options,
struct wlr_fbox *box);
void wlr_render_texture_options_get_dst_box(const struct wlr_render_texture_options *options,
struct wlr_box *box);
struct wlr_fbox *box);
float wlr_render_texture_options_get_alpha(const struct wlr_render_texture_options *options);
void wlr_render_rect_options_get_box(const struct wlr_render_rect_options *options,
const struct wlr_buffer *buffer, struct wlr_box *box);
const struct wlr_buffer *buffer, struct wlr_fbox *box);
void wlr_texture_read_pixels_options_get_src_box(
const struct wlr_texture_read_pixels_options *options,

View file

@ -90,7 +90,7 @@ struct wlr_render_texture_options {
/* Source coordinates, leave empty to render the whole texture */
struct wlr_fbox src_box;
/* Destination coordinates, width/height default to the texture size */
struct wlr_box dst_box;
struct wlr_fbox dst_box;
/* Opacity between 0 (transparent) and 1 (opaque), leave NULL for opaque */
const float *alpha;
/* Clip region, leave NULL to disable clipping */
@ -140,7 +140,7 @@ struct wlr_render_color {
struct wlr_render_rect_options {
/* Rectangle coordinates */
struct wlr_box box;
struct wlr_fbox box;
/* Source color */
struct wlr_render_color color;
/* Clip region, leave NULL to disable clipping */