changeset 18193:e8cbaf092e96

Fix menu background drawing.
author albeu
date Sat, 22 Apr 2006 16:22:33 +0000
parents 0b77e66a7d32
children fe877135c408
files libmenu/menu.c libmenu/menu.h libmenu/menu_list.h
diffstat 3 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libmenu/menu.c	Sat Apr 22 15:41:16 2006 +0000
+++ b/libmenu/menu.c	Sat Apr 22 16:22:33 2006 +0000
@@ -563,11 +563,12 @@
 }
 
 
-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 @@
   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),
--- a/libmenu/menu.h	Sat Apr 22 15:41:16 2006 +0000
+++ b/libmenu/menu.h	Sat Apr 22 16:22:33 2006 +0000
@@ -73,4 +73,4 @@
 			 int x, int y,int w, int h,
 			 int vspace, int warp, int align, int anchor);
 
-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);
--- a/libmenu/menu_list.h	Sat Apr 22 15:41:16 2006 +0000
+++ b/libmenu/menu_list.h	Sat Apr 22 16:22:33 2006 +0000
@@ -56,9 +56,9 @@
   0,0, \
   5, 3, \
   NULL, \
-  0x80, 0x80, \
-  0x40, 0x80, \
-  0x70, 0x80 \
+  0xE0, 0x20, \
+  0x80, 0x50, \
+  0xC0, 0x50 \
 }