
GNU Maverik version history
===========================

6.0 - 1st March (St. David's day)

Added:
  GTK+ support (see README-GTK)
  DirectX support (see http://www.jabadaw.co.uk/maverik)
  Workspace and project files for Microsoft Visual C++ (version 6.0)
  IndexedLineSet support in VRML97 parser - thanks to Gideon May
  mav_SMSIntersectLine function which is a wrapper to mav_SMSCallbackIntersectExec
  New example in misc directory showing dynamic creation and deletion of objects

Modified/Fixed:
  Prototype of MAV_frameFn
  TDM libraries are now dynamically loaded rather than being statically linked
  Lightwave parser failed to account for matrix passed through mav_compositeRead
  Lightwave parser failed to compile under Cygwin
  Composites with zero objects caused problems when transparency is enabled
  Minor documentation mods
  Under X the drawable and window are no longer necessarily the same
  mav_compositeRead now accepts both upper and lower case file name extensions
  Share contexts and bind textures added to list of options that can be specified outside of the application
  mav_gfxWM.c split into separate files for each supported graphics system/platform
  Make only relinks object files into libmaverik.so if they have changed
  libmaverik.so is now a softlink which can be changed at runtime to point to different versions of the library
  SGI multisample extension only compiled on IRIX6 machines 
  Modified MAV_SMSExecFn data structure to allow the outcome of undefined calculations to be set 
  The SMS used in building VRML models is now set to be unselectable
  Size of HUDs in example program to work better with lower resolution
  TR now works when the screen resolution is not divisible by oversample
  Re-implemented MAV_lists to remove restriction on deleting items while traversing
  mav_initialise renamed to mav_initialiseNoArgs, mav_initialiseArgs renamed to mav_initialise
  mav_keyboardGet failed to work with non-alphanumeric ASCII values
  C++ compiler now enables debugging correctly 

Removed:
  mav_listOrderedNew function (all lists are now ordered)



5.4 - 13th October 00 (Friday the 13th)

Added:
  Initialisation options can be specified as command line arguments, environment variables or in a rc file
  Quad-buffer stereo support (Unix only)
  Support for PNG textures
  Support for defining a composite object from a Lightwave file
  New example in misc directory showing position and orientation interpolation
  New example in misc directory showing how a simple HUD could be implemented
  mav_BBInsideBB to check for complete enclosure of 2 BBs - thanks to James Willans
  Ctrl-F keys to change navigation and perspective parameters at run-time
  mav_gfx_[vendor|renderer|version] variables to obtain info on graphics vendor
  mav_opt_drawNormals variable to display the normals of certain default objects (can help identify lighting problems)
  mav_opt_[finish|flush] variables to issue a gl[Finish|Flush] before swapping the buffers
  mav_texEnvClamp - a texture environment callback function which defines clamped s and t values
  Dummy functions for the missing HBB callbacks
  mav_opt_navPassEvents to control whether navigation events are passed on to the application

Modified/Fixed:
  Autorepeat not being restored bug - thanks to Miklos Szeredi
  Major rewrite of the VRML97 parser
  Major rewrite of the AC3D parser - it now preservers the AC3D objects
  Fixed bug which caused transparent objects (and delayed textures) to appear in the incorrect window if multiple windows had been created
  Return value of mav_SMSObjectRmv now indicates the success or failure of the operation
  2D text is now correctly rendered if some characters are off-screen
  Composites failed to pass on the correct MAV_drawInfo structure (used for LOD) to their sub-objects
  Fixed bug which prevented avatars updating their positions when not in view
  mav_paletteNew now initialises palette to contain default values 
  Added -march=`uname -m` to the optimization flags for GNU/Linux and FreeBSD
  Fixed various minor memory leeks
  mav_matrixRPYGet warns if passed a matrix which has a non-unit scale
  Various compiler warnings (IRIX code written for MIPSpro compiler version 7.3)
  Minor documentation modification
  TR code now prints on-screen instructions in black and white to provide contrast against background
  TR code no longer uses hard-wired display list numbers
  TR code now uses the highest priority keyboard callback (mav_class_all)
  TR screen dump key moved from Ctrl-F3 to Ctrl-F11
  Changed internal lists to be ordered lists
  Return value of event peek and get in mav_gfxWM.c now incorporates a window ID
  Shift-F7 prints more information about the window and view

Removed:
  On exit clean up routines (they were causing too many problem and do not appear to be necessary)



5.3 - 17th January 00 (Martin Luther King Jr day)

Added:
  VRML97 support under Cygwin
  mav_windowMultiSampleSet function to set multi-sampling (guess who just got a nice new Onyx2)
  mav_opt_shareContexts option variable to control the sharing of display lists and textures between multiple contexts
  mav_opt_disp and mav_opt_right_disp option variables to specify which X display to use
  mav_opt_stencilBuf and mav_opt_destAlpha option variables to specify a stencil and destination alpha buffered visual 
  userdef field to MAV_window and MAV_viewParams data structures
  mav_object_list variable (a MAV_list containing all registered objects)
  mav_objectSMSsGet function to return a list of the SMSs an object is in
  MAV_VERSION, MAV_THIS_VERSION and mav_this_version macro, #define and variable to determine version number - thanks to David Turner

Modified/Fixed:
  Changed distribution file names and top level directory name to comply with GNU standards (now lower case)
  Linux and FreeBSD now link with -lGL rather than -lMesaGL (ie. the naming scheme used in Mesa version 3.1)
  All include files now define extern C so that the code can be compiled under C++
  Fixed bug in LegibleCity1+2 which left font files open - thanks to Christian Bayle
  Fixed bug in LegibleCity1 which prevented it running in stereo
  Texture binding now uses OpenGL 1.1 functions (rather than 1.0 extensions) when applicable - thanks to Loring Holden
  Updated installation instructions for Cygwin users
  Now uses -mieee compile option on Alpha's to overcome fatal numerical precision problems - thanks to Sadruddin Rejeb
  Modifications to MacOS code and installation instructions - thanks to Mark Batten
  mav_windowNew and mav_gfxWindowOpen prototypes changed to allow the specification of which X display to use
  mav_gfxVisualInfoGet prototype changed to allow better reporting of information on frame buffer visual 
  Cygwin makefile in gfx directory - thanks to Ken Seergobin
  modified src/extras/Makefile to look for a beta directory

Removed:
  Active support for IrisGL (it is still included but will not be updated in future)



5.2 - 6th September 99 (Labor day)

Added:
  MacOS support - thanks to Alex
  FreeBSD support - thanks to Joe Topjian, Jake Burkholder and Rob G
  Mipmapping
  mav_paletteTextureMipmappingSet function to set the mipmapping of textures
  New example in examples/misc/textures to show mipmapping
  mav_opt_texComps variable to define number of texture components (leads to better texturing with Voodoo's)
  mav_mouse_button variable (cf mav_mouse_x) which holds the mouse button status  
  A userdef field to the SMS data structure

Modified/Fixed:
  Changed texture environment callback fn (MAV_texEnvFn) to take a texture (change needed for mipmapping)
  Changed mav_gfxTextureSet so that it takes a pointer to a texture (change needed for mipmapping)
  Changed mav_mouseGet and mav_gfxWindowPointerGet to take an int pointer in which to return the button status
  Better way of dealing with big/little endian issue when defining textures
  Fixed bug which reported the built in colours as being transparent
  Minor documentation updates and fixed compiler warnings

Removed:
  Nothing



5.1 - 21st June 99 (Summer Solstice)

Added:
  Support for Windows 98 and NT (and probably 95, but haven't access to this OS to test it) 
  mav_paletteLightPositioning fn to specify an absolute or relative light position
  A new example in the misc directory showing how to position lights
  mav_matrix[X|Y|Z]Axis[Get|Set] functions to get and set the axes of a matrix
  MAV_[X|Y|Z]_VECTOR constants and MAV_MATRIX_[X|Y|Z]AXIS_[X|Y|Z] #defines
  TR module can now generate an arbitrary resolution image file

Modified/Fixed:
  Textures no longer have to be integer powers of 2 in width and height (requires ImageMagik)
  AC3D parser takes into account filename path when loading textures
  Fixed bug in VRAD parser that could cause the AIG lab demo to fail on some machines
  Re-wrote PPM texture file parser to handle binaries under Windows
  Various minor mods for Windows support
  Minor documentation updates
  Reimplemented mav_BBIntersectsBB more efficiently and added prototype
  In order to give each file a unique name:
    Renamed src/navigation/mav_mouse.c to be mav_mousenav.c 
    Renamed src/navigation/mav_keyboard.c to mav_keyboardnav.c 
    Renamed src/SMS/mav_callbacks.c to be mav_smscallbacks.c 
    Renamed src/objects/mav_sms.c to be mav_smsobj.c 
    Renamed src/extra/TDM/mav_event.c to be mav_tdmevent.c 
    Renamed src/extra/avatar/mav_init.c to be mav_avatarinit.c 
    Renamed src/extra/vrad/mav_init.c to be mav_vradinit.c 
    Renamed examples/misc/TDM/avatar.c to be tdmavatar.c 
    Renamed demos/EscapeCity/mav_avatar.c to be mav_escapeavatar.c 
    Renamed demos/EscapeCity/mav_avatar.h to be mav_escapeavatar.h
    Renamed demos/LegibleCity/prims.c to be lcprims.c

Removed:
  Nothing



5.0 - 21st May 99 (Shavuot)

Added:
  Texture map support in VRML97 parser
  mav_mouseSurfaceParamsSet function which sets the colour of the rendered mouse
  mav_windowLineWidthSet function which sets the line width for rendering
  mav_windowLineStippleSet and mav_gfxLineStippleSet functions which set line stipple

Modified/Fixed:
  Changed matrix ordering - now stored row-majored
  Fixed problem with roll and yaw not being right-handed
  Voodoo support now auto detected at run time rather than specified at compile time
  Cylinders and cones were incorrectly texture mapped
  Replaced explicit TIFF support with more general ImageMagick's covert program
  Documentation updates including a much improved index to the MPG
  Improved AC3D parser which now supports lines
  TDM scales and offsets are now on a per-tracker basis
  Window title bar now gives the name of the executable by default
  Made setup script work for machines running IRIX64
  Made IrisGL graphics module compilation a setup script option
  Avatar hands now specified in global coordinates and updated avatar examples
  Fixed potential problem with mav_SMSIntersectBB[All]
  TDM module initialization now returns MAV_TRUE/FALSE to indicate success or failure
  Numerical precision problems on Alpha's - thanks to Marcelo Tosatti
  Better accumulation buffer support
  TR cleans up memory on abort and resets perspective on error
  Shift-F11 now dumps the window the mouse is in rather than first window opened
  Declared main in all example/demo programs to return an int
  Changed "usedef" to "userdef" in MAV_viewModifierParams data structure

Removed:
  Nothing



4.3 - 25th March 99 (Lady Day)

Added:
  Level of detail for the standard objects with curved surfaces
  Support for defining a composite object from a VRML97 file (geometry only)
  SunOS5 support - thanks to Robert Belleman
  GNU name
  Teapot primitive
  mav_gfxLineWidthGet function
  mav_frameCount variable
  mav_windowBackfaceCullGet and mav_gfxBackfaceCullGet functions
  mav_vectorWorldPos function (does the opposite of mav_vectorScrnPos)
  mav_stringLength function
  mav_stringDisplay[Left|Centre|Right] functions
  mav_BBIntersectsBB function
  mav_palette*Index[Empty|Match]Get functions which return an empty or matching index for the palette components
  mav_compositeRead function which calls the correct parser for the file type
  Hook for TDM type libraries to access the X event queue - works, but messy and need redoing properly.

Modified/Fixed:
  Contact email addresses
  TR now handles lines correctly
  Press "i" message now removes itself after control has passed back to the application
  Minor documentation updates
  Fixed potentially fatal rounding error in mav_linePolygonIntersection
  Delayed rendering of transparent and textured objects now uses the correct draw callback fn
  Fixed potentially un-initialized surface parameter field for avatar 
  Modified fonts example in misc directory to demonstrate string length functionality
  Modified prototype of mav_gfxWindowFontSet
  Modified MAV_font to store width and font name information
  Updated "allobjs" example to include the teapot
  Modified BB intersection routine to report exit distance
  Renamed mav_BBIntersect to mav_BBIntersectsLine (but the old name can still be used)
  Reworded main README
  Modified misc/composite/viewer example to read VRML97 files
  Better mechanism for adding support for new file formats
  Made mav_sp_default valid even if mav_opt_noWins is set
  Avatar now knows his left from his right
  Splash screen is not executed if no windows have been created
  Rewrote box-line intersection routine to overcome rounding error problem
  Major re-working of TDM to make it less site specific
  Fixed bug with IrisGL

Removed:
  Nothing except the bugs :)



4.2 - 14th Feb 99 (St. Valentines)
  First public release
