mirror of
https://gitlab.freedesktop.org/wayland/weston
synced 2024-07-21 02:25:36 +00:00
ivi-shell: Avoid unnecessary scaling of the view transformation matrix
The opaque region of a weston view is updated only if the alpha value is 1 and the transform matrix is of type WESTON_MATRIX_TRANSFORM_TRANSLATE. While using ivi-shell, opaque region is never updated, as we are performing scaling operations to the view transform matrix, even when the scaling factor is 1 and thereby changing the type to WESTON_MATRIX_TRANSFORM_SCALE. Perform scaling of the view transformation matrix only when the scaling factor is non-zero. Signed-off-by: Rajendraprasad K J <KarammelJayakumar.Rajendraprasad@in.bosch.com>
This commit is contained in:
parent
3097acc702
commit
4a378afa3b
|
@ -345,9 +345,13 @@ calc_transformation_matrix(struct ivi_rectangle *source_rect,
|
|||
source_center_y = source_rect->y + source_rect->height * 0.5f;
|
||||
weston_matrix_translate(m, -source_center_x, -source_center_y, 0.0f);
|
||||
|
||||
scale_x = (float) dest_rect->width / (float) source_rect->width;
|
||||
scale_y = (float) dest_rect->height / (float) source_rect->height;
|
||||
weston_matrix_scale(m, scale_x, scale_y, 1.0f);
|
||||
if ((dest_rect->width != source_rect->width) ||
|
||||
(dest_rect->height != source_rect->height))
|
||||
{
|
||||
scale_x = (float) dest_rect->width / (float) source_rect->width;
|
||||
scale_y = (float) dest_rect->height / (float) source_rect->height;
|
||||
weston_matrix_scale(m, scale_x, scale_y, 1.0f);
|
||||
}
|
||||
|
||||
translate_x = dest_rect->width * 0.5f + dest_rect->x;
|
||||
translate_y = dest_rect->height * 0.5f + dest_rect->y;
|
||||
|
|
Loading…
Reference in a new issue