# $Id: RELEASENOTES,v 1.13 2004/04/18 21:50:08 wes Exp $
# Version: $Name: OpenRM-1-5-2-RC3 $
# $Revision: 1.13 $
# $Log: RELEASENOTES,v $
# Revision 1.13  2004/04/18 21:50:08  wes
# Updates for 1.5.2
#
# Revision 1.12  2004/01/19 20:28:44  wes
# Add version tag.
#
# Revision 1.11  2004/01/19 20:27:45  wes
# more 1.5.1 updates.
#
# Revision 1.10  2004/01/19 17:09:21  wes
# Updated status on rmOctmesh rendering routine.
#
# Revision 1.9  2004/01/17 04:00:35  wes
# Updated releasenotes for 1.5.1
#
# Revision 1.8  2003/07/25 21:55:32  wes
# More updates for 1.5.0.
#
# Revision 1.7  2003/07/14 02:18:39  wes
# More 1.5.0 updates.
#
# Revision 1.6  2003/05/05 13:40:17  wes
# Update for rmNodeComputeBoundingBox fix.
#
# Revision 1.5  2003/04/12 19:48:03  wes
# Updates for 1.5.0-alpha.
#
# Revision 1.4  2003/04/05 14:16:16  wes
# Updates for 1.5.0-alpha.
#
# Revision 1.3  2003/02/14 00:14:48  wes
# Split RELEASENOTES into two files: RELEASENOTES, for the current version,
# and OLD-RELEASENOTES, for previous versions.
#
# Revision 1.2  2003/02/02 17:50:52  wes
# Added bounding boxes to RMprimitives, as a supplement to node-level bboxes.
# The RMprimitive level bboxes are needed for the retained-mode CR work.
#
# Revision 1.1.1.1  2003/01/28 02:15:23  wes
# Manual rebuild of rm150 repository.
#
# Revision 1.17  2003/01/27 05:04:25  wes
# Changes to RMpipe API and initialization sequence to unify GLX, WGL and CR
# platforms w/o too much disruption to existing apps.
#
# Revision 1.16  2003/01/20 05:39:44  wes
# Rewrote texture state handling code.
#
# Revision 1.15  2003/01/14 05:28:13  wes
# Partial update for 150.
#
# Revision 1.14  2002/09/22 22:57:24  wes
# Updates for v1.4.3 distribution.
#
# Revision 1.13  2002/06/17 01:13:35  wes
# Updates for 1.4.2
#
# Revision 1.12  2001/10/14 23:38:03  wes
# v1.4.1 updates.
#
# Revision 1.11  2001/07/15 23:05:56  wes
# 1.4.0-FCS releasenotes.
#
# Revision 1.10  2001/06/03 20:56:20  wes
# v140-beta1
#
# Revision 1.9  2001/03/31 17:13:47  wes
# v1.4.0-alpha-2 checkin
#
# Revision 1.8  2000/12/04 00:31:22  wes
# Added RM_FONT_DINGBATS problem description.
#
# Revision 1.7  2000/09/02 19:26:13  wes
# Updated info re: default button/action mappings for RMdemo programs.
#
# Revision 1.6  2000/09/02 19:06:39  wes
# For rm130 release.
#
# Revision 1.5  2000/05/17 14:35:01  wes
# Partial update for 1.3.0.
#
# Revision 1.4  2000/04/27 03:13:58  wes
# More 1.2.1 updates.
#
# Revision 1.3  2000/04/22 01:44:23  wes
# OpenRM 1.2.1 updates.
#
# Revision 1.2  2000/04/20 17:43:28  wes
# OpenRM 1.2.1 updates.
#
# Revision 1.1.1.1  2000/02/28 21:29:40  wes
# OpenRM 1.2 Checkin
#


April 18 2004, v1.5.2
---------------------

New Features and API Changes in v1.5.2
--------------------------------------

1. Addition of several new indexed primitive types. These include:
- RM_INDEXED_QUADS 
- RM_INDEXED_TRIANGLES 
- RM_INDEXED_TRIANGLE_STRIP
- RM_INDEXED_TRIANGLES 
- RM_INDEXED_TRIANGLE_STRIP

2. Addition of the (long overdue) RM_QUAD_STRIP primitive.

3. New API routine:
   int rmPipeGetFrameNumber(const RMpipe *)
   Returns an integer value that is incremented each time you call
   rmFrame on a given RMpipe.

4. New API routine:
   RMenum rmNodeRemoveAllPrims(RMnode *toModify)
   Will remove all RMprimitives from an RMnode in one call.

