1
0
Fork 0

region: Move Region.scale to Mtk

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3501>
This commit is contained in:
Bilal Elmoussaoui 2024-01-08 20:18:09 +01:00 committed by Marge Bot
parent 4513abd584
commit 6e7d314e75
6 changed files with 33 additions and 32 deletions

View file

@ -360,3 +360,30 @@ mtk_region_contains_rectangle (const MtkRegion *region,
return MTK_REGION_OVERLAP_PART;
}
}
MtkRegion *
mtk_region_scale (MtkRegion *region,
int scale)
{
int n_rects, i;
MtkRectangle *rects;
MtkRegion *scaled_region;
if (scale == 1)
return mtk_region_copy (region);
n_rects = mtk_region_num_rectangles (region);
MTK_RECTANGLE_CREATE_ARRAY_SCOPED (n_rects, rects);
for (i = 0; i < n_rects; i++)
{
rects[i] = mtk_region_get_rectangle (region, i);
rects[i].x *= scale;
rects[i].y *= scale;
rects[i].width *= scale;
rects[i].height *= scale;
}
scaled_region = mtk_region_create_rectangles (rects, n_rects);
return scaled_region;
}

View file

@ -114,4 +114,8 @@ MTK_EXPORT
MtkRegionOverlap mtk_region_contains_rectangle (const MtkRegion *region,
const MtkRectangle *rect);
MTK_EXPORT
MtkRegion * mtk_region_scale (MtkRegion *region,
int scale);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (MtkRegion, mtk_region_unref)

View file

@ -176,33 +176,6 @@ meta_region_iterator_next (MetaRegionIterator *iter)
}
}
MtkRegion *
meta_region_scale (MtkRegion *region,
int scale)
{
int n_rects, i;
MtkRectangle *rects;
MtkRegion *scaled_region;
if (scale == 1)
return mtk_region_copy (region);
n_rects = mtk_region_num_rectangles (region);
MTK_RECTANGLE_CREATE_ARRAY_SCOPED (n_rects, rects);
for (i = 0; i < n_rects; i++)
{
rects[i] = mtk_region_get_rectangle (region, i);
rects[i].x *= scale;
rects[i].y *= scale;
rects[i].width *= scale;
rects[i].height *= scale;
}
scaled_region = mtk_region_create_rectangles (rects, n_rects);
return scaled_region;
}
static void
add_expanded_rect (MetaRegionBuilder *builder,
int x,

View file

@ -92,9 +92,6 @@ void meta_region_iterator_init (MetaRegionIterator *iter,
gboolean meta_region_iterator_at_end (MetaRegionIterator *iter);
void meta_region_iterator_next (MetaRegionIterator *iter);
MtkRegion * meta_region_scale (MtkRegion *region,
int scale);
MtkRegion * meta_make_border_region (MtkRegion *region,
int x_amount,
int y_amount,

View file

@ -240,7 +240,7 @@ meta_pointer_confinement_wayland_create_constraint (MetaPointerConfinementWaylan
{
g_autoptr (MtkRegion) scaled_region = NULL;
scaled_region = meta_region_scale (region, geometry_scale);
scaled_region = mtk_region_scale (region, geometry_scale);
g_clear_pointer (&region, mtk_region_unref);
region = g_steal_pointer (&scaled_region);
}

View file

@ -335,7 +335,7 @@ surface_process_damage (MetaWaylandSurface *surface,
&src_rect,
surface_rect.width,
surface_rect.height);
scaled_region = meta_region_scale (viewport_region, surface_scale);
scaled_region = mtk_region_scale (viewport_region, surface_scale);
transformed_region = meta_region_transform (scaled_region,
surface->buffer_transform,
buffer_rect.width,