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

PLIB v1.1.5  (Dec ??rd 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.

