-*-Text-*-

Changes from Version 1.0 -> 1.0.1:
---------------------------------
The refresh time and the use of the colormap is now controlled via two 
environment variables (XGL_PRIVATECOLORMAP and XGL_FLUSHTIME) and no 
longer through external variables due to problems with shared 
libraries.  libXgl.a is now a shared library and the linker option 
-lX11 can be omitted.

Changes from Version 1.0.1 -> 1.1:
---------------------------------
The function getorigin returned the position of the upper left corner
in X11 coordinates rather than the position of the lower left corner
in GL coordinates. 

The function "gflush()" is no longer supported. Use sleep(0) to flush
the graphics pipeline instead.

XGL supports doublebuffering via the "Multi-Buffering" server
extension. This extension is new in X11R5 and is included in the lpp
X11dev.src under AIX 3.2. To use doublebuffering you have to link the
"Multi-Buffering" extension into your X-Server (AIXlers, see
/usr/lpp/X11/Xamples/README, "Linking the Sample Extensions into the
Server"). The related GL routines are doubleduffer, swapbuffer and
singlebuffer. 

The following functions are added:
getmcolor, getcolor, gconfig, singlebuffer, swapbuffers, doublebuffer,
getvaluator, getbutton, concave, poly2i, poly2s, polf2i, polf2s

Changes from Version 1.1 -> 1.1.1:
---------------------------------
A bug in qread is fixed that caused too much Expose events (REDRAW) to
be filtered out. XGL filters out all Expose events that are directly
followed by another Expose event for the same window. In versions
prior to 1.1.1, qread filtered out ALL Expose events that were
followed by another Expose event, even for another window.

Changes from Version 1.1.1 -> 1.3:
---------------------------------

The following functions are added:
rmv2s, rmv2i, rdr2i, rdr2s, winclose, strwidth, getheight, getdescender.

The qtest and qread routines can now distinguish between LEFTMOUSE,
MIDDLEMOUSE and RIGHTMOUSE and support MOUSEX and MOUSEY events.

Setting XGL_FLUSHTIME to -1 will put the XServer into synchronous mode
(see XSynchonize). This mode seems to be veeeryyy slooow...

Changes from Version 1.3 -> 2.0:
---------------------------------

BackingStore support added. Set XGL_BACKINGSTORE=1.

RGBmode and support for other visual types is added. Xgl can run in a
per window RGB mode, if the X-Server has a TrueColor visual. Xgl will
always select the appropiate visual for the desired mode, independent
of the default visual, ie:

	Colormap mode <-> PseudoColor or GrayScale visual
	RGB mode      <-> TrueColor visual

Short names for environment variables added:
  XGL_FT  for XGL_FLUSHTIME
  XGL_PCM for XGL_PRIVATECOLORMAP
  XGL_BS  for XGL_BACKINGSTORE

The following functions are added:
 winmove, winposition, ginit, RGBmode, RGBcolor, cmode

Two routines arcx and arcxf that are not part of standard gl are
contributed by michael@thp.Uni-Duisburg.DE. With this routines you can
draw outlined and filled _elliptic_ arcs.

All drawing functions are implemented with floating-point arguments, i.e.:
 pnt2, move2, draw2, rmv2, rdr2, arc, arcf, circ, circf,
 rect, rectf, sbox, sboxf, pmv2, pdr2, rpdr2, poly2, polf2, cmov2.

A bug in prefposition is fixed that caused prefposition to not work...

All routines that talk to the X-Server now check for correct
initialisation. This may slow down Xgl a very little bit. You can
undefine CHECKDISPLAY in header.h get the old method (which is also
used by gl :-).

You can set Xgl_Prefix to 1 in Imakefile and do a "xmkmf;make clean;make"
to compile a library named libXglp.a where all function names are
prepended with 'xgl_'. This is to avoid name conflicts if you want to
use Xgl in other projects as the Turbo Pascal for Unix emulator by
Michael Staats (michael@thp.Uni-Duisburg.DE).

Changes from Version 2.0 -> 2.1:
---------------------------------

Name of library changed to Ygl due to a nameing conflict with SUNs XGL
library.

All environment vars now starts with YGL_. The old names remains valid
for compatibility reasons.

Xgl_Prefix -> Ygl_Prefix and all names are prepended with ygl_. Change
file mkprefix to get the old xgl_ prefix.

gversion returns Ygl:X11-x.x (not Xgl:X11-x.x).

Example programs and {Im|M}akefiles revisited.

Button{Press|Release} events are only received when nessesary now.

Bugs in rdr and arc/arcf fixed. They didn't work as expected...

Bug in charstr to RGB windows fixed (core dumped).

Bug in winclose fixed.

Support for StaticGray visual added. Ygl now runs on Monochrome
servers (again) (eg. XFree under Linux).

Colormaps are now only installed when the server has room for them.
This avoids the colormap switches on startup.

The following function is added:
 gRGBcolor.

Changes from Version 2.1 -> 2.2:
---------------------------------

Note that you don't need to recompile the X-Server anymore to use
doublebuffering under AIX 3.2.5 (AIXWindows 1.2.3). You simply have to
add the option "-x mbx" to the X-Servers command line on startup.

Additionaly, the multibuffer routines under AIX are in libXext.a now
(as they should...).

Bug in qread (Alt/Ctrl keys were reported as normal keys) fixed.
Bug in qtest that eventually caused unknown events to block the queue
fixed.

The following function is added:
 ortho2.

Changes from Version 2.2 -> 2.3:
---------------------------------

The following functions are added:
 lrectread, lrectwrite, readsource.

lrectread returns the same array as the GL version.

DirectColor visuals are supported, too, now.

Changes from Version 2.3 -> 2.4:
---------------------------------

The following functions are added:

  rectcopy, cpack, c3s, c3i, c3f, linewidth, rect{read|write}
  getXgc, crect{read|write}

getXgc is not included in standard GL. It returns a pointer to the
graphics context just like getXdpy and getXwin returns pointer to the
display resp. window. You can use it for example to draw lines etc.
xored with the background:

#include <X11/X.h>
...
XSetFunction(getXdpy(), getXgc(), GXxor);

crect{read|write} are also not in standard GL. They work the same as
lrect{read|write}, they only {read|write} the data to a char array
instead of a Int32 array. This is to speed up Colormap mode
operations. 

Bug in timer handling fixed which caused flushtimes >= 1 second to be
ignored.

Small bugs in lrect{read|write} fixed.

All rect* and sbox* routines now draw rectangles even when x2 < x1 or
y2 < y1, i.e. rect(10,10,20,20) is the same as rect(20,20,10,10).
circ* and arc* routines now interpret negative radii as zero.

doublebuffer and singlebuffer are now available in the library even
when not compiled with -DMULTIBUF. 

A new example program "smile.f" illustrates how to call Ygl routines
from Fortran under AIX.
