Fix the pixman renderer with respect to output transforms
Commitfa1b3055
introducted a regression in the pixman renderer. In particular, it would not draw properly with any output transform other than normal, 180, 180-flipped, or 270-flipped. This patch fixes this regression. The weston-scalar program appears to work normally at all rotations with this patch. Therefore, this patch should fix the regression while maintaining the added functionality fromfa1b3055
. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
parent
97b52203aa
commit
50fba97ec6
@ -276,12 +276,8 @@ repaint_region(struct weston_view *ev, struct weston_output *output,
|
||||
pixman_double_to_fixed(viewport_y));
|
||||
}
|
||||
|
||||
pixman_transform_scale(&transform, NULL,
|
||||
pixman_double_to_fixed(ev->surface->buffer_viewport.scale),
|
||||
pixman_double_to_fixed(ev->surface->buffer_viewport.scale));
|
||||
|
||||
fw = pixman_int_to_fixed(pixman_image_get_width(ps->image));
|
||||
fh = pixman_int_to_fixed(pixman_image_get_height(ps->image));
|
||||
fw = pixman_int_to_fixed(ev->surface->width);
|
||||
fh = pixman_int_to_fixed(ev->surface->height);
|
||||
|
||||
switch (ev->surface->buffer_viewport.transform) {
|
||||
case WL_OUTPUT_TRANSFORM_FLIPPED:
|
||||
@ -317,6 +313,10 @@ repaint_region(struct weston_view *ev, struct weston_output *output,
|
||||
break;
|
||||
}
|
||||
|
||||
pixman_transform_scale(&transform, NULL,
|
||||
pixman_double_to_fixed(ev->surface->buffer_viewport.scale),
|
||||
pixman_double_to_fixed(ev->surface->buffer_viewport.scale));
|
||||
|
||||
pixman_image_set_transform(ps->image, &transform);
|
||||
|
||||
if (ev->transform.enabled || output->current_scale != ev->surface->buffer_viewport.scale)
|
||||
|
Loading…
Reference in New Issue
Block a user