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:
committed by
Daniel Stone
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;
|
source_center_y = source_rect->y + source_rect->height * 0.5f;
|
||||||
weston_matrix_translate(m, -source_center_x, -source_center_y, 0.0f);
|
weston_matrix_translate(m, -source_center_x, -source_center_y, 0.0f);
|
||||||
|
|
||||||
scale_x = (float) dest_rect->width / (float) source_rect->width;
|
if ((dest_rect->width != source_rect->width) ||
|
||||||
scale_y = (float) dest_rect->height / (float) source_rect->height;
|
(dest_rect->height != source_rect->height))
|
||||||
weston_matrix_scale(m, scale_x, scale_y, 1.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);
|
||||||
|
}
|
||||||
|
|
||||||
translate_x = dest_rect->width * 0.5f + dest_rect->x;
|
translate_x = dest_rect->width * 0.5f + dest_rect->x;
|
||||||
translate_y = dest_rect->height * 0.5f + dest_rect->y;
|
translate_y = dest_rect->height * 0.5f + dest_rect->y;
|
||||||
|
|||||||
Reference in New Issue
Block a user