Alright, after roughly six months of silence, here's an update.
No change to the files at SourceForge yet, but al lot has changed.
Of what little code that I had completed, most has been rewritten.
I now manage the code with Visual Studio 2005 (still compiling with Cygwin, though), which makes everything so much easier.
The directory structure has been completely revamped, together with a lot of other, smaller changes.
The only thing left to do before I can (finally) post the SOURCE code of XFX, is to clean up the directories and remove all unneeded bloat.
After that, I think I'll open up a couple of developer spots on my 1 man team, so XFX can really evolve into something useful.
One of the most important changes is 'type-safe' enums.
Previously, you wrote XFX code like:
CODE
GamePadState gamePadState = GamePad::GetState(One);
//Allow the game to exit
if(gamePadState.Buttons.Back == Pressed)
done=1;
While it works, there's a downside, since enums violate the scope principle of C++: the namespaces become polluted with constant definitions that easily lead to naming conflicts.
So what I did was wrap all enums in structs like the PlayerIndex enum, for example:
CODE
struct PlayerIndex
{
enum type
{
One,
Two,
Three,
Four
};
};
typedef PlayerIndex::type PlayerIndex_t;
Not very elegant, but it works. Now, let's take the above XFX example and modify it to reflect the changes:
CODE
GamePadState gamePadState = GamePad::GetState(PlayerIndex::One);
//Allow the game to exit
if(gamePadState.Buttons.Back == ButtonState::Pressed)
done=1;
Not only does it look more like XNA, it also prevents namespace pollution.
Well, that's it for now. I'll update again when I've uploaded the source code and updated precompiled libs to SourceForge.net