/// /// BltMaskHook HOOKPROTO(BltMaskFunc, void, struct RastPort *rp, struct LayerHookMsg *msg) { struct BltHook *h = (struct BltHook*)hook; LONG width = msg->bounds.MaxX - msg->bounds.MinX+1; LONG height = msg->bounds.MaxY - msg->bounds.MinY+1; LONG offsetx = h->srcx + msg->offsetx - h->destx; LONG offsety = h->srcy + msg->offsety - h->desty; MyBltMaskBitMap(h->srcBitMap, offsetx, offsety, rp->BitMap, msg->bounds.MinX, msg->bounds.MinY, width, height, &h->maskBitMap); }
STATIC ASM SAVEDS VOID HookFunc_BltMask(REG(a0,struct Hook *hook), REG(a2,struct RastPort *rp), REG(a1,struct LayerHookMsg *msg)) { struct BltMaskHook *h = (struct BltMaskHook*)hook; LONG width = msg->bounds.MaxX - msg->bounds.MinX+1; LONG height = msg->bounds.MaxY - msg->bounds.MinY+1; LONG offsetx = h->srcx + msg->offsetx - h->destx; LONG offsety = h->srcy + msg->offsety - h->desty; MyBltMaskBitMap( h->srcBitMap, offsetx, offsety, rp->BitMap, msg->bounds.MinX, msg->bounds.MinY, width, height, &h->maskBitMap); }