summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/mach64_vid.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/vidix/drivers/mach64_vid.c b/vidix/drivers/mach64_vid.c
index 2ba42862c4..c7dd06c295 100644
--- a/vidix/drivers/mach64_vid.c
+++ b/vidix/drivers/mach64_vid.c
@@ -543,7 +543,34 @@ static void mach64_vid_display_video( void )
OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0ULL);
OUTREG(OVERLAY_KEY_CNTL,0x50);
}
-
+switch(mach64_vid_get_dbpp()) //Ugly Hack (remove me if colorkey is correctly supported in vidix)
+{
+case 15:
+ OUTREG(OVERLAY_GRAPHICS_KEY_MSK, 0x7FFF);
+ OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0x7C1F);
+ OUTREG(OVERLAY_KEY_CNTL,0x50);
+ break;
+case 16:
+ OUTREG(OVERLAY_GRAPHICS_KEY_MSK, 0xFFFF);
+ OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0xF81F);
+ OUTREG(OVERLAY_KEY_CNTL,0x50);
+ break;
+case 24:
+ OUTREG(OVERLAY_GRAPHICS_KEY_MSK, 0xFFFFFF);
+ OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0xFF00FF);
+ OUTREG(OVERLAY_KEY_CNTL,0x50);
+ break;
+case 32:
+ OUTREG(OVERLAY_GRAPHICS_KEY_MSK, 0xFFFFFF);
+ OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0xFF00FF);
+ OUTREG(OVERLAY_KEY_CNTL,0x50);
+ break;
+default:
+ OUTREG(OVERLAY_GRAPHICS_KEY_MSK, 0);
+ OUTREG(OVERLAY_GRAPHICS_KEY_CLR, 0);
+ OUTREG(OVERLAY_KEY_CNTL,0x50);
+ break;
+}
mach64_wait_for_idle();
vf = INREG(VIDEO_FORMAT);