
PLIB Change Log.
================


PLIB v1.8.5 (Oct 2006)
~~~~~~~~~~~~~~~~~~~~~~


  * removed several widgets from pui/, which were declared
    obsolete since a long time. Most of them are now available
    in puAux/

  * several fixes and improvements to puAuxList

  * puInputText scrolling fixed.

  * Improved DirectX loader.

  * Check ownership before deleting in ssgSimpleList.

  * Fixed netSocket.

  * Fixed mem leak in ssgVertSplitter.

  * Fixed pw window sizes on win32.

  * Added pview ssg-example.

  * Fix clock delta in first call.

  * Made colour of listbox changable.

  * Fixed text with negative coordinates

  * Fixed misc bugs in puAuxLargeInput

  * Allow the user to activate a widget with custom mouse button.

  * Made material loading from wavefront models more robust.

  * Handle linux joysticks with a lot of axes.

  * Avoid specular anomalies in 3ds files.

  * Added a demo for ssgaShapes.

  * Fixed the diameter of ssgaSphere.

  * Fixed inability to add colour to the ssgaTeapot.

  * Remove scale dep in ssgaFire



PLIB v1.8.4 (Jan 2005)
~~~~~~~~~~~~~~~~~

  * Added a way to get SSG intersection tests to work with
    backfacing polygons.

  * Added ssgaScreenDepthDump into ssgAux.

  * Several fixes for FreeBSD included.

  * Added exporter for OpenInventor.

  * Implemented im- and exporter for ASC files.

  * Optimisations.

  * Various (minor) improvements to ASE, MDL, PCX and X loading and ASE saving.

  * Implemented ssgAnimTransforms.

  * AC loader now reads "crease" lines and creates much smaller and 
    cleaner scene graphs.

  * Joystick code adapted to current OS versions (especially Linux).


