Version 3.3 (10/15/09)
1. Upgraded the underlying XNA framework from 3.0 to 3.1.
2. Added support for ALVAR optical marker tracking library. Tutorial 8 now includes an example of using ALVAR.
3. Added automatic marker array image and configuration generation tool (MarkerLayout) under tools directory.
4. Added State.DebugTextColor to specify the color of the debug texts such as FPS and triangle count.
5. Added DoneEvent event member to GoblinXNA.Helpers.Interpolator class so that the user can assign functions to be triggered when the interpolation finishes. (Has restriction on the usage. Please check API doc)
6. Added support for implementing custom comparer for sorting the drawing order of transparent geometries. You can now set Scene.TransparencyDrawOrderComparer to your custom comparer.
7. Added 3D text drawing capability using Nuclex.Fonts library (http://nuclexframework.codeplex.com) Now you can draw a 3D text using GoblinXNA.UI.UI3D.UI3DRenderer's Write3DText(...) functions. An example is provided in Tutorial 9.
8. Added UI2DRenderer.FillPolygon(...) method for polygon drawing (concave polygon doesn't work yet).
9. Finished G2DSpinner and G2DList implementation.
10. Added G2DSuggestField which is a text field that is capable of showing a suggestion list under the text field. This new class is added to GoblinXNA.UI.UI2D.Fancy package.
1. The lag of marker transformations relative to the displayed video image has been removed when State.IsMultiCore is set to true.
2. Fixed bounding volume computation of models that are not centered at the origin. This problem caused some models to be clipped (not rendered) even though they are in the view frustum.
3. Fixed G2DSlider not to function when it is not visible.
4. Fixed bounds problem for cascaded G2DPanel component.
5. Added focus highlight and null character caret blinking for G2DTextField. Also, fixed the caret position display when HorizontalAlignment is set to other than Left.
1. Improved transparency handling.
2. Converted Vector3 calculations to inline in order to increase the computation speed on either Update and Draw path and methods called frequently.
3. Optimized 2D shape & text drawing by deferring the actual drawing until UI2DRenderer.Flush() is called. Now you can call UI2DRenderer's drawing functions either before or after base.Draw(..) function (It used to be that you have to call the 2D drawing functions after base.Draw(..)). Now, if you call the 2D drawing functions after base.Draw(..), then you will need to call UI2DRenderer.Flush() after all of your 2D drawing calls in order to display them on the current frame. Otherwise, it will be deferred till the following frame. However, if you want to draw 2D shapes or texts on top of the 2D UI widgets created using G2D objects, then you have to call your 2D drawing functions after base.Draw(..). Otherwise, your 2D drawings will appear beneath the G2D objects.
1. When a Node is added to a BranchNode subclasses through AddChild, it used to override the Enabled property of the added Node to be the same as its parent's Enabled property value, but this is changed so that it won't override.
2. Removed the GoblinXNA.UI.Events package, and converted all of the listener based event triggering implementations to C# 'event' based implementation. This change removes the neccessity of creating multiple internal classes to handle events and needs to create static member variables. Also, this is more intuitive in C# environment to use event properties instead of Java-like listener implementation.
3. Modified the GenericInput class for easier and more intuitive navigation using mouse-dragging.
4. The constant strings in InputMapper and DeviceEnumerator are removed. Please use the Identifier property of each InputDevice or InputDevice_6DOF classes to specify the device name (e.g., use MouseInput.Instance.Identifier instead of InputMapper.Mouse)