diff -p -up pl241src/src/Makefile.gd20gif pl241src/src/Makefile --- pl241src/src/Makefile.gd20gif 2009-03-11 19:00:44.000000000 +0100 +++ pl241src/src/Makefile 2009-06-21 23:43:22.000000000 +0200 @@ -112,6 +112,15 @@ ZFLAG = -DWZ # GDFREETYPE = -DGDFREETYPE # ZFLAG = -DWZ +#### For JPEG, WBMP, PNG and GIF(without FreeType2), using GD 2.0 with gif support, +#### uncomment the following.. (you must have gd 2.0+ with gif support, libpng, zlib, libjpeg) +# ploticus: plgd20gif +GD20LIBS = -lgd -lpng -lz -ljpeg +GD20H = -I/usr/include +GDFREETYPE = -DGDFREETYPE +# ZFLAG = -DWZ + + ########### Option 5: don't use GD at all. # exetarget: plnogd # NOGD = -DNOGD @@ -249,6 +258,13 @@ gd16files: gd18files: $(CC) -c grgd.c devstuff.c -DGD18 $(GDFREETYPE) $(GD18H) $(CFLAGS) +# GD20GIF: +plgd20gif: pl.o $(OBJ) $(XOBJ) gd20gif_files + $(CC) $(FLAGS) pl.o grgd.o devstuff.o $(OBJ) $(XOBJ) $(GD20LIBS) $(LIBS) -o $(PL) + +gd20gif_files: + $(CC) -c grgd.c devstuff.c -DGD20GIF $(GDFREETYPE) $(GD20H) $(CFLAGS) + nogdfiles: $(CC) -c devstuff.c $(CFLAGS) diff -p -up pl241src/src/devstuff.c.gd20gif pl241src/src/devstuff.c --- pl241src/src/devstuff.c.gd20gif 2008-01-10 18:27:16.000000000 +0100 +++ pl241src/src/devstuff.c 2009-06-21 23:46:39.000000000 +0200 @@ -37,14 +37,14 @@ else if( strcmp( dev, "png" )==0 ) { } else if( strcmp( dev, "jpeg" )==0 ) { -#if GD18 +#if GD18 || GD20GIF return( 1 ); #endif return( 0 ); } else if( strcmp( dev, "wbmp" )==0 ) { -#if GD18 +#if GD18 || GD20GIF return( 1 ); #endif return( 0 ); @@ -53,7 +53,7 @@ else if( strcmp( dev, "wbmp" )==0 ) { else if( GL_smember( dev, "ps eps svg" )) return( 1 ); else if( strcmp( dev, "svgz" )==0 ) { -#if GD16 || GD18 || WZ +#if GD16 || GD18 || WZ || GD20GIF return( 1 ); #else return( 0 ); @@ -97,6 +97,9 @@ strcpy( s, "This build can produce: PS E #ifdef GD18 strcat( s, "PNG JPEG WBMP " ); #endif +#ifdef GD20 + strcat( s, "PNG JPEG WBMP GIF "); +#endif #ifdef GDFREETYPE strcat( s, "FreeType2 " ); #endif diff -p -up pl241src/src/grgd.c.gd20gif pl241src/src/grgd.c --- pl241src/src/grgd.c.gd20gif 2009-02-18 18:44:50.000000000 +0100 +++ pl241src/src/grgd.c 2009-06-21 23:55:13.000000000 +0200 @@ -15,6 +15,7 @@ GD13 (create GIF only using GD 1.3; no import) GD16 (create PNG only using GD 1.6; also can import PNG) GD18 (use GD 1.8+ to create PNG, JPEG, or WBMP; also can import these formats) + GD20GIF(use GD 2.0 to create PNG, JPEG, GIF or WBMP; also can import these formats) GDFREETYPE (use FreeType font rendering; may be used only when GD18 is in effect) * GD renders text such that the TOP of the character box is at x, y @@ -847,6 +848,12 @@ if( fp == NULL ) return( -1 ); else if( strcmp( g_fmt, "jpeg" )==0 ) Gm2 = gdImageCreateFromJpeg( fp ); else if( strcmp( g_fmt, "wbmp" )==0 ) Gm2 = gdImageCreateFromWBMP( fp ); #endif +#ifdef GD20GIF + if( strcmp( g_fmt, "png" )==0 ) Gm2 = gdImageCreateFromPng( fp ); + else if( strcmp( g_fmt, "jpeg" )==0 ) Gm2 = gdImageCreateFromJpeg( fp ); + else if( strcmp( g_fmt, "wbmp" )==0 ) Gm2 = gdImageCreateFromWBMP( fp ); + else if( strcmp( g_fmt, "gif" )==0 ) Gm2 = gdImageCreateFromGif( fp ); +#endif if( width != 0 ) Gm2width = width; if( height != 0 ) Gm2height = height; @@ -972,6 +979,12 @@ if( strcmp( g_fmt, "png" )==0 ) gdImageP else if( strcmp( g_fmt, "jpeg" )==0 ) gdImageJpeg( outim, outfp, 75 ); else if( strcmp( g_fmt, "wbmp" )==0 ) gdImageWBMP( outim, Gblack, outfp ); #endif +#ifdef GD20GIF +if( strcmp( g_fmt, "png" )==0 ) gdImagePng( outim, outfp ); +else if( strcmp( g_fmt, "jpeg" )==0 ) gdImageJpeg( outim, outfp, 75 ); +else if( strcmp( g_fmt, "wbmp" )==0 ) gdImageWBMP( outim, Gblack, outfp ); +else if( strcmp( g_fmt, "gif" )==0 ) gdImageGif( outim, outfp ); +#endif if( strcmp( filename, "stdout" )!=0 ) { fclose( outfp );