5. Minor code enhancements (thanks to D. Bunzli for suggesting them)
- rmVismapDup - added check for NULL from rmVismapNew, report failure
with rmError is one occurs and return NULL.
- rmCamera3DNew - added a call to rmDefaultCamera3D so that all fields are
initialized to valid values.

6. new RMdemo program named indexedPrims2D that exercises each of the
above new indexed primitive types.

7. Updated the RMdemo program tfly to be much more visually appealing
and to test the new RM_QUAD_STRIP primitive.

8. New Gordo demo program "lightModes" that exercises the light
   attenuation parameter, as well as exercising lots of other lighting
   parameters.

9. Support for additional build targets: 
- linux-x86_64, linux_x86-64_debug
- linux-x86_32, linux_x64-32_debug
Note: linux-x86_32 is the 32-bit ABI on 64-bit Linux distros.

10. Extensive overhaul of the RMdemo configure script to support builds
on all currently supported platforms.

- old -irixarch command-line arg replaced with -abi=[] arg. 
- new -abi=[] command line argument to select ABIs. Valid arguments to -abi are
	-abi=irix6-32
	-abi=irix6-n32-mips3
	-abi=irix6-n32-mips4
	-abi=irix6-64
	-abi=linux-x86_64
	-abi=linux-x86_32

11. Irix builds: tweaked CFLAGS flags on irix to ignore more 
warnings - disabled warnings about variables declared but never used.

12. RM core builds - addition of a "make install" target.
- Addition of "install" target. Default location is /usr/local/rm152. If
you want to do an install somewhere else, edit $RM/Makefile and
change INSTALL_DIR=/usr/local/rm152 to the desired value. The install
target will copy over libs, headers and documentation.


Bugs Fixed in v1.5.2
--------------------

1. Repaired and tested MacOSX-X11 build targets. Both RM and RMdemo
were compiled and tested on MacOSX-X11 for 1.5.2.

2. In-code documentation repairs (thanks to D. Bunzli for pointing them out)
- rmiWriteJPEG() - fixed manpage documentation errors.
- rmauxDefaultKeyFunc() - fixed manpage documentation errors.
- rmVismapGetSize() - updated documentation.
- rmVismapGetAlpha() - corrected documentation.
- rmFinish() - fixed manpage documentation errors.

3. Lighting environment enhancement - activated the light attenuation
   parameter. Previously, you could modify the light attenuation, but
   the parameter setting was not honored during rendering.

4. Constant-rate rendering buglet - specifying a small number of
frames per second, like one frame per second, would result in some
incorrect and erratic frame timing. This issue has been fixed.

Known Bugs
----------

1. It is possible to overflow texture memory by using a texture that
doesn't fit into memory. This condition will silently produce an error.

2. The tfly RMdemo doesn't propogate new window dimensions to the static 
"fly struct" inside rmauxFlyUI. Therefore, if you resize the window after
the application starts, the resulting display will be incorrect. One 
approach is to create a new rmauxFlyResize function that fixes the camera 
and the cached window geometry dims.

3. nVidia drivers. The most recent batch of nVidia drivers - 1.0-53.36 
released in Jan 2004 - contain fixes for a number of long standing bugs.
With these drivers, offscreen rendering works (it does the right thing
and won't crash your X server), and the rm2screen demo will exit cleanly
as it should. That's the good news. The bad news is that the 53.36
drivers cause Chromium to crash. Specifically, the psubmit demo crashes.
Since the OpenRM+Chromium demo programs use a similar initialization
sequence, they too will prematurely die. The workaround is to use the
44.96 nVidia drivers for Chromium, and for Chromium+OpenRM.

4. We have not attempted to test the multibuffered stereo OpenGL
context creation code on Windoze platforms.

ToDo in 1.6.0:
--------------

The next version will be 1.6.0 due to some expected small but noticeable
changes to the API.

- cleanse API for easier error detection. E.g., rmVismapGetAlpha returns
a float value even if there's an error. It would be better to unify the
return values from routines so that all return RM_CHILL on success or
RM_WHACKED on failure.

- change API on loader functions to use a fd rather than a filename
(thanks to D. Bunzli for the excellent suggestion)

- Fix problem where window resize in tfly doesn't propogate new window
dims to the static fly struct inside rmauxFlyUI. One approach is to create
a new rmauxFlyResize function that fixes the camera and the cached
window geometry dims.

- There has been a request for multitexturing support.

- The callbacks attached to RMpipes should include an RMpipe * as part
of the callback parameter list.

- GLUT+RM demonstration programs and chapter in the RM Programming Guide.

--EOF--
