output: improve transform matrix calculation

Compute only the transform matrix in the output. The projection matrix
will be calculated inside the gles2 renderer when we start rendering.

The goal is to help the pixman rendering process.
This commit is contained in:
Simon Zeni 2021-03-04 13:22:28 -05:00 committed by Simon Ser
parent 52e40025c4
commit 9601a2abf0
7 changed files with 50 additions and 18 deletions

View file

@ -141,8 +141,15 @@ void wlr_output_update_enabled(struct wlr_output *output, bool enabled) {
}
static void output_update_matrix(struct wlr_output *output) {
wlr_matrix_projection(output->transform_matrix, output->width,
output->height, output->transform);
float width = output->width / 2.f;
float height = output->height / 2.f;
wlr_matrix_identity(output->transform_matrix);
if (output->transform != WL_OUTPUT_TRANSFORM_NORMAL) {
wlr_matrix_translate(output->transform_matrix, width, height);
wlr_matrix_transform(output->transform_matrix, output->transform);
wlr_matrix_translate(output->transform_matrix, -width, -height);
}
}
void wlr_output_enable(struct wlr_output *output, bool enable) {