PDA

View Full Version : COW - OS platform library



wraggster
August 28th, 2007, 15:15
News from Vich (http://forum.gbadev.org/viewtopic.php?t=14019&sid=c29ccee1f187459443c76e2fce2b7708)


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])
- etc.

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.

Project page:
http://sourceforge.net/projects/cow
Get the files with SVN:
svn co https://cow.svn.sourceforge.net/svnroot/cow cow

Browse the source code:
http://cow.svn.sourceforge.net/viewvc/cow/trunk/Source/COW
Browse the demo source code(UnitTests and Tutorials are interesting):
http://cow.svn.sourceforge.net/viewvc/cow/trunk/Demos/Source/
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!