I thought before I got any deeper into the background loading code, I thought I’d do a bit more digging on the performance of the approach I was planning to use to make sure I wasn’t barking up the wrong tree. I was particularly concerned that the major synchronisation primitive in Boost.Thread uses is called a mutex, and many of you will know that mutexes are expensive (in Windows anyway) since they involve a transition from user to kernel mode in all cases.
Well, as I’d hoped I got New Super Mario Bros today from my wife, and a bit of a cracker it is too. It really does capture the core essence of the enduring all-time classic 2D platformer (in my opinion) Super Mario World, but brings it up to date technically and adds a whole bunch of twists that have been introduced in more recent 3D Mario incarnations, like wall-jumping and butt-stomping.
There’s unlikely to be much coding done this weekend since both my wife and I have birthdays 😀I fixed a couple more bugs and did a Dagon -> Eihort merge last night but that’s probably all I’ll have time for until next week now. I’m part way through some threaded loading enhancements but that’s going to need some more time to mature before it’s totally ready, and I also have to brush up a little more on Collada, since I’ll be demoing Ogre at the Sony/Collada Birds of a Feather at Siggraph in just over a couple of weeks.
Well, yesterday I had an utterly unsporting stomach bug of some sort that took me out for 12 hours. I basically stayed at home all day and didn’t feel up to anything (no, not even my new glossy DS Lite) except a little reading and TV. I even found myself watching the Bloomberg channel at one point without realising, my eyes glazed over, absorbing financial information at some subconscious level in my sickly stupor.
Ok, so I caved. Just over 2 weeks since I bought my wife a white DS Lite, I couldn’t stand it anymore - I bought myself a black one. Going back to the original DS, most noticeably of all the old screen brightness, was painful after having another one in the house chucking photons about with wild abandon. Ok, so I don’t have that much time to play on the DS, but the time I do spend will now be even better 😀Hell, the way I see it is that it’s my birthday at the weekend so this is a present to myself.
The Radeon X1x00 range supposedly supports Shader Model 3. Except of course, that it doesn’t. 😉 ATI have exploited a loophole in the DirectX9 SM3 definition that says to be SM3 compliant, you have to implement vertex texture fetch. However, it gives manufacturers flexibility over which texture formats it can support in the vertex pipeline (nVidia support PF_FLOAT32_R and PF_FLOAT32_RGBA in Ogre pixelformat conventions), and what it doesn’t say is that you have to support at least one texture format as a vertex texturing source.
I don’t claim to be an expert in software design, but I think I’ve learned a few things over the years. As I’ve wrestled with a few problems recently, I began to think about the approach that I generally take to the process of design. It’s influenced by books I’ve read, multiple projects that I’ve been involved in, and some of my gut feelings. You may agree or disagree, but I felt it would be good, even just for myself, to write down the tenets that I’ve come to regard as core to my design approach.
… in a roundabout way 😀 I always expected the outcome of the OpenDocument vs Office ‘Open’ XML (the quotes are mine ;)) to be that Microsoft would add limited OpenDocument support to Office 2007 - enough to claim the bullet point, but basically the minimum possible interoperability to claim that feature. But, they’ve pleasantly surprised me. Instead they’ve given the project to 3rd parties (allowing them, I note, to stick to their original pledge of not supporting OpenDocument in Office itself whilst still making sure it gets done), but most interestingly the project will be open source, under a BSD license, and will get some level of resourcing from Microsoft, presumably in the form of both some cash and advice.
I have a few things on my TODO right now, but one of them is vertex texture support in Eihort. Now, this isn’t actually that hard to implement, but I didn’t do it for Dagon because DirectX and GL take completely different approaches to the way they bind textures for use in the vertex shader. So it’s a design question rather than one of implementation - the differences between the vertex texture implementations pretty much mirrors the fundamental design differences between D3D and GL.
Here is yet another example of why why pure software patents must not be allowed to hinder innovation in Europe like it does in the litigation-obsessed USA: FireStar has launched a lawsuit against RedHat now that they own Hibernate, a well respected, open source ORM (Object-Relational Mapping) tool originally for Java, and now .Net too. FireStar’s patent asserts ownership over the idea of “A mapping between an object model and a relational database is generated to facilitate access to the relational database”.