summaryrefslogtreecommitdiffstats
path: root/libvo/vo_xmga.c
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-03 18:13:45 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-10-03 18:13:45 +0000
commit22c9bcf82417c33258c74104704f196f6672f696 (patch)
tree14aafb466a1a81040af035e6b0a8ef43ca2f99c6 /libvo/vo_xmga.c
parent9aefb6b0f0a83b52c42994dae407aeaa4992c682 (diff)
downloadmpv-22c9bcf82417c33258c74104704f196f6672f696.tar.bz2
mpv-22c9bcf82417c33258c74104704f196f6672f696.tar.xz
user settable colorkey
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10989 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_xmga.c')
-rw-r--r--libvo/vo_xmga.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index 722bbba5b1..3d57eb5b9d 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -62,7 +62,7 @@ static XGCValues wGCV;
static uint32_t mDepth;
static XWindowAttributes attribs;
-static uint32_t fgColor;
+static int colorkey;
static uint32_t mvHeight;
static uint32_t mvWidth;
@@ -81,7 +81,7 @@ static void mDrawColorKey( void )
{
XSetBackground( mDisplay,vo_gc,0 );
XClearWindow( mDisplay,vo_window );
- XSetForeground( mDisplay,vo_gc,fgColor );
+ XSetForeground( mDisplay,vo_gc,colorkey );
XFillRectangle( mDisplay,vo_window,vo_gc,drwX,drwY,drwWidth,(vo_fs?drwHeight - 1:drwHeight) );
XFlush( mDisplay );
}
@@ -112,6 +112,7 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
char * mTitle=(title == NULL) ? "XMGA render" : title;
XVisualInfo vinfo;
unsigned long xswamask;
+ int r, g, b;
if(mga_init(width,height,format)) return -1; // ioctl errors?
@@ -129,14 +130,18 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
vo_dwidth=d_width; vo_dheight=d_height;
vo_mouse_autohide=1;
+ r = (vo_colorkey & 0x00ff0000) >> 16;
+ g = (vo_colorkey & 0x0000ff00) >> 8;
+ b = vo_colorkey & 0x000000ff;
switch ( vo_depthonscreen )
{
- case 32:
- case 24: fgColor=0x00ff00ffL; break;
- case 16: fgColor=0xf81fL; break;
- case 15: fgColor=0x7c1fL; break;
+ case 32: colorkey = vo_colorkey; break;
+ case 24: colorkey = vo_colorkey & 0x00ffffff; break;
+ case 16: colorkey = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3); break;
+ case 15: colorkey = ((r >> 3) << 10) | ((g >> 3) << 5) | (b >> 3); break;
default: mp_msg(MSGT_VO,MSGL_ERR,"Sorry, this (%d) color depth not supported.\n",vo_depthonscreen ); return -1;
}
+ mp_msg(MSGT_VO, MSGL_INFO, "Using colorkey: %x\n", colorkey);
inited=1;
@@ -208,9 +213,9 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
panscan_calc();
mga_vid_config.colkey_on=1;
- mga_vid_config.colkey_red=255;
- mga_vid_config.colkey_green=0;
- mga_vid_config.colkey_blue=255;
+ mga_vid_config.colkey_red=r;
+ mga_vid_config.colkey_green=g;
+ mga_vid_config.colkey_blue=b;
set_window(); // set up mga_vid_config.dest_width etc