summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-11 08:48:54 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-03-11 08:48:54 +0000
commitd7b1d1c88dd0fe97ad2c5004d7c02b09262b4c8d (patch)
tree86064a7b1e1b9d50c676eb09dfff671810dc778e /vidix
parent91093ef1aa349bee233ff283dc64e73676c9e735 (diff)
downloadmpv-d7b1d1c88dd0fe97ad2c5004d7c02b09262b4c8d.tar.bz2
mpv-d7b1d1c88dd0fe97ad2c5004d7c02b09262b4c8d.tar.xz
Fixed color key definitions. Waiting for new bugreports ;)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5045 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/drivers/radeon.h12
-rw-r--r--vidix/drivers/radeon_vid.c11
2 files changed, 12 insertions, 11 deletions
diff --git a/vidix/drivers/radeon.h b/vidix/drivers/radeon.h
index 5fc2342dcf..34359cf6be 100644
--- a/vidix/drivers/radeon.h
+++ b/vidix/drivers/radeon.h
@@ -686,16 +686,16 @@
#define OV0_GRAPHICS_KEY_CLR 0x04EC
#define OV0_GRAPHICS_KEY_MSK 0x04F0
#define OV0_KEY_CNTL 0x04F4
-# define VIDEO_KEY_FN_MASK 0x00000007L
+# define VIDEO_KEY_FN_MASK 0x00000003L
# define VIDEO_KEY_FN_FALSE 0x00000000L
# define VIDEO_KEY_FN_TRUE 0x00000001L
-# define VIDEO_KEY_FN_EQ 0x00000004L
-# define VIDEO_KEY_FN_NE 0x00000005L
-# define GRAPHIC_KEY_FN_MASK 0x00000070L
+# define VIDEO_KEY_FN_EQ 0x00000002L
+# define VIDEO_KEY_FN_NE 0x00000003L
+# define GRAPHIC_KEY_FN_MASK 0x00000030L
# define GRAPHIC_KEY_FN_FALSE 0x00000000L
# define GRAPHIC_KEY_FN_TRUE 0x00000010L
-# define GRAPHIC_KEY_FN_EQ 0x00000040L
-# define GRAPHIC_KEY_FN_NE 0x00000050L
+# define GRAPHIC_KEY_FN_EQ 0x00000020L
+# define GRAPHIC_KEY_FN_NE 0x00000030L
# define CMP_MIX_MASK 0x00000100L
# define CMP_MIX_OR 0x00000000L
# define CMP_MIX_AND 0x00000100L
diff --git a/vidix/drivers/radeon_vid.c b/vidix/drivers/radeon_vid.c
index 564bcb3571..f1b88143f6 100644
--- a/vidix/drivers/radeon_vid.c
+++ b/vidix/drivers/radeon_vid.c
@@ -659,7 +659,7 @@ static void radeon_vid_make_default(void)
besr.ckey_on=0;
besr.graphics_key_msk=0;
besr.graphics_key_clr=0;
- besr.ckey_cntl = GRAPHIC_KEY_FN_NE;
+ besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_TRUE|CMP_MIX_AND;
}
@@ -888,7 +888,7 @@ int vixQueryFourcc(vidix_fourcc_t *to)
VID_DEPTH_12BPP| VID_DEPTH_15BPP|
VID_DEPTH_16BPP| VID_DEPTH_24BPP|
VID_DEPTH_32BPP;
- to->flags = VID_CAP_EXPAND | VID_CAP_SHRINK/* | VID_CAP_COLORKEY*/;
+ to->flags = VID_CAP_EXPAND | VID_CAP_SHRINK | VID_CAP_COLORKEY;
return 0;
}
else to->depth = to->flags = 0;
@@ -1483,16 +1483,17 @@ static void set_gr_key( void )
besr.graphics_key_msk=0;
besr.graphics_key_clr=0;
}
- besr.graphics_key_msk = 0xFF000000|besr.graphics_key_clr;
- besr.ckey_cntl = 0x20;
+ besr.graphics_key_msk = besr.graphics_key_clr;
+ besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_EQ|CMP_MIX_AND;
}
else
{
besr.ckey_on=0;
besr.graphics_key_msk=0;
besr.graphics_key_clr=0;
- besr.ckey_cntl = GRAPHIC_KEY_FN_NE;
+ besr.ckey_cntl = VIDEO_KEY_FN_TRUE|GRAPHIC_KEY_FN_TRUE|CMP_MIX_AND;
}
+ radeon_fifo_wait(3);
OUTREG(OV0_GRAPHICS_KEY_MSK, besr.graphics_key_msk);
OUTREG(OV0_GRAPHICS_KEY_CLR, besr.graphics_key_clr);
OUTREG(OV0_KEY_CNTL,besr.ckey_cntl);