rem: SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (1, 1, 1), 7)); DrawFilledRectangle (&r);
add: SetContextClipRect (NULL_PTR); SisBack = BUILD_COLOR (MAKE_RGB15 (1, 1, 1), 7); SetContextBackGroundColor (SisBack); ClearDrawable (); SetFrameTransparentColor (SisFrame, SisBack);
context: Present_GenerateSIS (PRESENTATION_INPUT_STATE* pPIS){#define MODULE_YOFS_P  (-79)#define DRIVE_TOP_Y_P  (DRIVE_TOP_Y + MODULE_YOFS_P)#define JET_TOP_Y_P    (JET_TOP_Y + MODULE_YOFS_P)#define MODULE_TOP_Y_P (MODULE_TOP_Y + MODULE_YOFS_P)	CONTEXT	OldContext;	FRAME SisFrame;	FRAME ModuleFrame;	FRAME SkelFrame;	STAMP s;	RECT r;	HOT_SPOT hs;	int slot;	COUNT piece;	LockMutex (GraphicsLock);	OldContext = SetContext (OffScreenContext);	SkelFrame = CaptureDrawable (LoadCelFile ("slides/ending/sis_skel.ani"));	ModuleFrame = CaptureDrawable (LoadGraphic (SISMODS_MASK_PMAP_ANIM));	/* TODO: fix this eventually;	 * we need to load *all* gfx resources from this package	 * otherwise we will leave the package hanging, literally	 */	DestroyDrawable (LoadGraphic (OUTFIT_PMAP_ANIM));	GetFrameRect (SkelFrame, &r);	SisFrame = CaptureDrawable (CreateDrawable (			WANT_PIXMAP, r.extent.width, r.extent.height, 1			));	SetContextFGFrame (SisFrame);	SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (1, 1, 1), 7));	DrawFilledRectangle (&r);	s.frame = SetAbsFrameIndex (SkelFrame, 0);	s.origin.x = 0;	s.origin.y = 0;	DrawStamp (&s);	for (slot = 0; slot < NUM_DRIVE_SLOTS; ++slot)	{		piece = GLOBAL_SIS (DriveSlots[slot]);		if (piece < EMPTY_SLOT)		{			s.origin.x = DRIVE_TOP_X;			s.origin.y = DRIVE_TOP_Y_P;			s.origin.x += slot * SHIP_PIECE_OFFSET;			s.frame = SetAbsFrameIndex (ModuleFrame, piece);			DrawStamp (&s);		}	}	for (slot = 0; slot < NUM_JET_SLOTS; ++slot)	{		piece = GLOBAL_SIS (JetSlots[slot]);		if (piece < EMPTY_SLOT)		{			s.origin.x = JET_TOP_X;			s.origin.y = JET_TOP_Y_P;			s.origin.x += slot * SHIP_PIECE_OFFSET;			s.frame = SetAbsFrameIndex (ModuleFrame, piece);			DrawStamp (&s);		}	}	for (slot = 0; slot < NUM_MODULE_SLOTS; ++slot)	{		piece = GLOBAL_SIS (ModuleSlots[slot]);		if (piece < EMPTY_SLOT)		{			s.origin.x = MODULE_TOP_X;			s.origin.y = MODULE_TOP_Y_P;			s.origin.x += slot * SHIP_PIECE_OFFSET;			s.frame = SetAbsFrameIndex (ModuleFrame, piece);			DrawStamp (&s);		}	}	DestroyDrawable (ReleaseDrawable (SkelFrame));	DestroyDrawable (ReleaseDrawable (ModuleFrame));	hs.x = r.extent.width / 2;	hs.y = r.extent.height / 2;	SetFrameHot (SisFrame, hs);	/* TODO: this is a hack to get it to work	 * anyone know how to do this better? */	TFB_DrawCanvas_SetTransparentColor (			((PFRAME_DESC)SisFrame)->image->NormalImg, 8, 8, 8, TRUE);	SetContext (OldContext);	FlushGraphics ();	UnlockMutex (GraphicsLock);	pPIS->SisFrame = SisFrame;}