paint-volumes: remove is_axis_aligned assert for _union
This removes the pv->is_xis_aligned assertion in _clutter_paint_volume_union. We were already considering the case where the second volume may not be axis aligned and aligning it into a temporary variable in that case, but we now also consider that the first pv may also not be aligned.
This commit is contained in:
parent
4dc30c255f
commit
e936b9591a
@ -424,8 +424,10 @@ clutter_paint_volume_get_depth (const ClutterPaintVolume *pv)
|
|||||||
* union
|
* union
|
||||||
* @another_pv: A second #ClutterPaintVolume to union with @pv
|
* @another_pv: A second #ClutterPaintVolume to union with @pv
|
||||||
*
|
*
|
||||||
* Updates the geometry of @pv to be the union bounding box that
|
* Updates the geometry of @pv to encompass @pv and @another_pv.
|
||||||
* encompases @pv and @another_pv.
|
*
|
||||||
|
* <note>There are no guarantees about how precisely the two volumes
|
||||||
|
* will be encompassed.</note>
|
||||||
*
|
*
|
||||||
* Since: 1.6
|
* Since: 1.6
|
||||||
*/
|
*/
|
||||||
@ -436,9 +438,11 @@ clutter_paint_volume_union (ClutterPaintVolume *pv,
|
|||||||
ClutterPaintVolume aligned_pv;
|
ClutterPaintVolume aligned_pv;
|
||||||
|
|
||||||
g_return_if_fail (pv != NULL);
|
g_return_if_fail (pv != NULL);
|
||||||
g_return_if_fail (pv->is_axis_aligned);
|
|
||||||
g_return_if_fail (another_pv != NULL);
|
g_return_if_fail (another_pv != NULL);
|
||||||
|
|
||||||
|
/* Both volumes have to belong to the same local coordinate space */
|
||||||
|
g_return_if_fail (pv->actor == another_pv->actor);
|
||||||
|
|
||||||
/* NB: we only have to update vertices 0, 1, 3 and 4
|
/* NB: we only have to update vertices 0, 1, 3 and 4
|
||||||
* (See the ClutterPaintVolume typedef for more details) */
|
* (See the ClutterPaintVolume typedef for more details) */
|
||||||
|
|
||||||
@ -455,6 +459,9 @@ clutter_paint_volume_union (ClutterPaintVolume *pv,
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!pv->is_axis_aligned)
|
||||||
|
_clutter_paint_volume_axis_align (pv);
|
||||||
|
|
||||||
if (!another_pv->is_axis_aligned)
|
if (!another_pv->is_axis_aligned)
|
||||||
{
|
{
|
||||||
_clutter_paint_volume_copy_static (another_pv, &aligned_pv);
|
_clutter_paint_volume_copy_static (another_pv, &aligned_pv);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user