diff --git a/include/util/matrix.h b/include/util/matrix.h index 059a3bb1f..e6197cecc 100644 --- a/include/util/matrix.h +++ b/include/util/matrix.h @@ -24,11 +24,11 @@ void wlr_matrix_transform(float mat[static 9], enum wl_output_transform transform); /** Shortcut for the various matrix operations involved in projecting the - * 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, - enum wl_output_transform transform, const float projection[static 9]); + * specified wlr_box onto a given orthographic projection. 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); /** * Writes a 2D orthographic projection matrix to mat of (width, height) with a diff --git a/render/vulkan/pass.c b/render/vulkan/pass.c index 032fcc7b2..92c771f06 100644 --- a/render/vulkan/pass.c +++ b/render/vulkan/pass.c @@ -618,9 +618,8 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass, switch (options->blend_mode) { case WLR_RENDER_BLEND_MODE_PREMULTIPLIED:; - float proj[9], matrix[9]; - wlr_matrix_identity(proj); - wlr_matrix_project_box(matrix, &box, WL_OUTPUT_TRANSFORM_NORMAL, proj); + float matrix[9]; + wlr_matrix_project_box(matrix, &box); wlr_matrix_multiply(matrix, pass->projection, matrix); struct wlr_vk_render_format_setup *setup = pass->srgb_pathway ? @@ -709,9 +708,9 @@ static void render_pass_add_texture(struct wlr_render_pass *wlr_pass, wlr_render_texture_options_get_dst_box(options, &dst_box); float alpha = wlr_render_texture_options_get_alpha(options); - float proj[9], matrix[9]; - wlr_matrix_identity(proj); - wlr_matrix_project_box(matrix, &dst_box, options->transform, proj); + float matrix[9]; + wlr_matrix_project_box(matrix, &dst_box); + wlr_matrix_transform(matrix, options->transform); wlr_matrix_multiply(matrix, pass->projection, matrix); struct wlr_vk_vert_pcr_data vert_pcr_data = { diff --git a/util/matrix.c b/util/matrix.c index 7fdd1fae0..d049b6ce3 100644 --- a/util/matrix.c +++ b/util/matrix.c @@ -119,8 +119,7 @@ void matrix_projection(float mat[static 9], int width, int height, mat[8] = 1.0f; } -void wlr_matrix_project_box(float mat[static 9], const struct wlr_box *box, - enum wl_output_transform transform, const float projection[static 9]) { +void wlr_matrix_project_box(float mat[static 9], const struct wlr_box *box) { int x = box->x; int y = box->y; int width = box->width; @@ -130,10 +129,4 @@ void wlr_matrix_project_box(float mat[static 9], const struct wlr_box *box, wlr_matrix_translate(mat, x, y); wlr_matrix_scale(mat, width, height); - - if (transform != WL_OUTPUT_TRANSFORM_NORMAL) { - wlr_matrix_transform(mat, transform); - } - - wlr_matrix_multiply(mat, projection, mat); }