www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - nonagon release 3!

Release 3 of nonagon is now out.  This fixes a major shortcoming of release 
1/2, where those with (very) old video cards were not able to run nonagon 
programs.  There are also several other new features and fixes:

New Features:

-- An entire 2D-in-3D sprite library has been added, called NG2D.  It allows 
you to make fast 2D games which take advantage of 3D acceleration to display 
sprites with scaling, rotation, and alpha blending.  It also offers a useful 
concept usually only found in 3D games, which is that of a movable camera. 
No more moving the level around the player; simply create the level, and 
move the camera in a more natural fashion.  NG2D also offers sprite 
hierarchies and custom rendering order.

-- NGBrush.NGLayer has a new property, .clampUV, which allows you to keep UV 
coordinates clamped to [0,1] rather than wrapping.

Changed Features / Bugs Fixed:

-- Will now attempt to create the device with hardware and software vertex 
processing.

-- NGCore.windowName can now be retrieved.

-- Global position and rotation now works correctly for NGNode, which means 
parenting lights and cameras to other nodes now works.

-- Because global position and rotation now work, there is a new second 
parameter on NGNode.parent to specify whether or not the global orientation 
should be preserved when changing the parent.

-- NGNode.opApply now overloaded to support the (uint index, NGNode n) form.

-- NGRenderEntry now uses a free list for speed (instead of creating and 
deleting many, many render entries every frame).

-- All rotation functions now have wrapAngle called on their input 
arguments, so you don't have to call that anymore.

-- Textures are now only reloaded if needed.  No intervention is needed on 
your part; just use new to create a texture, and if it already exists, the 
existing texture will be returned from the constructor instead of creating a 
new texture.  There is now also a static property of NGBaseTexture to 
control this behavior called reuseTextures.


Docs have also been improved.

Still no animated meshes or HLSL (shaders).  I'm considering a sort of 
rewrite of the internal rendering engine for both those features, as they 
have some rather nasty overlaps and require things to be laid out a bit 
differently.

Additionally, I'm in the process of preparing some more samples;  as of now, 
there is only one sample, called template, which is simply a skeleton 
program which shows the most basic possible usage of nonagon.  The nonagon 
files and the samples have also been split into two archives.

Hopefully this release will make nonagon more accessible to those with old 
video cards.

Here are the download links:

nonagon files: http://www.mtwirefree.net/kbilling/nonagon.zip
nonagon samples: http://www.mtwirefree.net/kbilling/nonagon_samples.zip 
Jun 19 2005