2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
5 Desc: Graphics function RectFill()
8 #include "graphics_intern.h"
9 #include "gfxfuncsupport.h"
10 #include <proto/oop.h>
12 /*****************************************************************************
15 #include <graphics/rastport.h>
16 #include <proto/graphics.h>
18 AROS_LH5(void, RectFill
,
21 AROS_LHA(struct RastPort
*, rp
, A1
),
22 AROS_LHA(LONG
, xMin
, D0
),
23 AROS_LHA(LONG
, yMin
, D1
),
24 AROS_LHA(LONG
, xMax
, D2
),
25 AROS_LHA(LONG
, yMax
, D3
),
28 struct GfxBase
*, GfxBase
, 51, Graphics
)
31 Fills a rectangular area with the current pens, drawing mode
32 and areafill pattern. If no areafill pattern is defined fill
37 xMin,yMin - upper left corner
38 xMax,yMax - lower right corner
53 29-10-95 digulla automatically created from
54 graphics_lib.fd and clib/graphics_protos.h
56 *****************************************************************************/
65 if ((xMax
>= xMin
) && (yMax
>= yMin
))
69 /* When rasport has areaptrn, let BltPattern do the job */
70 BltPattern(rp
, NULL
, xMin
, yMin
, xMax
, yMax
, 0);
73 else if (OBTAIN_DRIVERDATA(rp
, GfxBase
))
76 HIDDT_DrawMode drmd
= 0;
80 rp_drmd
= GetDrMd(rp
);
82 OOP_GetAttr(RP_DRIVERDATA(rp
)->dd_GC
,
83 ((rp_drmd
& INVERSVID
) ? aHidd_GC_Background
: aHidd_GC_Foreground
),
88 drmd
= vHidd_GC_DrawMode_Copy
;
90 else if (rp_drmd
& COMPLEMENT
)
92 drmd
= vHidd_GC_DrawMode_Invert
;
94 else if ((rp_drmd
& (~INVERSVID
)) == JAM1
)
96 drmd
= vHidd_GC_DrawMode_Copy
;
99 fillrect_pendrmd(rp
, xMin
, yMin
, xMax
, yMax
, pix
, drmd
, TRUE
, GfxBase
);
101 RELEASE_DRIVERDATA(rp
, GfxBase
);
104 } /* if ((xMax >= xMin) && (yMax >= yMin)) */