« Project FDFCurrently »

XRhodes v0.85 is out

27/09/10

Permalink 04:43:36 am, by György Email , 479 words   English (GB) latin1
Categories: XRhodes

XRhodes v0.85 is out

Hurrah, XRhodes v0.85 is ready for the public eye. It comes with a lot of new features, fixes for some bugs (only one of which is serious enough to mention), and some changes. It's a rather meaty release, and I feel there is a lot of useful stuff in there.

Firstly, though there are two major change I'd like to point out:

One, XR::AppState is deprecated. We have XR::State and XR::State::Machine instead, with a slightly different interface. XR::Skeleton has been made to work with XR::State::Machine, and there's no more separate update and render functionality. You can keep them - programmatically - separate in your states, but in XR::Skeleton there will always be one update before a render. The reason for this is - aside of the newinterface - is that on some configurations, applications using XR::Skeleton were restricted to update not more times than they would render. I don't know the reason for this and I have no config that can recreate this phenomenon, so I came to this decision - if you have a better understanding of this problem, please drop me a line.

Two, I have got rid of all exception handling. Exceptions in XRhodes were used to signal that a constructor didn't quite manage to carry out what it's been asked to. I have introduced XR::CtorFail, a nonobject that you can pass your object's address if your constructor fails to initialize the object. It will print an error message, you can check outside the constructor if your object had reported a failure and do something about it. XR::Sprite, XR::Font, XR::Sample, XR::Shader, XR::Shader::Program, XR::Joystick and XR::SF::Tree::Element now all rely on XR::CtorFail. The other use of exceptions was, again, error reporting where a simple boolean return value could do (and now does!), such as XR::GFX::Init() and XR::Mixer::Init() (and Reinit() etc.), and XR::Factory<>::Create().

A list of new features is after the jump.

  • XR::Enumerator, will associate your strings with integer values and has a facility to convert your ints back to a string, making it quite useful for text encoding/decoding of values, indices, etc. when you want to store them in XRSF.
  • XR::Animation - frame based animation and instancing. Animation doesn't restrict the frame data (as long as it is something you can be represented by an int).
  • XR::Actor - groups together a set of animations, allowing for the definition of which animation follows which, and which animations can be switched to from one.
  • XR::Indexer can now be default constructed.
  • XR::RenderRegion will now accept one or two Float values to handle screen scaling (uniform or individually, along x / y).
  • There is also a new XR::MouseToWorld() variant that works with non-uniform screen scaling.
  • Added a slightly more optimal default constructor and Reset() method to XR::MVector<>. Also added a Dot(void), to make taking a vector's dot product with itself work faster; this new Dot() is used throughout XRhodes, wherever possible.

Check the documentation and changelog.txt for a complete reference.

Feedback awaiting moderation

This post has 80 feedbacks awaiting moderation...

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
May 2012
Mon Tue Wed Thu Fri Sat Sun
 << <   > >>
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Search

XML Feeds

multi-blog platform