| « Some more Tower Offense | Closer » |
The work continues on XRhodes. Implemented an XR::IndexKeeper class that will help bookkeeping fixed allocation environments, such as XR::Emitter<>, which has also been rebuilt along with XR::Particle<>; the performance and design improvements are strong with this one. XR::IndexKeeper is not something entirely new; the resource manager in XRhodes' early version has utilised a similar mechanism - it is now available in a more generic form.
Follow up:
We've got XR::GridWorld2D, XR::SpatialHasher2D and XR::ListProcessor<> to assist game logic development - XR::GridWorld2D aggregates an Indexer2D and a XR::Grid to define a 2D grid based world. XR::SpatialHasher2D, based on XR::GridWorld2D facilitates spatial hashing to accelerate collision / visibility checks. ListProcessor<> assists batch processing of objects (which is what XR::LayerServer<> has been rewritten based on it).
XR::Indexer2D can now Allocate<>() for you.
XRhodes' container types, XR::Queue<> and XR::Ring<> have also been improved, the iterators now comply with std::find() and quite possibly more. They also have been given copy constructors and operator=s; XR::Ring has now got a swap() method too.
XR::RenderRegion2D (renamed from XR::RenderRegion) has been cut loose from XR::Camera2D - you can now create it based on any viewer position and layer.
There's an XR::Auto::Begin for rendering assistance (glBegin()s / glEnd()s on construction / destruction respectively).
Last but not least, improvements have been made here and there, to both code and documentation. The code bit means that some things have changed - even though for the better, it might necessitate some refactoring with your pre-existing code, but quite possibly nothing more than some Find and Replace All fun.
But what does this all means? That's right, XR v0.86 coming very soon indeed.
This post has 26 feedbacks awaiting moderation...