r4493@vps: verhaegs | 2007-04-19 14:44:00 -0400
[AROS.git] / rom / graphics / xorrectregionnd.c
blobc4d882e8a92ef6a5ca36923f8f20fc82b165a842
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Graphics function XorRectRegion()
6 Lang: english
7 */
8 #include "graphics_intern.h"
9 #include <graphics/regions.h>
10 #include "intregions.h"
12 /*****************************************************************************
14 NAME */
15 #include <proto/graphics.h>
17 AROS_LH2(struct Region *, XorRectRegionND,
19 /* SYNOPSIS */
20 AROS_LHA(struct Region *, Reg, A0),
21 AROS_LHA(struct Rectangle *, Rect, A1),
23 /* LOCATION */
24 struct GfxBase *, GfxBase, 152, Graphics)
26 /* FUNCTION
27 Exclusive-OR the given rectangle to the given
28 region
30 INPUTS
31 region - pointer to a region structure
32 rectangle - pointer to a rectangle structure
34 RESULT
35 The resulting region or NULL in case there's no enough free memory
37 NOTES
38 All relevant data is copied, you may throw away the
39 given rectangle after calling this function
41 EXAMPLE
43 BUGS
45 SEE ALSO
46 AndRectRegion(), OrRectRegion(), ClearRectRegion()
48 INTERNALS
50 HISTORY
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 *****************************************************************************/
57 AROS_LIBFUNC_INIT
59 struct Region R;
60 struct RegionRectangle rr;
62 InitRegion(&R);
64 R.bounds = *Rect;
65 R.RegionRectangle = &rr;
67 rr.Next = NULL;
68 MinX(&rr) = MinY(&rr) = 0;
69 MaxX(&rr) = Rect->MaxX - Rect->MinX;
70 MaxY(&rr) = Rect->MaxY - Rect->MinY;
72 return XorRegionRegionND(&R, Reg);
74 AROS_LIBFUNC_EXIT
75 } /* XorRectRegion */