mirror of
https://github.com/gryf/wmaker.git
synced 2026-02-02 22:25:48 +01:00
code like
*ptr++ = *ptr++ = *ptr++ = color;
is wrong, because there is no guarantee that ptr will be incremented
_between_ the assignment operations. it can be incremented after all
assignment operations as well. Because of this both of these are valid
implementations for a compiler:
a. assign, increment, assign, increment, assign, increment
b. assign, assign, assign, increment by 3
In case b. only the first memory location of the 3 will be modified, being
assigned 3 times the same value, while the other 2 remain unchanged.
For example egcs-2.91.66 (and possibly gcc-2.95.x too) implement this in
the second way (like in case b.)
Also the order in which the assignement is made is undefined (left to right
or right to left).
this fixed the problem we had with greyscale jpegs showing up in red,
and possibly other problems related to pseudocolor and greyscale displays.
WindowMaker raster graphics library This library is used to manipulate images and convert them to a format that can be displayed through the X window system. Read the wraster.h header for an idea of what is available This Library is LGPL and Copyright (c) Alfredo K. Kojima <kojima@inf.ufrgs.br> The following environment variables control some parameters: RIMAGE_CACHE <integer> Is the maximum number of images to store in the internal cache. Default is 8 RIMAGE_CACHE_SIZE <integer> Is the size of the biggest image to store in the cache. Default is 4k (64x64) Porting ======= It should be fairly easy to port it to other environments (svgalib, libggi etc), probably only requiring wraster.h, context.c and convert.c to be changed. Note that the X specific code should be disabled in that case, including support for libXpm.