diff --git a/clutter/clutter/clutter-paint-volume-private.h b/clutter/clutter/clutter-paint-volume-private.h index 5d51e5bf3..0a52b60c4 100644 --- a/clutter/clutter/clutter-paint-volume-private.h +++ b/clutter/clutter/clutter-paint-volume-private.h @@ -133,6 +133,9 @@ void _clutter_paint_volume_get_stage_paint_box (ClutterPaintVolu void _clutter_paint_volume_transform_relative (ClutterPaintVolume *pv, ClutterActor *relative_to_ancestor); +void clutter_paint_volume_to_box (ClutterPaintVolume *pv, + graphene_box_t *box); + G_END_DECLS #endif /* __CLUTTER_PAINT_VOLUME_PRIVATE_H__ */ diff --git a/clutter/clutter/clutter-paint-volume.c b/clutter/clutter/clutter-paint-volume.c index 97077f7d1..a55c5a8e4 100644 --- a/clutter/clutter/clutter-paint-volume.c +++ b/clutter/clutter/clutter-paint-volume.c @@ -1131,3 +1131,25 @@ _clutter_paint_volume_transform_relative (ClutterPaintVolume *pv, _clutter_paint_volume_transform (pv, &matrix); } + +void +clutter_paint_volume_to_box (ClutterPaintVolume *pv, + graphene_box_t *box) +{ + int vertex_count; + + if (pv->is_empty) + { + graphene_box_init_from_box (box, graphene_box_empty ()); + return; + } + + _clutter_paint_volume_complete (pv); + + if (G_LIKELY (pv->is_2d)) + vertex_count = 4; + else + vertex_count = 8; + + graphene_box_init_from_points (box, vertex_count, pv->vertices); +}