From 3266da397683c6f254bda6d19be4b588e94d467c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20K=C3=BChling?= Date: Sat, 29 Jan 2011 14:58:54 +0100 Subject: [PATCH] zgv: more fixes for proper truecolor mode operation: img browser works now --- zgv/Makefile | 4 +- zgv/patches/030-truecolor-support.patch | 109 ++++++++++++++++++------ 2 files changed, 85 insertions(+), 28 deletions(-) diff --git a/zgv/Makefile b/zgv/Makefile index 1117a87..76917ce 100644 --- a/zgv/Makefile +++ b/zgv/Makefile @@ -77,7 +77,7 @@ endef define Build/Compile - $(call Build/Compile/Default) + $(call Build/Compile/Default, -j4) endef define Package/zgv/install @@ -93,5 +93,5 @@ $(eval $(call BuildPackage,zgv)) # The following comments configure the Emacs editor. Just ignore them. # Local Variables: -# compile-command: "make -C ~/h/src/qi/openwrt-xburst package/zgv/compile -j2 V=99" +# compile-command: "cd ~/src/nanonote/zgv-5.9 && ~/bin/quilt-export target && make -C ~/h/src/qi/openwrt-xburst package/zgv/compile -j2 V=99" # End: diff --git a/zgv/patches/030-truecolor-support.patch b/zgv/patches/030-truecolor-support.patch index 2094698..3b90be4 100644 --- a/zgv/patches/030-truecolor-support.patch +++ b/zgv/patches/030-truecolor-support.patch @@ -1,8 +1,18 @@ Index: zgv-5.9/src/zgv.c =================================================================== --- zgv-5.9.orig/src/zgv.c 2011-01-23 19:09:28.000000000 +0100 -+++ zgv-5.9/src/zgv.c 2011-01-23 19:43:52.000000000 +0100 -@@ -254,6 +254,7 @@ ++++ zgv-5.9/src/zgv.c 2011-01-29 14:37:36.000000000 +0100 +@@ -148,7 +148,8 @@ + + + /* from 18-bit RGB (as used by VGA palette) to 3:3:2 palette index */ +-#define MAKE332COL(r,g,b) (((r)>>3)*32+((g)>>3)*4+((b)>>4)) ++#define MAKE332COL(r,g,b) vga_setrgbcolor(((r)<<2)+2, ((g)<<2)+2, ((b)<<2)+2); ++//(((r)>>3)*32+((g)>>3)*4+((b)>>4)) + + /* colour indicies used for filenames-only selector */ + #define LIGHT 2 +@@ -254,6 +255,7 @@ int fs_vgamode=G640x480x256; /* current video mode for selector */ int fs_scrnwide,fs_scrnhigh; /* width/height of selector mode */ @@ -10,7 +20,7 @@ Index: zgv-5.9/src/zgv.c /* stuff for checking old directories (to avoid symlink loops in * recursive update). -@@ -2225,6 +2226,32 @@ +@@ -2225,6 +2227,32 @@ return(buf); } @@ -19,7 +29,7 @@ Index: zgv-5.9/src/zgv.c + unsigned char *conv = colors; + int bypp = fs_bypp; + -+ if (bypp != 1) ++ if (bypp > 1) + { + int i, j, k; + conv = malloc(length*bypp); @@ -34,7 +44,7 @@ Index: zgv-5.9/src/zgv.c + } + } + -+ vga_drawscansegment(conv, x, y, length*bypp); ++ vga_drawscansegment(conv, x, y, length*(bypp < 1 ? 1 : bypp)); + if (conv != colors) + { + free(conv); @@ -43,16 +53,26 @@ Index: zgv-5.9/src/zgv.c void showgifdir(int startfrom,int unshow,int drawdirmsg,int do_one_only) { -@@ -2322,7 +2349,7 @@ +@@ -2317,14 +2345,12 @@ + /* load and draw thumbnail file (or undraw it) */ + if(unshow) + { +- image=malloc(96); + if(image!=NULL) { - memset(image,idx_medium,96); - for(y=-2;y<62;y++) +- memset(image,idx_medium,96); +- for(y=-2;y<62;y++) - vga_drawscansegment(image, -+ drawscansegment_332(image, - xpos+(BARWIDTH-80)/2-2,ypos+y+GDFYBIT+9,96); - free(image); +- xpos+(BARWIDTH-80)/2-2,ypos+y+GDFYBIT+9,96); +- free(image); ++ gl_fillbox(xpos+(BARWIDTH-80)/2-2,ypos-2+GDFYBIT+9,96,62+2, ++ idx_medium); ++ gl_fillbox(xpos+(BARWIDTH-80)/2-2,ypos-2+GDFYBIT+9,96,62+2, ++ idx_medium); } -@@ -2370,7 +2397,7 @@ + } + else +@@ -2370,7 +2396,7 @@ if(image!=NULL) { for(y=0;y