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 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 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 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 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 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" (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 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 * 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 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 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 * 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.