You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
285 lines
10 KiB
285 lines
10 KiB
4 years ago
|
in Version 1.1
|
||
|
--------------
|
||
|
|
||
|
o Got rid of the n-vector and n*n-matrix code as it was quite broken.
|
||
|
|
||
|
o All MxGUI menu commands are visible to external code now.
|
||
|
|
||
|
o Got rid of the command-line compilation stuff for VC.
|
||
|
|
||
|
o Moved all the Windows-specific headers -- which have never moved
|
||
|
beyond experimental -- into a Windows specific <gfx/win/...> location.
|
||
|
|
||
|
o Placed all libgfx code in the 'gfx' namespace. To improve
|
||
|
compatibility with old code, the <gfx/gfx.h> header will
|
||
|
automatically import this namespace into the default global one.
|
||
|
This behavior can be turned off by defining the GFX_NAMESPACE
|
||
|
preprocessor symbol.
|
||
|
|
||
|
o The scripting framework now allows for encapsulation of one syntax
|
||
|
inside another. However, this is experimental, and is likely to
|
||
|
change considerably in a future release.
|
||
|
|
||
|
o Extended the script interface to support void parsers that throw
|
||
|
exceptions on errors rather than passing return codes. In future,
|
||
|
this will become the default way of writing parser functions.
|
||
|
|
||
|
o The script_do_xxx() functions formerly defined in <gfx/script.h>
|
||
|
have been removed. They were long ago superseded by the
|
||
|
CmdEnv::do_xxx() methods.
|
||
|
|
||
|
o Fixed the unitize() method for quaternions, which did not in fact
|
||
|
result in a unit quaternion.
|
||
|
|
||
|
o Added a small collection of useful color manipulation routines in
|
||
|
<gfx/color.h>.
|
||
|
|
||
|
o Added an ortho_camera_lookat() function to complement the
|
||
|
longstanding camera_lookat() perspective function.
|
||
|
|
||
|
in Version 1.0.3
|
||
|
----------------
|
||
|
|
||
|
o When compiling with GCC, warnings are turned on by default. To
|
||
|
compile without warnings, you must use --disable-warnings when
|
||
|
running the 'configure' script.
|
||
|
|
||
|
o The tests used by the 'configure' script to detect OpenGL headers
|
||
|
were a bit broken. These tests are now much more reliable.
|
||
|
|
||
|
o The quaternion SLERPing code in previous revisions was incorrect
|
||
|
due to a typo in the code. This problem has been fixed.
|
||
|
|
||
|
o The file parser provided by <gfx/script.h> now supports the use of
|
||
|
libgzstream. When using the library, the scripting code will
|
||
|
automatically decompress files ending with {.gz, .z, .Z} suffixes.
|
||
|
You must use the --enable-gzstream option when running ./configure.
|
||
|
|
||
|
o New experimental build files for use with Apple's XCode
|
||
|
development environment are available in the 'xcode' directory.
|
||
|
|
||
|
o Added functions to <gfx/geom3d.h> for computing the volume
|
||
|
of tetrahedra.
|
||
|
|
||
|
o The MIN/MAX macros were broken under Cygwin.
|
||
|
|
||
|
o Fixed up a few miscellaneous compiler warnings.
|
||
|
|
||
|
o Added an experimental MxBinder class to <gfx/gui.h>. This makes
|
||
|
it fairly painless to bind MxGUI member functions to FLTK callbacks.
|
||
|
|
||
|
o Moved management of libgfx source code from CVS to Subversion.
|
||
|
|
||
|
|
||
|
in Version 1.0.2
|
||
|
----------------
|
||
|
|
||
|
o The MxGUI::snapshot_to_file() method now takes an optional
|
||
|
filename argument. When provided, the code will simply write a
|
||
|
snapshot to this file, rather than presenting the user with a file
|
||
|
selector.
|
||
|
|
||
|
o The MxGUI::snapshot_to_file() method will now save the alpha
|
||
|
channel of the window, assuming the file format supports that.
|
||
|
(Currently, only PNG and TIFF support alpha channels.)
|
||
|
|
||
|
o MxGUI OpenGL windows allocate alpha channels (when available).
|
||
|
|
||
|
o New vector/matrix modules:
|
||
|
|
||
|
- <gfx/symmat4.h> Symmetric 4x4 matrices; after <gfx/symmat3.h>
|
||
|
- <gfx/vecn.h> Preliminary support for n-D vectors
|
||
|
- <gfx/matn.h> Preliminary support for nxn matrices
|
||
|
- <gfx/symmatn.h> Preliminary support for nxn symmetric matrices
|
||
|
|
||
|
o Project files for Apple's ProjectBuilder (OS X) are located in the
|
||
|
macos subdirectory.
|
||
|
|
||
|
o Added checks in the autoconf script for <ext/hash_map> and
|
||
|
<ext/hash_set>, which is where GCC3 chooses to place these
|
||
|
non-standard STL components.
|
||
|
|
||
|
o The scripting framework now supports a CmdEnv::ignore_command()
|
||
|
method that lets client code specify command names that should be
|
||
|
ignored. This is also available from the input file itself by
|
||
|
using the 'ignore' command.
|
||
|
|
||
|
o The Baseball-derived classes now have read()/write() methods for
|
||
|
exchanging view information in a textual form.
|
||
|
|
||
|
|
||
|
in Version 1.0.1
|
||
|
----------------
|
||
|
|
||
|
o The library should now compile correctly under Visual Studio .NET
|
||
|
(a.k.a Visual C++ 7).
|
||
|
|
||
|
o The array<> and varray<> templates in <gfx/array.h> have been
|
||
|
removed. Their original purpose was to support legacy code
|
||
|
written in prior to the widespread adoption of STL. The array2<>
|
||
|
and array3<> templates remain, but they are now subclasses of
|
||
|
std::vector<>.
|
||
|
|
||
|
o Many of the functions in <gfx/geom3d.h> were re-written to by
|
||
|
templatized by vector class rather than by element type. Thus,
|
||
|
they may now be used with any suitable vector type, not just the
|
||
|
TVec3<> template defined in <gfx/vec3.h>.
|
||
|
|
||
|
o The CmdLine::collect_as_xxx() methods used by the file format
|
||
|
scripting interface now accept an optional 'offset' argument.
|
||
|
This parameter controls at which token the methods start reading.
|
||
|
Their previous behavior was to always begin reading at the first
|
||
|
token on the command line.
|
||
|
|
||
|
o The script_do_xxx() functions have been replaced with
|
||
|
CmdEnv::do_xxx() methods. The old global functions remain in
|
||
|
place for compatibility, but the new CmdEnv methods should be used
|
||
|
in preference to them.
|
||
|
|
||
|
o The autoconf process now sets up a symbolic FLTKCONFIG program
|
||
|
name. This is primarily of interest under MacOS X, where the
|
||
|
fltk-config program is used to finalize the build of a GUI
|
||
|
application so that it will launch correctly from the Finder.
|
||
|
The Makefile in the 'test' directory demonstrates the correct use
|
||
|
of this program as a post-build step.
|
||
|
|
||
|
o Bug fixes:
|
||
|
|
||
|
- The Raster destructor is now correctly declared as virtual.
|
||
|
|
||
|
- Certain type declarations have been made more rigorously
|
||
|
correct for proper compilation under GCC 3.
|
||
|
|
||
|
o A geom4d package has been added that provides functionality
|
||
|
analogous to the geom3d package.
|
||
|
|
||
|
o A couple of new experimental packages have been added for building
|
||
|
Win32 interfaces with MFC: mfc, wintools, gui-mfc. They are
|
||
|
unfinished, undocumented, and may be unstable. Most users of this
|
||
|
library will want to avoid them.
|
||
|
|
||
|
|
||
|
in Version 1.0
|
||
|
----------------
|
||
|
|
||
|
o The documentation is now (mostly) complete and (mostly)
|
||
|
synchronized with the actual code.
|
||
|
|
||
|
o Trackball & Arcball now share a common Baseball base class.
|
||
|
|
||
|
o Extensions to the autoconf script to allow for:
|
||
|
|
||
|
- Automatic configuration under Mac OS X
|
||
|
|
||
|
- Selection of whether to compile with Cygwin libraries or not
|
||
|
|
||
|
- Handle differences between FLTK 1.0.x and 1.1.x in the way
|
||
|
that OpenGL code is handled
|
||
|
|
||
|
o Some minor changes to make the library compile under Mac OS X.
|
||
|
|
||
|
o Bug fixes:
|
||
|
|
||
|
- ByteRaster copy constructer faulted due to incorrect size
|
||
|
computation for memcpy().
|
||
|
|
||
|
in Version 0.9.3
|
||
|
----------------
|
||
|
|
||
|
o Even more significant changes in the file format scripting package. The
|
||
|
old approach was getting increasingly unmanageable, and the reliance on
|
||
|
magic global constructors for handler registration was proving to be
|
||
|
problematic.
|
||
|
|
||
|
o Added descriptive interface to vector/matrix types to make
|
||
|
templates easier to write.
|
||
|
|
||
|
o Vector templates now handle assignment between vectors of
|
||
|
different types (e.g., Vec3 and Vec3f) much more cleanly.
|
||
|
|
||
|
o New packages to efficiently support symmetric matrix types
|
||
|
(e.g., <gfx/symmat3.h>).
|
||
|
|
||
|
o Added is_inside_bbox() and clamp_to_bbox() to geom3d package.
|
||
|
|
||
|
o More complete documentation.
|
||
|
|
||
|
o Bug fixes in various packages:
|
||
|
|
||
|
- fixed autoconf script to correctly detect headers
|
||
|
|
||
|
- Raster class now uses delete[] to match its use of new[].
|
||
|
|
||
|
- Scalar multiplication of vectors under VC++ must now use
|
||
|
constants of the same type as the vector elements. This
|
||
|
prevents a tricky bug related to the VC++ template
|
||
|
instantiation.
|
||
|
|
||
|
|
||
|
in Version 0.9.2
|
||
|
----------------
|
||
|
|
||
|
o Significant changes to the file format scripting package. All previous
|
||
|
global functions are still available for backwards compatibility, but
|
||
|
you may need to change the definitions of your command handlers.
|
||
|
|
||
|
o The interface of the <geom3d> package has changed considerably
|
||
|
|
||
|
- Changed the triangle_* functions to be inlined templated functions.
|
||
|
Before they only worked with Vec3's. Now, they'll work with any
|
||
|
TVec3<T> type.
|
||
|
|
||
|
- Added a templated compute_bbox() function.
|
||
|
|
||
|
o Camera and object control has changed a bit
|
||
|
|
||
|
- The camera_lookat() function in the <gltools> package was putting
|
||
|
both the perspective and lookAt transformations on the Projection
|
||
|
stack. It now correctly puts the perspective on the Projection
|
||
|
stack and the lookAt transformation on the ModelView stack.
|
||
|
|
||
|
- The Arcball and Trackball manipulators now apply all transformations
|
||
|
to the object, rather than applying rotation to the object and
|
||
|
translation to the camera.
|
||
|
|
||
|
o Added eigenvalue/eigenvector functions for all matrix types.
|
||
|
|
||
|
- Because of licensing restrictions, only the 2x2 implementation is
|
||
|
actually present, although prototypes exist for all dimensions.
|
||
|
|
||
|
o Added a restricted STL-like interface to <array> package.
|
||
|
|
||
|
o Bug fixes in various packages
|
||
|
|
||
|
- The 2x2 matrix inversion method was incorrect.
|
||
|
|
||
|
- read_tiff_image() always returned a 3-channel image. It will now
|
||
|
return an image with the same number of channels as in the file
|
||
|
read.
|
||
|
|
||
|
|
||
|
in Version 0.9.1
|
||
|
---------------
|
||
|
|
||
|
o Added a new quaternion package <gfx/quat.h>. [currently undocumented]
|
||
|
|
||
|
o Added Trackball & Arcball interactive rotation control packages. This
|
||
|
makes it much easier to write applications where the user interactively
|
||
|
spins a model in the window. [currently undocumented]
|
||
|
|
||
|
o Bug fixes in various packages.
|
||
|
|
||
|
- Vec3, Vec4 operators for Visual C++ were broken.
|
||
|
- Fixed improper deallocation of array2<> and array3<> objects.
|
||
|
- camera_lookat() incorrectly computed camera location.
|
||
|
|
||
|
o Applications built on the MxGUI framework can now receive key
|
||
|
press events in the OpenGL canvas area by overriding the key_press()
|
||
|
method.
|
||
|
|
||
|
|
||
|
in Version 0.9
|
||
|
-----------
|
||
|
|
||
|
This was the initial preliminary release for Fall 2000.
|