boxes: Add helper to scale rectangles by a double

And change the similar region scaling helper to use this one.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/362
This commit is contained in:
Jonas Ådahl
2018-12-20 16:58:03 +01:00
committed by Georges Basile Stavracas Neto
parent e1370ee209
commit 36b46af92f
4 changed files with 41 additions and 21 deletions

View File

@@ -2044,3 +2044,30 @@ meta_rectangle_is_adjecent_to (MetaRectangle *rect,
else
return FALSE;
}
void
meta_rectangle_scale_double (const MetaRectangle *rect,
double scale,
MetaRoundingStrategy rounding_strategy,
MetaRectangle *dest)
{
switch (rounding_strategy)
{
case META_ROUNDING_STRATEGY_SHRINK:
*dest = (MetaRectangle) {
.x = (int) ceil (rect->x * scale),
.y = (int) ceil (rect->y * scale),
.width = (int) floor (rect->width * scale),
.height = (int) floor (rect->height * scale),
};
break;
case META_ROUNDING_STRATEGY_GROW:
*dest = (MetaRectangle) {
.x = (int) floor (rect->x * scale),
.y = (int) floor (rect->y * scale),
.width = (int) ceil (rect->width * scale),
.height = (int) ceil (rect->height * scale),
};
break;
}
}