2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
5 Desc: Graphics function XorRegionRegion()
8 #include "graphics_intern.h"
9 #include <graphics/regions.h>
10 #include "intregions.h"
12 /*****************************************************************************
15 #include <proto/graphics.h>
17 AROS_LH2(BOOL
, XorRegionRegion
,
20 AROS_LHA(struct Region
*, R1
, A0
),
21 AROS_LHA(struct Region
*, R2
, A1
),
24 struct GfxBase
*, GfxBase
, 103, Graphics
)
27 Exclusive-OR of one region with another region,
28 leaving result in second region.
31 region1 - pointer to a region structure
32 region2 - pointer to a region structure
35 TRUE if the operation was successful,
36 FALSE otherwise (out of memory)
46 AndRegionRegion(), OrRegionRegion()
51 27-11-96 digulla automatically created from
52 graphics_lib.fd and clib/graphics_protos.h
53 19-01-97 mreckt intital version
55 22-09-2001 falemagn changed implementation
57 *****************************************************************************/
62 struct RegionRectangle
*Diff1
= NULL
, *Diff2
= NULL
;
68 !R1
->RegionRectangle
||
69 !R2
->RegionRectangle
||
70 !overlap(R1
->bounds
, R2
->bounds
)
73 return OrRegionRegion(R1
, R2
);
78 res
= _DoOperationBandBand
118 _DisposeRegionRectangleList(Diff1
, GfxBase
);
119 _DisposeRegionRectangleList(Diff2
, GfxBase
);
127 _TranslateRegionRectangles(R3
.RegionRectangle
, -MinX(&R3
), -MinY(&R3
));