[CF-Devel] CVS update: client
Crossfire CVS devel
mwedel at scruznet.com
Sun Aug 13 23:42:35 CDT 2000
Date: Sunday August 13, 2000 @ 21:42
Author: cvs
Update of /home/cvs/CVS/client
In directory boltzmann.eecs.berkeley.edu:/tmp/cvs-serv25435
Modified Files:
config.h config.h.in configure configure.in gx11.c x11.c
xutil.c CHANGES
Added Files:
png.c
Log Message:
The following change removes imlib as are png loading/rendering library -
instead, we use our own local function located in png.c. libpng is
still needed, but it removes the dependancy on imlib. Also, my home
spun function renders all the png images crossfire uses correctly, while
imlib had several it did not do properly. MSW 8/13/2000
Files affected:
config.h, config.h.in: Change HAVE_IMLIB_H to HAVE_LIBPNG
configure, configure.in: Change check from imlib to libpng.
gx11.c,x11.c,xutil.c: Changed to use our functions and not imlib.
png.c: new file that has our png support in it.
****************************************
Index: client/config.h
diff -u client/config.h:1.3 client/config.h:1.4
--- client/config.h:1.3 Sat Jun 3 00:20:23 2000
+++ client/config.h Sun Aug 13 21:42:35 2000
@@ -52,5 +52,6 @@
/* Define/not defined depending on the endianness of this system */
/* #undef WORDS_BIGENDIAN */
-/* Define/not defined depending on the endianness of this system */
-#define HAVE_IMLIB_H 1
+/* Define if you have the <xpm.h> header file. */
+#define HAVE_LIBPNG 1
+
Index: client/config.h.in
diff -u client/config.h.in:1.3 client/config.h.in:1.4
--- client/config.h.in:1.3 Sat Jun 3 00:20:23 2000
+++ client/config.h.in Sun Aug 13 21:42:35 2000
@@ -51,5 +51,6 @@
/* Define/not defined depending on the endianness of this system */
#undef WORDS_BIGENDIAN
-/* Define/not defined depending on the endianness of this system */
-#undef HAVE_IMLIB_H
+/* Define if you have the <xpm.h> header file. */
+#undef HAVE_LIBPNG
+
Index: client/configure
diff -u client/configure:1.6 client/configure:1.7
--- client/configure:1.6 Tue Jun 20 21:45:47 2000
+++ client/configure Sun Aug 13 21:42:35 2000
@@ -3186,45 +3186,9 @@
fi
-echo $ac_n "checking for main in -lgdk_imlib""... $ac_c" 1>&6
-echo "configure:3191: checking for main in -lgdk_imlib" >&5
-ac_lib_var=`echo gdk_imlib'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_save_LIBS="$LIBS"
-LIBS="-lgdk_imlib $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 3199 "configure"
-#include "confdefs.h"
-
-int main() {
-main()
-; return 0; }
-EOF
-if { (eval echo configure:3206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- GTK_LIBS="$GTK_LIBS -lgdk_imlib"
-else
- echo "$ac_t""no" 1>&6
-fi
-
echo $ac_n "checking for main in -lXext""... $ac_c" 1>&6
-echo "configure:3228: checking for main in -lXext" >&5
+echo "configure:3192: checking for main in -lXext" >&5
ac_lib_var=`echo Xext'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3232,14 +3196,14 @@
ac_save_LIBS="$LIBS"
LIBS="-lXext $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3236 "configure"
+#line 3200 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:3243: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3259,24 +3223,30 @@
echo "$ac_t""no" 1>&6
fi
+
+
+CPPFLAGS="$gcfc_save_CPPFLAGS"
+LIBS="$gcfc_save_LIBS"
+
+
-echo $ac_n "checking for main in -lImlib""... $ac_c" 1>&6
-echo "configure:3265: checking for main in -lImlib" >&5
-ac_lib_var=`echo Imlib'_'main | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for main in -lpng""... $ac_c" 1>&6
+echo "configure:3235: checking for main in -lpng" >&5
+ac_lib_var=`echo png'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-lImlib $LIBS"
+LIBS="-lpng $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3273 "configure"
+#line 3243 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:3280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3291,19 +3261,21 @@
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- X_LIBS="$X_LIBS -lImlib"
+ ac_tr_lib=HAVE_LIB`echo png | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+ cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+ LIBS="-lpng $LIBS"
+
else
echo "$ac_t""no" 1>&6
fi
-CPPFLAGS="$gcfc_save_CPPFLAGS"
-LIBS="$gcfc_save_LIBS"
-
-
-
echo $ac_n "checking for main in -ldmalloc""... $ac_c" 1>&6
-echo "configure:3307: checking for main in -ldmalloc" >&5
+echo "configure:3279: checking for main in -ldmalloc" >&5
ac_lib_var=`echo dmalloc'_'main | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3311,14 +3283,14 @@
ac_save_LIBS="$LIBS"
LIBS="-ldmalloc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3315 "configure"
+#line 3287 "configure"
#include "confdefs.h"
int main() {
main()
; return 0; }
EOF
-if { (eval echo configure:3322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3294: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3347,7 +3319,7 @@
echo $ac_n "checking for sqrt in -lm""... $ac_c" 1>&6
-echo "configure:3351: checking for sqrt in -lm" >&5
+echo "configure:3323: checking for sqrt in -lm" >&5
ac_lib_var=`echo m'_'sqrt | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -3355,7 +3327,7 @@
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3359 "configure"
+#line 3331 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -3366,7 +3338,7 @@
sqrt()
; return 0; }
EOF
-if { (eval echo configure:3370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3342: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -3396,12 +3368,12 @@
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3400: checking for ANSI C header files" >&5
+echo "configure:3372: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3405 "configure"
+#line 3377 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -3409,7 +3381,7 @@
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3385: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3426,7 +3398,7 @@
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3430 "configure"
+#line 3402 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -3444,7 +3416,7 @@
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3448 "configure"
+#line 3420 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -3465,7 +3437,7 @@
:
else
cat > conftest.$ac_ext <<EOF
-#line 3469 "configure"
+#line 3441 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3476,7 +3448,7 @@
exit (0); }
EOF
-if { (eval echo configure:3480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -3499,21 +3471,21 @@
fi
-for ac_hdr in fcntl.h sys/ioctl.h sys/time.h unistd.h string.h sys/select.h Imlib.h
+for ac_hdr in fcntl.h sys/ioctl.h sys/time.h unistd.h string.h sys/select.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3507: checking for $ac_hdr" >&5
+echo "configure:3479: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3512 "configure"
+#line 3484 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3517: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3489: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -3541,12 +3513,12 @@
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:3545: checking for working const" >&5
+echo "configure:3517: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3550 "configure"
+#line 3522 "configure"
#include "confdefs.h"
int main() {
@@ -3595,7 +3567,7 @@
; return 0; }
EOF
-if { (eval echo configure:3599: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -3616,12 +3588,12 @@
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3620: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:3592: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
+#line 3597 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -3630,7 +3602,7 @@
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3634: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -3653,13 +3625,13 @@
if test $ac_cv_prog_gcc = yes; then
echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
-echo "configure:3657: checking whether ${CC-cc} needs -traditional" >&5
+echo "configure:3629: checking whether ${CC-cc} needs -traditional" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_pattern="Autoconf.*'x'"
cat > conftest.$ac_ext <<EOF
-#line 3663 "configure"
+#line 3635 "configure"
#include "confdefs.h"
#include <sgtty.h>
Autoconf TIOCGETP
@@ -3677,7 +3649,7 @@
if test $ac_cv_prog_gcc_traditional = no; then
cat > conftest.$ac_ext <<EOF
-#line 3681 "configure"
+#line 3653 "configure"
#include "confdefs.h"
#include <termio.h>
Autoconf TCGETA
@@ -3699,12 +3671,12 @@
fi
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3703: checking for vprintf" >&5
+echo "configure:3675: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3708 "configure"
+#line 3680 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -3727,7 +3699,7 @@
; return 0; }
EOF
-if { (eval echo configure:3731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -3751,12 +3723,12 @@
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3755: checking for _doprnt" >&5
+echo "configure:3727: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3760 "configure"
+#line 3732 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -3779,7 +3751,7 @@
; return 0; }
EOF
-if { (eval echo configure:3783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -3806,12 +3778,12 @@
for ac_func in mkdir socket strcspn sysconf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3810: checking for $ac_func" >&5
+echo "configure:3782: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3815 "configure"
+#line 3787 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -3834,7 +3806,7 @@
; return 0; }
EOF
-if { (eval echo configure:3838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3810: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
Index: client/configure.in
diff -u client/configure.in:1.6 client/configure.in:1.7
--- client/configure.in:1.6 Tue Jun 20 21:45:47 2000
+++ client/configure.in Sun Aug 13 21:42:35 2000
@@ -246,12 +246,12 @@
fi
dnl Put this here so we get the gdk libs
-AC_CHECK_LIB(gdk_imlib, main,GTK_LIBS="$GTK_LIBS -lgdk_imlib")
+dnl AC_CHECK_LIB(gdk_imlib, main,GTK_LIBS="$GTK_LIBS -lgdk_imlib")
dnl Need to check for Xext while we still have X_LIBS set.
AC_CHECK_LIB(Xext, main, X_LIBS="$X_LIBS -lXext")
-AC_CHECK_LIB(Imlib, main, X_LIBS="$X_LIBS -lImlib")
+dnl AC_CHECK_LIB(Imlib, main, X_LIBS="$X_LIBS -lImlib")
dnl Restore previous CPPFLAGS and LIBS.
CPPFLAGS="$gcfc_save_CPPFLAGS"
@@ -259,6 +259,8 @@
AC_SUBST(LIBS)
+AC_CHECK_LIB(png, main)
+
dnl not strictly needed, but since the X11 client uses it, lets use it here
AC_CHECK_LIB(dmalloc, main)
@@ -268,7 +270,7 @@
dnl Checks for header files.
AC_HEADER_STDC
-AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h string.h sys/select.h Imlib.h)
+AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h string.h sys/select.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
Index: client/gx11.c
diff -u client/gx11.c:1.6 client/gx11.c:1.7
--- client/gx11.c:1.6 Sun Aug 6 22:27:22 2000
+++ client/gx11.c Sun Aug 13 21:42:35 2000
@@ -1,6 +1,6 @@
/*
* static char *rcsid_xio_c =
- * "$Id: gx11.c,v 1.6 2000/08/07 05:27:22 cvs Exp $";
+ * "$Id: gx11.c,v 1.7 2000/08/14 04:42:35 cvs Exp $";
*
* This file handles all the windowing stuff. The idea is
* that all of it is in one file, so to port to different systems
@@ -105,8 +105,9 @@
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
-#ifdef HAVE_IMLIB_H
-#include <gdk_imlib.h>
+#ifdef HAVE_LIBPNG
+#define PNG_GDK
+#include "png.c"
#endif
static int image_size=24;
@@ -306,12 +307,9 @@
};
struct PixmapInfo {
- Pixmap pixmap,mask;
- Pixmap bitmap;
long fg,bg;
GdkPixmap *gdkpixmap;
GdkBitmap *gdkmask;
- GdkPixmap *gdkbitmap;
};
struct GtkMap {
@@ -1285,9 +1283,11 @@
}
}
else if (display_mode == Png_Display) {
-#ifdef HAVE_IMLIB_H
- if (gdk_imlib_load_file_to_pixmap(buf, &pixmaps[pnum].gdkpixmap, &pixmaps[pnum].gdkmask)==0) {
- fprintf(stderr,"Got error on Imlib_load_file_to_pixmap\n");
+#ifdef HAVE_LIBPNG
+
+ if (png_to_gdkpixmap(gtkwin_root->window, buf, &pixmaps[pnum].gdkpixmap,
+ &pixmaps[pnum].gdkmask,gtk_widget_get_colormap(gtkwin_root))) {
+ fprintf(stderr,"Got error on png_to_gdkpixmap\n");
requestface(pnum, face, buf);
}
#endif
@@ -1970,7 +1970,6 @@
static int get_game_display(GtkWidget *frame) {
- /*#include "pixmaps/bg.xpm"*/
GtkWidget *gtvbox, *gthbox;
gtvbox = gtk_vbox_new (FALSE, 0);
@@ -3405,18 +3404,6 @@
****************************************************************************/
-/*#define draw_status_icon(l,x,y,face) \
-do { \
- XClearArea(display, l->win, x, y, 24, 6, False); \
- if (face) { \
- XSetClipMask(display, l->gc_status, icons[face].mask), \
- XSetClipOrigin(display, l->gc_status, x, y), \
- XCopyArea(display, icons[face].pixmap, l->win, l->gc_status, \
- 0, 0, 24, 6, x, y); \
- } \
-} while (0)
-*/
-
/*
* draw_all_list clears a window and after that draws all objects
* and a scrollbar
@@ -6234,7 +6221,7 @@
#ifdef Xpm_Pix
puts("-xpm - Use color pixmaps (XPM) for display.");
#endif
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
puts("-png - Use png images for display.");
#endif
puts("-showicon - Print status icons in inventory window");
@@ -6305,7 +6292,7 @@
#endif
}
if (!strcmp(argv[on_arg],"-png")) {
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
display_mode = Png_Display;
image_size=32;
continue;
@@ -6384,11 +6371,6 @@
init_keys();
if (cache_images) init_cache_data();
destroy_splash();
-#ifdef HAVE_IMLIB_H
- if (display_mode == Png_Display) {
- gdk_imlib_init();
- }
-#endif
return 0;
}
@@ -6519,7 +6501,7 @@
*/
void display_newpng(long face,char *buf,long buflen)
{
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
char *filename;
FILE *tmpfile;
@@ -6540,8 +6522,10 @@
fclose(tmpfile);
}
- if (gdk_imlib_load_file_to_pixmap(filename, &pixmaps[face].gdkpixmap, &pixmaps[face].gdkmask)==0) {
- fprintf(stderr,"Got error on Imlib_load_file_to_pixmap\n");
+ if (png_to_gdkpixmap(gtkwin_root->window, filename,
+ &pixmaps[face].gdkpixmap, &pixmaps[face].gdkmask,
+ gtk_widget_get_colormap(gtkwin_root))) {
+ fprintf(stderr,"Got error on png_to_gdkpixmap\n");
}
if (cache_images) {
Index: client/x11.c
diff -u client/x11.c:1.9 client/x11.c:1.10
--- client/x11.c:1.9 Sun Aug 6 22:27:22 2000
+++ client/x11.c Sun Aug 13 21:42:35 2000
@@ -1,6 +1,6 @@
/*
* static char *rcsid_x11_c =
- * "$Id: x11.c,v 1.9 2000/08/07 05:27:22 cvs Exp $";
+ * "$Id: x11.c,v 1.10 2000/08/14 04:42:35 cvs Exp $";
*/
/*
Crossfire client, a client program for the crossfire program.
@@ -306,11 +306,10 @@
/* info win */
#define INFOCHARS 50
-#ifdef HAVE_IMLIB_H
-#include <Imlib.h>
-static ImlibData *id;
-#endif
+#if defined(HAVE_LIBPNG) && !defined(__CEXTRACT__)
+#include <png.c>
+#endif
#include <xutil.c>
/* This is the loop that the client goes through once all the
@@ -324,6 +323,7 @@
*/
extern int maxfd;
+
void event_loop()
{
fd_set tmp_read, tmp_exceptions;
@@ -2604,7 +2604,7 @@
#ifdef HAVE_LIBXPM
puts("-xpm - Use color pixmaps (XPM) for display.");
#endif
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
puts("-png - Use png images for display.");
#endif
puts("-showicon - Print status icons in inventory window");
@@ -2678,7 +2678,7 @@
#endif
}
if (!strcmp(argv[on_arg],"-png")) {
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
display_mode = Png_Display;
image_size=32;
continue;
@@ -2762,11 +2762,6 @@
if (cache_images) init_cache_data();
set_window_pos();
info_ratio=(float) infodata.width/ (float) (infodata.width + INV_WIDTH);
-#ifdef HAVE_IMLIB_H
- if (display_mode == Png_Display) {
- id=Imlib_init(display);
- }
-#endif
return 0;
}
@@ -2891,11 +2886,12 @@
*/
void display_newpng(long face,char *buf,long buflen)
{
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
char *filename;
FILE *tmpfile;
Pixmap pixmap, mask;
+ unsigned long w,h;
if (cache_images) {
if (facetoname[face]==NULL) {
@@ -2913,7 +2909,8 @@
fclose(tmpfile);
}
- if (Imlib_load_file_to_pixmap(id, filename, &pixmap, &mask)==0) {
+ if (png_to_xpixmap(display, win_game, filename, &pixmap, &mask,
+ colormap, &w, &h)) {
fprintf(stderr,"Got error on Imlib_load_file_to_pixmap\n");
}
Index: client/xutil.c
diff -u client/xutil.c:1.7 client/xutil.c:1.8
--- client/xutil.c:1.7 Sat Jun 3 00:20:24 2000
+++ client/xutil.c Sun Aug 13 21:42:35 2000
@@ -1,6 +1,6 @@
/*
* static char *rcsid_xio_c =
- * "$Id: xutil.c,v 1.7 2000/06/03 07:20:24 cvs Exp $";
+ * "$Id: xutil.c,v 1.8 2000/08/14 04:42:35 cvs Exp $";
*
* This contains varous 'support' functions. These functions will probably
* go mostly unaltered between different toolkits, as long as X11 is still
@@ -156,11 +156,13 @@
/* fprintf(stderr,"Successfully loaded %s (%d) from cache\n", buf, pnum);*/
}
} else if (display_mode==Png_Display) {
-#ifdef HAVE_IMLIB_H
+#ifdef HAVE_LIBPNG
Pixmap pixmap, mask;
+ unsigned long w, h;
/* Fail on this read, we will request a new copy */
- if (Imlib_load_file_to_pixmap(id, buf, &pixmap, &mask)==0) {
+ if (png_to_xpixmap(display, win_game, buf,
+ &pixmap, &mask, colormap, &w, &h)) {
requestface(pnum, face, buf);
} else {
pixmaps[pnum].pixmap = pixmap;
Index: client/CHANGES
diff -u client/CHANGES:1.19 client/CHANGES:1.20
--- client/CHANGES:1.19 Thu Aug 10 20:57:09 2000
+++ client/CHANGES Sun Aug 13 21:42:35 2000
@@ -1,5 +1,16 @@
-"$Id: CHANGES,v 1.19 2000/08/11 03:57:09 cvs Exp $"
+"$Id: CHANGES,v 1.20 2000/08/14 04:42:35 cvs Exp $"
Top of CVS tree:
+
+The following change removes imlib as are png loading/rendering library -
+instead, we use our own local function located in png.c. libpng is
+still needed, but it removes the dependancy on imlib. Also, my home
+spun function renders all the png images crossfire uses correctly, while
+imlib had several it did not do properly. MSW 8/13/2000
+Files affected:
+config.h, config.h.in: Change HAVE_IMLIB_H to HAVE_LIBPNG
+configure, configure.in: Change check from imlib to libpng.
+gx11.c,x11.c,xutil.c: Changed to use our functions and not imlib.
+png.c: new file that has our png support in it.
cfsndserv.c: Make some changes so that sound on ultrasparc systems is played
properly. Missing FD_SET call to re-add the soundfd, as well as a missing
More information about the crossfire
mailing list