diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-03 18:13:45 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-10-03 18:13:45 +0000 |
commit | 22c9bcf82417c33258c74104704f196f6672f696 (patch) | |
tree | 14aafb466a1a81040af035e6b0a8ef43ca2f99c6 /libvo/vo_xmga.c | |
parent | 9aefb6b0f0a83b52c42994dae407aeaa4992c682 (diff) | |
download | mpv-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.c | 23 |
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 |