I would like to announce COW to you. This project is a C++ GPL'ed platform-independant platform library. It compiles with Visual Studio, makefile and SCons. It has been verified to compile for Windows, Linux and the DS.
COW offers a set of features including(but not limitted to):
- RTTI and serialization(XML, later also binary with conversion tools from&to)
- FixedPointMath template class that has conversion accessors for float/int conversion. Should work as fast as the defines from libnds, but is a lot more friendly to use.
- (Serializable) Storage types to replace STL. This saves LOTS of executable size. (array, list, dlist, string)
- (Serializable) Metrics and vector classes with the expected operators.
- A few bit operators.
- Handy 'tools' like AutoPtr, platform-independant asserts
- Pattern templates like Singleton and Factory
- A streaming system (filestream and stringstream only atm, filestream is not tested on. This system allows uniform file handling and stream opening (eg. StreamManager::OpenStream("file://file.txt", [read/write mode])
COW also includes platform-independant unit tests, which help a lot during development.
The current project state is beta and although the code design might still change slightly, I think it is already grown-up enough to be shared among you. I'll be happy to fix bugs for you if you chose to use my library and post the bugs here.
A self-modified version of TinyXML(to make use of my own containers) is used for serialization, since this is the smallest XML library that I can find. I think that you will find the speed of serializing from/to XML very fast. I will make a binary serialization system later to make things even quicker, but at the moment I'm too busy with other matters to do this.
Get the files with SVN:
svn co https://cow.svn.sourceforge.net/svnroot/cow
Browse the source code:
Browse the demo source code(UnitTests and Tutorials are interesting):
The tutorials are still being worked on, but the UnitTest project also 'explains' quite a few features.
Got questions/suggestions/bugs? Please post them here!