Even though the resource-unstable branch still desperately needs my attention, I promised myself that I’d start work on the XSI exporter this week. I spent a lot of time reading the SDK docs and basically feeling my way around, and whilst it takes a bit of getting used to (like any new API), I’m pleased with what I’ve seen. I already figured out the various entry points, got a plugin loading, and sorted out how to write a custom dialog pane.
Now that the resource-unstable branch is now finally 100% compiling, I’m busy testing and fixing bugs which have gone undetected while I’ve been working on this for the past 6 weeks. It’s slow going (there were a lot of changes after all), but it’s gratifying to finally have something to run again! I hope to merge the branch into the head as soon as I can. I have, however, allocated some time over the next couple of days to work on the XSI exporter, and I’m keen to stick to that, much as I’d like to carry on bashing.
I’ve started unit testing the new base facilities I’ve added in resource-unstable since OgreMain is now building there. I’m using CppUnit to document the tests this time, since the tests I’m doing are internal in nature and don’t have the added complexity of having to check a visual result. I’ve had a really annoying issue though - I’ve had to rebuild a lot of the dependencies (zlib, freetype, now zziplib) and I started to get really odd random crashes inside basic tools like _fstat and _lseek (which zziplib was using).
Fourth Bruce: Michael Baldwin - this is Bruce. Michael Baldwin - this is Bruce. Michael Baldwin - this is Bruce. First Bruce: Is your name not Bruce, then? Michael: No, it’s Michael. Second Bruce: That’s going to cause a little confusion. The only reason I quoted that classic sketch is that it always pops into my head whenever I think of Australia. Highly inappropriate, but hey, Monty Python was ingrained in my subconscious from a young age.
I’ve terminated the FileSystem plugin since it wasn’t serving much of a purpose other than being arrogant about it’s independence, it has now been annexed into OgreMain (since you’d never want to be without basic filesystem access). Like the rest of the reworked Archive subsystem, it now returns streams rather than preloaded chunks, and has recursive searching options should you need them. Whilst I was at it I rewrote bits of the code to make it nicer to read.
The last couple of days have been about refactoring. I’ve been getting towards the end of the resource work in OgreMain (still lots to do in the plugins and samples, mind), and as I came to sort out the particle systems, I realised that whilst I was changing them, it would be a good idea to redesign one aspect of them that I’ve always regretted - the fact that ParticleSystem subclasses from BillboardSet.
Man, this resource work is taking longer than I expected. I’ve designed and implemented the main changes to the resource infrastructure, which means things like this are possible: resource grouping, unloading and reloading of groups, manual loader callbacks (for repeatable loading when resources are populated using code rather than coming from files), pre-declaring resources and receiving loading progress callbacks, file streaming. However, going through all the old resources and resource managers to implement this design is taking a lot of time, and it’s actually very dull.
Hmm, bit of a break there - partly because I was away on an Oracle performance tuning course all of last week. No real time for a large update, just a few bullets: the resource work is going well, although it’s very time consuming and rather repetetive in places, I’m still learning XSI (which I like an awful lot), Half Life 2 just landed (and yes, it’s rather good), and my back is slowly getting better.
Wow, for the first time in close to 2 weeks, I actually felt a little better this morning! Pain has become a deep throb (kinda like having been kicked hard in the back the day before) rather than a yelling-out-loud stab, which is a distinct improvement. I’m still hobbling, but my mobility is getting a little better. Awesome, it looks like this back support has been doing its job. I celebrated by doing a little work on the resource enhancements for 1.
I went to see the osteopath yesterday to see if I could get this darned back sorted out. It appears I have some ligament / muscle damage which is why the usual bone crunching work hasn’t sorted it out. In fact, thanks to the manipulation this morning was the kind of pain I’d have preferred not to have experienced, thanks very much. So, the latest is: more painkillers, a new 15-minute time limit on any kind of desk-related sitting (bloody impractical that is), a back support that feels like being in a 19th century corset (no, I haven’t tried one on, I’m simply using my imagination), and strict instructions to get a lift to work instead of walking.