diff options
author | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-22 16:22:33 +0000 |
---|---|---|
committer | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-04-22 16:22:33 +0000 |
commit | ced4a23f8d7b33678a89d520f1bb4eb460084acf (patch) | |
tree | 0e602fa8d11bda9da2e207a1a50ae9ed21aa6e1c /libmenu/menu.c | |
parent | 168e6e1daf047799dd109e268cb0161159b622ef (diff) | |
download | mpv-ced4a23f8d7b33678a89d520f1bb4eb460084acf.tar.bz2 mpv-ced4a23f8d7b33678a89d520f1bb4eb460084acf.tar.xz |
Fix menu background drawing.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18194 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmenu/menu.c')
-rw-r--r-- | libmenu/menu.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/libmenu/menu.c b/libmenu/menu.c index 6113fb6dce..bd807c502b 100644 --- a/libmenu/menu.c +++ b/libmenu/menu.c @@ -563,11 +563,12 @@ char* menu_text_get_next_line(char* txt, int max_width) { } -void menu_draw_box(mp_image_t* mpi, char grey, char alpha, int x, int y, int w, int h) { +void menu_draw_box(mp_image_t* mpi,unsigned char grey,unsigned char alpha, int x, int y, int w, int h) { draw_alpha_f draw_alpha = get_draw_alpha(mpi->imgfmt); + int g; if(!draw_alpha) { - printf("Unsupported outformat !!!!\n"); + mp_msg(MSGT_GLOBAL,MSGL_WARN,MSGTR_LIBMENU_UnsupportedOutformat); return; } @@ -577,11 +578,14 @@ void menu_draw_box(mp_image_t* mpi, char grey, char alpha, int x, int y, int w, if(x+w > mpi->w) w = mpi->w-x; if(y < 0) h += y, y = 0; if(y+h > mpi->h) h = mpi->h-y; - + + g = ((256-alpha)*grey)>>8; + if(g < 1) g = 1; + { int stride = (w+7)&(~7); // round to 8 char pic[stride*h],pic_alpha[stride*h]; - memset(pic,grey,stride*h); + memset(pic,g,stride*h); memset(pic_alpha,alpha,stride*h); draw_alpha(w,h,pic,pic_alpha,stride, mpi->planes[0] + y * mpi->stride[0] + x * (mpi->bpp>>3), |