2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
7 #include <proto/graphics.h>
8 #include <proto/layers.h>
9 #include "intuition_intern.h"
10 #include <intuition/classusr.h>
12 #include <clib/alib_protos.h>
14 #include <proto/alib.h>
17 /*****************************************************************************
20 #include <graphics/rastport.h>
21 #include <graphics/rpattr.h>
22 #include <intuition/intuition.h>
23 #include <intuition/imageclass.h>
24 #include <proto/intuition.h>
26 AROS_LH4(void, EraseImage
,
29 AROS_LHA(struct RastPort
*, rp
, A0
),
30 AROS_LHA(struct Image
*, image
, A1
),
31 AROS_LHA(LONG
, leftOffset
, D0
),
32 AROS_LHA(LONG
, topOffset
, D1
),
35 struct IntuitionBase
*, IntuitionBase
, 105, Intuition
)
38 Erase an image on the screen.
41 rp - Render in this RastPort
42 image - Erase this image
43 leftOffset, topOffset - Add this offset the the position in the
56 DrawImage(), DrawImageState()
60 *****************************************************************************/
64 struct GfxBase
*GfxBase
= GetPrivIBase(IntuitionBase
)->GfxBase
;
65 struct LayersBase
*LayersBase
= GetPrivIBase(IntuitionBase
)->LayersBase
;
66 EXTENDWORD(leftOffset
);
67 EXTENDWORD(topOffset
);
72 if (rp
->Layer
) LockLayer(0,rp
->Layer
);
76 if (image
->Depth
== CUSTOMIMAGEDEPTH
)
78 struct impErase method
;
83 GetRPAttrs(rp
,RPTAG_PenMode
,(ULONG
)&penmode
,TAG_DONE
);
86 method
.MethodID
= IM_ERASE
;
87 method
.imp_RPort
= rp
;
88 method
.imp_Offset
.X
= leftOffset
;
89 method
.imp_Offset
.Y
= topOffset
;
91 DoMethodA ((Object
*)image
, (Msg
)&method
);
94 SetRPAttrs(rp
,RPTAG_PenMode
,penmode
,TAG_DONE
);
100 leftOffset
+ image
->LeftEdge
,
101 topOffset
+ image
->TopEdge
,
102 leftOffset
+ image
->LeftEdge
+ image
->Width
,
103 topOffset
+ image
->TopEdge
+ image
->Height
108 if (rp
->Layer
) UnlockLayer(rp
->Layer
);