shithub: rgbds

Download patch

ref: 797f8bc3a2be6ddec3497496e9989ab66d21800e
parent: f299607704902a96ed91fbcc4f29af1f645c37bb
author: Jacob Moody <moody@posixcafe.org>
date: Sat Feb 25 19:47:47 EST 2023

rgbgfx port

--- a/mkfile
+++ b/mkfile
@@ -4,6 +4,7 @@
 	asm\
 	link\
 	fix\
+	gfx\
 
 all:V:
 	for(i in $DIRS)@{
--- /dev/null
+++ b/src/gfx/error.c
@@ -1,0 +1,1 @@
+#include "../error.c"
--- a/src/gfx/makepng.c
+++ b/src/gfx/makepng.c
@@ -280,7 +280,7 @@
 static struct RawIndexedImage *grayscale_png_to_raw(struct PNGImage *img)
 {
 	if (img->depth < 8)
-		png_set_expand_gray_1_2_4_to_8(img->png);
+		png_set_gray_1_2_4_to_8(img->png);
 
 	png_set_gray_to_rgb(img->png);
 	return truecolor_png_to_raw(img);
@@ -600,6 +600,7 @@
 		}
 	}
 	errx("The input PNG file contains colors that don't appear in its embedded palette.");
+	return 0;
 }
 
 static void read_png(struct PNGImage *img)
--- a/src/gfx/mkfile
+++ b/src/gfx/mkfile
@@ -1,12 +1,15 @@
 </$objtype/mkfile
 
-TARG=rgbfix
+TARG=rgbgfx
 BIN=$home/bin/$objtype
 
 # ThIs MaKeS It PoRtAbLe
-POSIX=-D PRIu32="%ud" -DPRId32="%d" -DPRIx32="%x" -DPRIX32="%X" -DPRIo32="%o" -DSTDOUT_FILENO=1 -DSTDIN_FILENO=0 -DPRIu8="%ud" -DPRIu16="%ud" -DPRId16="%d" -DPRIx16="%x" -DPRIX16="%X" -DMB_LEN_MAX=4 -DUINT32_C='(uint32_t)' -DSSIZE_MAX='0xFFFFFFFF'
+POSIX=-D PRIu32="%ud" -DPRId32="%d" -DPRIx32="%x" -DPRIX32="%X" -DPRIo32="%o" -DSTDOUT_FILENO=1 -DSTDIN_FILENO=0 -DPRIu8="%ud" -DPRIu16="%ud" -DPRId16="%d" -DPRIx16="%x" -DPRIX16="%X" -DMB_LEN_MAX=4 -DUINT32_C='(uint32_t)' -DSSIZE_MAX='0xFFFFFFFF' -D__func__="???"
 
-CFLAGS=-Fpw -I ../../include -I/sys/include/npe -D__plan9__ -D__${objtype}__ $POSIX
+CFLAGS=$CLFAGS -p -I ../../include -I/sys/include/npe -I libpng -I zlib -D__plan9__ -D__${objtype}__ $POSIX -DSTDC
+LIB=\
+	libpng/libpng.$O.a \
+	zlib/libz.$O.a \
 
 OFILES=\
 	main.$O \
@@ -14,5 +17,17 @@
 	makepng.$O \
 	getopt.$O \
 	version.$O \
+	error.$O \
 
 </sys/src/cmd/mkone
+
+zlib/libz.$O.a:V:
+	@{ cd zlib && mk }
+
+libpng/libpng.$O.a:V:
+	@{ cd libpng && mk }
+
+clean:V:
+	rm -f *.[$OS] [$OS].out y.tab.? lex.yy.c y.debug y.output $TARG $CLEANFILES
+	@{ cd zlib && mk clean }
+	@{ cd libpng && mk clean }