PLIB v1.8.3 (April 8th 2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * NET now allows a NULL argument to netSocket::accept

  * Added #include <stdio.h> to all top level header files
    in order to ensure that NULL is defined.

  * Added ssgaScreenDump into ssgAux.dsp

  * Cleaned up some warnings from MSVC.

  * Added Christos Dimitrakakis' fixes to SL to prevent
    crackling in certain envelope conditions.

  * Added pwAutoRepeatKey to control keyboard auto-repeat.

  * Fixed a horrific bug in the sgDistToLineSegment routines.


PLIB v1.8.2 (March 26th 2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * PW now runs on Mac and MacOSX.

  * Uppercase keystrokes now work in PW for Windows.

  * Version number in ul.h now set correctly.

  * Package now builds correctly under MSVC. 

PLIB v1.8.1 (March 21th 2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * puAux library wouldn't build without GLUT being
    installed...that's fixed.

  * the NET library examples needed some love and
    attention.  They are much more useful now!

PLIB v1.8.0 (March 19th 2004)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * puAux library added to provide a place for the
    more obscure PUI widgets.

  * PW (PLIB Windowing) library added to provide a
    built-in alternative to windowing libraries such
    as GLUT and SDL.  Applications that only need a
    single window, mouse and keyboard (and no other
    features of GLUT) can now have no dependencies
    whatever outside of PLIB and OpenGL.

  * PLIB is now completely independent of GLUT.  You
    can even build it without GLUT being installed.
    Modules to allow PUI to work with GLUT, freeglut,
    SDL, FLTK and our own PW windowing library are
    provided.

  * ssgAux now includes a relatively simple sky model
    kindly donated by the SimGear project.  Now you
    can have sun, moon, stars and clouds with just
    a handful of function calls.

  * PSL - a C-like interpreted scripting language
    is now bundled into PLIB.  It's a byte-code
    interpreter - and it has some useful properties
    for games and other interactive packages in
    that it allows the application much finer control
    over the running of the script(s) than traditional
    scripting engines.

  * In the demos area, we added the 'simon' package
    which provides a simple framework for PSL scripts
    to be loaded - and they may in turn load 3D models,
    move them around, etc.  Astropong.psl (a simple 3D
    'Pong' game in PSL) is provided as a demo.

And of course, many bugs have been slain and numerous
other smaller features have been added.


PLIB v1.6.0 (Sept 2nd 2002)
~~~~~~~~~~~~~~~~~~~~~~~~~~~

It's been over a year since the last PLIB release
and we have been somewhat lax about maintaining a
list of changes.

Some highlights are:

  * Significant improvements and cleanup throughout PLIB,
    especially in PUI.

  * ssgAux library added - includes handy classes for
    more sophisticated effects layered on top of SSG.

      + Standard shapes like cubes, spheres,
        cylinders and teapots.

      + Water waves.

      + Fire.

      + Particle Systems

      + Lens Flare.

  * More example programs.

  * P-Guide GUI builder for PUI.

  * JS promoted to a full library.

PLIB v1.5.1 (July 21st 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Added ssgTween and ssgTweenController

  * Added puFileSelector - henceforth puFilePicker is deprecated.

  * Added ulList

  * Added VRML loader (this one works!)

  * Numerous bug fixes in other loaders.

  * Added TopHat support to JS

  * Added support for >3 simultaneous sounds in SL.
    (You have to explicitly enable that though - it's not
    the default)

  * Fixed bugs in util's directory handling.

  * puInput and puListBox now cope better with text that
    is too big for the widget

  * puListBox (and hence puFileSelector and puFilePicker)
    works with both large and small font sizes.

  * puDial changed to be derived from puSlider - many
    consequences of that change will be visible in the
    application.  (eg output range is 0..1 and not 0..360)

  * PUI widgets are now 'sticky' so that if you are
    dragging a slider along a puSlider and your mouse
    slips off the edge of it, it'll still have "focus".

  * Added sgLerpAnglesVec3 to linearly interpolate
    angles allowing for the nasty wrap-around-360
    problem.

  * Added sgLineSegment3ToLine3, sgDistSquaredToLineVec3
    sgDistSquaredToLineSegmentVec3, sgDistToLineVec3 and
    sgDistToLineSegmentVec3.  Also sgLine3 and sgLineSegment3
    structures.

  * Added a 'Gallery' page to the documentation to show
    potential developers the range of applications that use
    PLIB - and also to promote things our developers have done.
    To save download time and CVS space, the actual images
    are not in the PLIB tarball.

PLIB v1.4.2 (July 21st 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Changes in NET to allow compilation under RedHat 7.1

  * Fixed a small bug in ssgaSphere

  * Fixes a small bug in puFilePicker

PLIB v1.4.1 (June 25th 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Converted MSVC project files to 'BINARY' in the CVS archive
    because some versions of MSVC don't line UNIX-style line endings.

  * Many improvements and bug fixes to puFileSelector and puListBox.

  * Minor fix to NET to accomodate Solaris users.

  * Fixed puMenuBar so it highlights as you drag the mouse across it.

  * Fixed ulOpenDir so it returns NULL on error on non-MSVC systems

  * Changed colour of text on buttons in documentation to make them
    easier to read by colour-blind users.

PLIB v1.5.0 (June 20th 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Just a 'place holder' - actually identical to 1.4.0.

PLIB v1.4.0 (June 20th 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Fixed example programs so they don't use the obsolete _SSG_TYPE
    tags.

  * Removed multiplie <HEAD> tags on web pages.

  * Updated 'AUTHORS' file.

  * Added 'demos' to the CVS repository.

PLIB v1.3.3 (June 18th 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Various warnings cleaned up under MSVC.

  * Fixed function prototypes for the Quaternion functions in SG

  * Fixed bug in sgEulerToQuat where the angles were not being
    converted from degrees to radians.

  * Changed PUI to make sliders and dial widgets grab a hold
    of the mouse focus and not release it until the button is
    released.  This is a subtle but important behavioural change.

  * puDial's are now derived from puSlider's - one side-effect of
    that is that they now return 0..1 rather than 0..360 and no
    longer support the maximum and minimum range functions.

PLIB v1.3.2 (June 13th 2001)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
  * This CHANGES file has regrettably not been well maintained,
    hence there a numerous changes not listed here.

  * File loaders now require app to pass 'ssgLoaderOptions'
    rather than other ad-hoc callback function hooks.

  * Added Active Widget Implementation (pui)

  * Added puFilePicker  

  * Added Ref Counting to ssgState

  * Added puBiSlider and puTriSlider

  * Added some missing 'AUTHORS' entries.

  * puDial widget (was actually in 1.3.1 but got
    missed in the 'CHANGES' file)

  * Fixed a problem in the configure.in that prevented
    ssgAux from building.

  * Moved the 'name' and 'user_data' (with associated
    set/get member functions) from ssgEntity down into
    ssgBase so that these functions will work with ssgState
    and ssgTexture objects.  This is needed for PrettyPoly.

PLIB v1.3.1 (Sept 15th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Changed License conditions to specifically permit
    use of PLIB outside of LGPL for embedded applications.

  * There is now a task and bug tracking system for PLIB
    on Sourceforge.

  * Configuration/Install tool changed to support CygWin
    better than in the past.

  * PLIB examples' data files consolidated into a single
    'examples/data' directory.

  * PLIB's documentation is now under CVS.

  * Added 'SSGAUX' library - include <plib/ssgAux.h>
    and link to /usr/lib/libplibssgaux.a

  * Aux library has 'ssga' classes to add high level
    shapes such as cylinders, cubes and spheres (two
    different kinds).

  * Lots of new example programs.
    + New PUI 'complex' uses multiple windows.
    + Cute 'waving flag' demo
    + Working Quaternions versus Eulers demo 
    + Model viewer (this is actually a useful
      program - as well as a demo).
 
  * More const-correctness throughout library.

  * OPTIONAL support for PNG image loading (you have
    to compile PLIB specially to get this because it
    introduces an additional dependancy).

  * PLIB now checks that a valid OpenGL rendering
    context exists when the various ssgInit/puInit/etc
    routines are called.

  * PUI hasi:
    + better support for multiple windows,
    + a new function to allow the deletion of an object
      within one of it's own callbacks.
    + the ability to operate in a separate OpenGL
      coordinate space.
    + puFilePicker and puListBox
    + enhancements to puSlider

  * SL has a completely new audio driver for SGI's IRIX.
    Unfortunately, we don't think it fixes the long-standing
    timing problems for audio under IRIX.

  * SSG's ssgVtxArray and ssgIndexArray now use 'short's for
    indices - which is more efficient on most OpenGL's.

  * Several bugs fixed in SSG - also some changes to make it
    more suited to embedded use in game consoles and such.

  * Many improvements to SSG's post-processing tools that are
    typically applied to scene graph fragments after loading
    from disk.

  * SSG now permits you to disable MIPmapping for selected
    textures.

  * SSG's print() functions now work for more classes and
    produce more useful output.

  * Code for ssgVtxArray streamlined.

  * Added a 'Lookat' function for SSG's camera model.

  * ssgSelectors can now have more than 32 kids.

  * ssgContext had incorrect defaults for the camera
    orientation.

  * Some loaders were not sharing ssgState's between
    polygons - that's fixed.

  * 3DS loader has had numerous improvements...but the
    limitations of this format are becoming evident.

  * All error/warning handling is now done through a
    centralized handler that can be redirected (eg to
    send errors to a popup window or something)

  * Some bugs fixed in ASE loader.  It now uses
    ssgVtxArray primitives.

  * Added a loader for the Quake 'MD2' format. It
    seems to work amazingly well.

  * Added 'UL' library.  Applications MUST link to
    -lplibul  (/usr/lib/libplibul.a) - and should
    include <plib/ul.h> and call ulInit() before
    making UL calls.

    If you use automake/autoconf, then it's easy
    to make applications that will compile and link
    under both PLIB 1.2 and 1.3/1.4, just add this:

    AC_CHECK_LIB(plibul, ulInit,,,)

    libplibul currently contains:

    + Fast, portable clock/timer routines.
    + Low level networking code.
    + Some directory searching routines.
  
  * Documents and Examples are now under CVS.

  * Added Tools and Auxlibs folders for future
    work.


PLIB v1.3.0 (July 1st 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Unstable version of 1.2.0, no significant code
    changes.

PLIB v1.2.0 (July 1st 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~

  * Stable version of 1.1.12, no significant code
    changes.

PLIB v1.1.12 (June 24th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed some compilation problems for Macintosh/Codewarrior
    which treats 'xor' and 'or' as reserved words!! Yikes!
    Thanks to Darrell Walisser for that piece of nasty news.

  * Fixed some problems in slMODinst.cxx that were causing
    compilation warnings under windoze (thanks to Bram Stolk)

  * Changed SL to open audio devices with O_NONBLOCK -
    thanks to Trent Gamblin for spotting this one.

  * Added configure.in check for libdl to cover bug in ld.so
    under Linux.  Application programs under Linux need to
    link to libdl.so in order to work around this.
    Ben Woodhead <zander@isn.net> added this.

  * Added Borland project files, thanks to Dave Heil for
    contributing these.

  * Swapped order of multiplication in sgMultMat4. Thanks to
    Lucas Ackerman for spotting this one.

  * Added a unique ID field to every node in the scene graph.
    This helps out some picking algorithms in PPE.

  * Added some more ifdefs to make PLIB Audio/JS components
    to make them work under NetBSD. (They already work with
    FreeBSD and OpenBSD).  Many thanks to Rene Hexel!

  * Fixed a ref() problem with ssgVtxTable::clone - thanks
    to Will Weisser for catching that one!

  * Added checks to ensure that a valid OpenGL rendering
    context exists before ssgInit/puiInit/fnt-loaders are
    called.

  * Added Dave McClurg's ASE loader and matching writer.
    If you use the new 'ssgLoad()/ssgSave()' functions,
    it'll "just work" - if you prefer you can call
    ssgLoadASE/ssgSaveASE analogously to all the other
    loaders.

  * Several fixes to the quaternion code in SG were
    contributed by "Negative0" <negative0@earthlink.net>
    (Who was that masked man?)

PLIB v1.1.11 (Feb 9th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed a tiny problem with double-sided polygons.

PLIB v1.1.10 (Feb 9th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added ssgLoad and ssgSave that look at the
    filename extension and call the appropriate
    lower level load/save routine.

  * Added a 'clone' function for all SSG classes.

  * PLIB now managed under CVS at SourceForge.

      http://sourceforge.net/project/?group_id=382

  * Added a collection of line/plane, plane/plane
    and line/line intersection routines to SG.
    Thanks to Norman Vine for most of them.

  * Fixed a bug in SSG file loader that would
    prevent recognition of obsolete SSG file
    types.

PLIB v1.1.9  (Jan 28th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed bug that caused the ref counts of the
    various vertex arrays in an ssgVtxTable to
    be incorrectly set to zero when that VtxTable
    is loaded from an '.ssg' format file.
    This tended to crash SSG with an assertion
    failure whenever you deleted an object
    loaded from a '.ssg' file.

  * Added the current texture map filename to
    ssgSimpleState and ssgStateSelector - which
    means that...

  * The SSG file format finally works correctly.
    Note that any SSG files you might have created
    before this release won't work anymore...but
    then they didn't work correctly before.

PLIB v1.1.8  (Jan 23rd 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added ssgContext.  This makes it a lot easier
    to write programs that need to render multiple
    eyepoints in quick succession.

  * Added functionality to ssgVtxTable to enable
    applications to construct a vertex table and
    then add the vertex arrays instead of doing
    it all in one step.

PLIB v1.1.7  (Jan 20th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Ooops!  1.1.6 accidentally went out set up to
    REQUIRE the 'freeglut' library instead of the
    original GLUT.  That's fixed now - it'll pick
    up on whichever you have installed and use
    freeglut if you have both. (This only really
    selects which header PLIB will use - you can
    still link your application against either
    GLUT)

    freeglut is here:
      http://freeglut.sourceforge.net

PLIB v1.1.6  (Jan 19th 2000)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Changed ssgSaveSSG and ssgSaveAC to return
    TRUE on success, FALSE otherwise. Neither
    function is really working well enough for
    'primetime' use.

  * Added an optimisation to sgInvertMat4 (thanks
    to Norman Vine).

  * Changed all Makefile.am's to refer to top_srcdir
    rather than top_builddir - I have no idea why that
    matters - but Steve Lamont <spl@szechuan.ucsd.edu>
    says it matters - so I fixed it!

  * Fixed a bug in PUI's default colour scheme picker
    that caused text on dark coloured backgrounds to
    be black instead of white.

PLIB v1.1.5  (Dec 20th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Optimised sgMakeNormal (thanks to Klaus Hartmann!)
  * Added 'Orthographic' rendering modes to SSG...this
    is a work in progress - so no documentation yet - sorry!

PLIB v1.1.4  (Dec 3rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Moved pre- and post-draw callbacks from ssgLeaf
    to all ssgEntities.
  * Changed user-data - all userdata must be derived
    from ssgBase so that it can be ref-counted and
    automatically deleted when no longer referenced.
  * Added some specialised highlighting code for
    the PPE tool.

PLIB v1.1.3  (Nov 28th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added some missing 'get' functions to SSG.
  * Added a way to load the current view frustum
    and modelview matrices into OpenGL.
  * Removed dependancy of SSG on GLUT.
  * Added ssgVtxTable - which will ultimately
    replace ssgVTable.  The main difference is
    that ssgVtxTables don't support indexing and
    add reference counted vertex data tables.
  * ssgLoadAC changed to use the new ssgVtxTable.
  * Added pre- and post-draw callbacks to ssgLeaf.

PLIB v1.1.2  (Nov 8th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed double declaration of sgdTransposeNegateMat4
    that prevented SG from compiling under Windoze.
  * Split examples and documentation off into a
    separate tarball.

PLIB v1.1.1  (Nov 6th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added routines to SG to interconvert sgd and sg
    data types.
  * Matrix inversion routines added to SG.
  * Attempt to work around possible compiler
    error in ssgLoad3Ds - this shows up in some
    versions of CygWin under Windoze and exhibits
    itself as an out-of-memory error when loading
    3DStudio models.

PLIB v1.1.0  (Oct 29th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * This is actually identical to 1.0.20 except
    that it installs its headers in /usr/include/plib
    and its libraries in /usr/lib. To avoid name-space
    pollution in /usr/lib, the libraries are renamed
    as follows:

      libssg.a  --> libplibssg.a
      libsg.a   --> libplibsg.a
      libfnt.a  --> libplibfnt.a

    ...you get the idea I'm sure.

  * With this release, I'm going to the even-number-stable,
    odd-number-experimental numbering scheme. Hence,
    I'll be adding bug fixes only to the 1.0.xx series.
    When 1.1.xx has been enhanced - and is again stable,
    it'll become 1.2.0 and 1.3.0 will be the experimental
    version.

PLIB v1.0.20 (Oct 29th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed problem with memory leakage in SSG, the
    ref count of branch nodes was including the
    parent nodes as well as the children. Revised
    instructions on deleting nodes added to manual.

  * Added sgDistanceSquaredVec2/3/4 to SG. (Christian
    Mayer asked *so* nicely).

  * Added Per Liedman's latest 3D studio file loader.
    This is a truly awesomely useful thing. Thanks Per!

  * This will be the last version to install in
    /usr/local/plib.

PLIB v1.0.19 (Oct 16th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added bunches of missing 'const' directives to SG and
    parts of SSG. Thanks to Christian Mayer for this one.

  * Fixed a bug in FNT that should allow more than two
    lines of text to be output with a single call to
    puFont::drawString. Thanks to Sylvan Clebsch for this one.

  * Added a 'saturation' limit to js.h - intended for those
    joysticks that don't generate a full range of output.
    Thanks again to Sylvan Clebsch!

  * Keiji Kato provided a patch to SL for the Windoze
    platform that fixes some kind of a slowdown problem
    when playing sounds on WinNT-4 machines.

PLIB v1.0.18 (Oct 3rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Removed GIF files from all the Web pages. Rassin-frassin
    Unisys...grumble   >:-(

  * Fixed a problem that caused too many joystick axes to be
    reported by JS. Thanks to Paolo Leoncini - good catch!

  * Added new Quaternion interpolation routines and reduced
    complexity of quaternion multiplication routines. Thanks
    to Sylvan Clebsch.

  * ssgEntity (and hence most SSG classes) didn't make a copy
    of strings passed to setName() - hence there was a tendancy
    to leak name memory as objects were deleted.  That's fixed
    but be aware that 'name' is now copied.

  * As requested by Christian Mayer, sgAddScaleVec functions
    have been added into SG.

  * Fixed up some compilation warnings in ssgStateSelector.cxx,
    fnt.cxx and ssgSaveAC.cxx. (Thanks to Sylvan Clebsch for those)

  * Fixed a potential problem in ssgModelPath/ssgTexturePath that
    would blow up if you ever passed a local string variable to
    them.  Be sure not to call either function before ssgInit() - OK!

PLIB v1.0.17 (Aug 23rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added new ssgState derivitive "ssgStateSelector".
    Check out SSG documents for details.

  * Stopped warning about unused variable 'ww' in FNT and SSG.

  * Fixed bug in puValue::setValue(char*) that prevented empty
    strings from changing the current string state for the puValue.
    (Thanks to Sylvan Clebsch for finding that one)

  * Removed the 'test' program for PUI (it was never meant to
    be in the release).

  * Added error return to Font loaders (Thanks to Norman Vine).

PLIB v1.0.16 (Aug 13th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed compiler warning in slMODfile.cxx

  * Fixed a bunch of compile errors in slScheduler.cxx due to
    some default arguments that got left in place by mistake.

PLIB v1.0.15 (Aug 12th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Minor fix to SL to make it compile under CygWin.
    Thanks to Norman Vine for that one.

  * MacOS port of SL is now complete!  Many thanks to 
    Darrell Walisser <dwaliss1@purdue.edu>

  * Fixed a problem with const correctness when compiling with
    gcc 2.95.

  * Moved a lot of SL functions from inline to non-inline...
    they had grown over time from one liners into 10 liners.

  * In SM, changed 'not_working' to 'notWorking' to make it
    look more like SL.

  * Fixed bug that caused SL to crash if you played MOD music
    without a sound card (Thanks to Daryll Strauss for finding
    that one).

  * Fixed bug in puButton constructor that makes menus come
    out with irregular height.

  * Fixed recurrent crashing problem with the PUI 'complex'
    demo program.

PLIB v1.0.14 (Aug 4th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * The use of PROXY textures seems to break both nVidia and G200
    Mesa ports for Linux - so I have temporarily commented out
    that code. If you need it, find the code in src/ssg/ssgImageLoader.cxx
    and src/fnt/fntTXF.cxx and re-instate the code that's ifdef'ed out
    using #ifdef PROXY_TEXTURES_ARE_NOT_BROKEN

  * Significant fixes to SL to make it work with /dev/audio under
    SOLARIS. Thanks to Steve Brown for his patch.

  * Somehow the FNT documentation became corrupted in 1.0.13,
    it's fixed now though.

  * FNT and PUI now allow '\n' characters inside strings to
    signify carriage-return + line-feed. Thanks to Shane Arnott
    for this one.

  * Added parameters to FNT routines to allow the application
    to pick which OpenGL texture filtering to apply.

  * Fixed some minor name-space pollution in PUI.

  * Fixed a bug in ssgBaseTransform that causes ssgGetLastTransform
    to mess up on the first call.

  * Fixed a bug in measuring the bounding box of text containing
    space characters in the FNT component. Thanks to Alexander A.
    Babichev for this one.

  * Lots of minor syntax changes for MSVC,

PLIB v1.0.13 (July 8th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Included a JS patch from Karl Heinz Kremer <khk@khk.net> that 
    adds support for the latest Linux joystick driver. For those
    who have the latest driver, this will increase the number of
    joystick axes from 2 to 6.Beware though that the detection of
    which kind of driver is present is currently done at compile
    time which could be a problem for binary distributed code.

  * Added a simple terrain demo (examples/ssg/majik)- originally
    put together to give the good people in the Majik group
    something to play with.
    Check out *their* good stuff at: http://majik.netti.fi

  * Improved state handling in SSG. Also added ssgForceBasicState().

  * JS library should work with FreeBSD. (Thanks to Stephen Montgomery-Smith)

  * Texture loaders in SSG and FNT changed to use GL_PROXY texture
    tests instead of being hard-coded to crappy 256x256 limits.

  * Since puiAlone is sadly outdated, I have ceased to distribute it.
    If you need it, the last version is with plib-1.0.12 on the PLIB
    homepage.

  * Changed definition of SG_PI to be a 'float', fixed the precision
    of SGD_PI to be double.

  * Removed strncasecmp - because it's not universally implemented.

  * Changed an ifdef in SL to allow it to compile under FreeBSD.

  * Added an 'puArrowButton' call - just like a puButton - but
    shaped like an arrow.

  * Added an 'ssgGetVersion' call.

  * Deleted ssgAnimation class (it was never completely
    implemented anyway).

  * Added ssgTimedSelector (which takes over the functions
    I'd planned to add to ssgAnimation).

  * I didn't rename the file ssgAnimation.cxx to ssgTimedSelector.cxx
    because I couldn't stand to change all the MSVC project thingies.

  * Numerous fixes for the Mac:

  * Fixed a byte-swapping problem with the BMP
    texture loader.

  * Changed some arrays from local to 'new/delete' because
    the Mac CodeWarrior compiler can't cope with more than
    32Kb of local memory in a single function or class.

  * Provided conditional compilation for Mac file naming
    conventions in a couple of places. It's not enough though.

PLIB v1.0.12 (June 3rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added a set of MSVC project files.

  * More portability issues resolved.

  * Lots more actually.

  * Official Acronym "IBFITNR" (It'll Be Fixed In The Next Release)
    now adopted.

PLIB v1.0.11 (May 30th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed a problem with LoadAC creating 2-point tstrips.

  * Fixed an assert in SSG's deRef.

  * The tables inside an ssgVTable are now 'protected' rather
    than 'private'.

  * Added new code to slScheduler to allow applications to
    replay MOD files.

  * Reorganized slSamplePlayer to be derived from a new
    abstract base class slPlayer. Added new private class
    slMODPlayer for replaying MOD files.

  * Added a demo program for the new SL MOD player.

  * Added ssgRangeSelector class to allow level-of-detail
    management.  This isn't well tested yet - but it's
    really simple code - so it should be OK.

PLIB v1.0.10 (May 10th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Ooops!  A fatal error in my strcasecmp code.
    1.0.9 and 1.0.10 should have *died* on most
    machines!

PLIB v1.0.9 (May 9th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Error in SGI version of slSample.cxx cleared up (Thanks Devrim!)

  * Made some changes for MSVC.

PLIB v1.0.8 (May 3rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~
  * A couple of warnings eliminated from SL when compiled
    under CygWin.

  * Added a contribution from Simon Britnell <ughbash@yahoo.com>
    to allow programs to search the SSG scene graph by name or
    path. (Thanks Simon!)

  * Fixed a bug in sgIdentityQuat (Thanks Kevin!)

  * Following the first release of Tux-aqfh, I was snowed under with
    little fixes.

    + strcasecmp should be stricmp on some machines...but alas, not
      on others.  The heck with it - I'll just write my own!

    + fntFont wasn't pushing/popping GL state correctly.

    + More minor hacks to make for clean compiles under IRIX.

    + puInterface's destructor was only deleting half of it's
      child node.

    + Missing contructor functions for various SG classes.

    + SSG culling functions were not testing for empty
      bounding spheres.

    + Minor compilation warnings for slSample.cxx

    + example/sl/example.cxx used M_PI - which is a no-no under
      Windoze.


PLIB v1.0.7 (May 3rd 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Removed a bunch of redundant NOTICE, CHANGES
    and REAME files. All that stuff is now maintained
    in the top level directory.

  * SG used to be set up so you could compile it
    in double precision with the drop of an option.
    However, some applications need both float and
    double support - so SG now has duplicate functions
    for double-precision that start 'sgd'.

  * Changed the structure of the FNT library to move
    font sizes from the fntFont/fntTexFont class into
    the fntRenderer class. This corrects a poor design
    decision because it was hard to create fonts in
    multiple point sizes and slants without using
    multiple identical texture maps (BAD!).  RTFM.

  * Added a bunch of TXF fonts into examples/fnt/data
    and changed the fnt_test program to cycle through
    them whenever you press a key.

  * PUI can now use FNT fonts - which is good news
    because now you can use TXF fonts for better
    variety and speed compared to GLUT fonts.
    This means that PUI programs now need to
    link with -lpui -lfnt -lsg

  * The PUI 'complex' example program now uses
    the sorority font.

  * I added a 'rendering callback' to some
    PUI widgets as suggested by Eero Pajarre. The
    idea is to allow you to do arbitary OpenGL
    rendering onto a PUI widget...however, I'm
    not convinced that this is a good idea. In
    any case, you can put icons on widgets more
    easily by defining custom fonts using FNT.


PLIB v1.0.6 (May 1st 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Added a complete new component library called
    FNT that allows texturemapped fonts to be
    loaded and rendered nicely.

  * More small configure/compile problems fixed.

  * Added Quaternions to the SG library thanks
    to a fine contribution from Kevin Thompson
    <kevinbthompson@yahoo.com>

  * Fixed a bug in JS under Windoze that made
    three axis sticks return garbage in the
    third axis and swapped the order of the
    third and fourth axes for >3 axis sticks.


PLIB v1.0.5 (April 21st 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed another IRIX compile problem in pu.h

  * Found that configure script was not enabling
    full warning levels...as a result, fixed a
    dozen minor warnings in SSG.

  * SSG's image loader now loads 8 bit and 24 bit
    uncompressed BMP files. This seems to work
    for RGB images - but I can't seem to build
    BMP images with Alpha planes using any of
    the tools I have.


PLIB v1.0.4 (April 20th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Restructured SSG texture image loader to permit
    use of other file formats than SGI.

  * In the event that a texture doesn't load, SSG will
    now insert a red and white chequerboard.

  * Another round of changes to configure.in should
    solve the CygWin issues.

  * Added in some *ancient* fixes to PUI - that kind
    people donated and I somehow forgot all about (oops!)


PLIB v1.0.3 (April 18th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Fixed to compile cleanly under IRIX 6.2 using the
    official SGI C++ compiler.

  * More fixes for MSVC under Windoze.

  * OpenGL logo added to HTML documents following
    request from opengl.org


PLIB v1.0.2 (April 14th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Yet more minor build tweaks - CygWin wasn't defining WIN32,
    that should work now.

  * JS should now work with Windoze - and with sticks with
    up to 6 axes. Under Linux, the presence of the joystick
    driver (or at least it's header files) is now mandatory,
    PLIB won't build without it.

  * The JS demo program has been fixed to display all of the
    axes of all of the joysticks.

  * PUI now supports valuators - this is where the value of
    a widget is set using the address of one of the application's
    variables. Once the valuator is set, the PUI widget's display
    will always the same as the valuator - and any changes to the
    widget will also change the value stored at that address.
    This saves you from creating a bunch of callbacks when buttons
    and sliders have no side-effects apart from changing some
    global variable.


PLIB v1.0.1 (April 11th 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  * Some minor portability issues cleared up.

  * More minor build process errors corrected.


PLIB v1.0 (April 1st 1999)
~~~~~~~~~~~~~~~~~~~~~~~~~~
  * All the separate libraries that I support in the
    public domain are now rolled into a single tarball
    under the new name 'PLIB'.

  * Although this is the first release of PLIB. The sub-
    libraries: SL, JS and PUI had previous releases - this
    is the first Beta of SG and SSG.

  * Directory layouts for all of the component libraries
    have been somewhat rationalized.

  * I have shifted from a completely open license to
    LGPL on the advice of several OpenSource authors.
    Any earlier releases of these libraries that you
    may happen to have remain free of LGPL restrictions.
    If any contributors to the earlier code have objections
    to this arrangement, please let me know and I'll arrange
    to remove their code from subsequent copies.

  * With help from Curtis Olson, we now have proper 'configure'
    scripts to streamline the build process.

