Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CF: CVS changes (png support)




 The changes below add support for png display in the client.  Most of the
changes are in the client.  It works pretty good, but at least on my system,
there appears to be a bug someplace that causes some pngs not to get rendered
correctly - it is in one of the libraries, as if I use gimp or imagemagick to
display the file at question, it displays fine, yet if I use a sample display
program that imlib provides source for, it does not display correctly (it has
vertical white stripes every other pixel).  The client sees the same thing.

 The png images have been checked into CVS as of a couple days ago.  Peter - you
can delete the arch32 distribution now if you want, so that data has been merged
in.

Server changes:
lib/crossfire.png: Some floors modified to no longer have transperencies.
include/newserver.h:  Add Send_Face_Png made, also update versions of
        the protocol
include/newclient.h:  Add CF_FACE_PNG constant.
socket/request.c: Add support for receiving PNG facemode request,
        ad final logic to send png images to the client.
Changes by Mark Wedel, 6/2/2000


Client changes:
Protocol: Update for png information - addition of image command.
client.c: Add support for image command.  Change initializing so we get
        the protocol from the server early on - we need to know it before
        we tell it what facemode we want, as it may not support png
        images.  do protocol version check and if the server does not 
        support it and the user request png, fail out.
client.h: Increase versions of protocol.  Add Png_Display to possible display
        modes.
command.c: Add ImageCmd function which processes the image command 
        (used for receipt of png images).  the use of the image command
        can be abstracted in the future for other image formats quite easily.
config.h.in (& config.h): Add HAVE_IMLIB_H define which lets us know if
        the imlib is available.
configure.in (& configure): Add detection for imlib and set the appropriate
        variables so that they get linked properly.  Also add check
        for Imlib.h
gx11.c: Update for png support - add display_newpng command, change
        XPM_SIZE to image_size and make it a variable and not a define.
        Pull in appropriate imlib support, as well as rendering of
        png data.  Some dead code removed.  display_usepng, 
        display_usxpm, and display_newpng functions added.
newclient.h: Add CF_FACE_PNG constant for CS communication.
proto.h: Updated for new png functions.
x11.c: Many of the same changes as gx11.c above.  More work was done here
        as the 24 image size was hardcoded into this file - it is
        now a variable also, so supporting other image sizes in the future
        should also be quite easy.  Once the Png's are rendered, they are
        drawn the same was as the Xpm's are, so many checks for
        display_mode==Xpm_Display also check for Png_Display.
xutil.c: Support for PNG images added.  Changes are mostly related to
        caching code.
Changes by Mark Wedel, 6/2/2000
-
[you can put yourself on the announcement list only or unsubscribe altogether
by sending an email stating your wishes to crossfire-request@ifi.uio.no]