util/matrix: Rework matrix_projection to compute transform on-demand

This commit is contained in:
Alexander Orzechowski 2025-01-27 14:30:13 -05:00
parent 99b6084fcd
commit 7775f55e3a
5 changed files with 19 additions and 22 deletions

View file

@ -620,7 +620,9 @@ static void render_pass_add_rect(struct wlr_render_pass *wlr_pass,
case WLR_RENDER_BLEND_MODE_PREMULTIPLIED:;
float matrix[9];
wlr_matrix_project_box(matrix, &box);
wlr_matrix_multiply(matrix, pass->projection, matrix);
matrix_projection(matrix,
pass->render_buffer->wlr_buffer->width,
pass->render_buffer->wlr_buffer->height);
struct wlr_vk_render_format_setup *setup = pass->srgb_pathway ?
pass->render_buffer->srgb.render_setup :
@ -711,7 +713,9 @@ static void render_pass_add_texture(struct wlr_render_pass *wlr_pass,
float matrix[9];
wlr_matrix_project_box(matrix, &dst_box);
wlr_matrix_transform(matrix, options->transform);
wlr_matrix_multiply(matrix, pass->projection, matrix);
matrix_projection(matrix,
pass->render_buffer->wlr_buffer->width,
pass->render_buffer->wlr_buffer->height);
struct wlr_vk_vert_pcr_data vert_pcr_data = {
.uv_off = {
@ -1131,8 +1135,6 @@ struct wlr_vk_render_pass *vulkan_begin_render_pass(struct wlr_vk_renderer *rend
.maxDepth = 1,
});
matrix_projection(pass->projection, width, height);
wlr_buffer_lock(buffer->wlr_buffer);
pass->render_buffer = buffer;
pass->command_buffer = cb;