Home C++ Lua GitHub Games Math Myself Contact



Core Libraries v.2

This is a revamp of the original Core Libraries project of mine. I went through and cleaned up a lot of the classes. The vector class is now more concise and all written via inline functions and operators and what not. While this does make for easy programming I am still guilty of propogating my own personal opinions of what operators should be used for the vector dot and cross products, as so many other libraries out there are.

One of the best advances over the last version of core libraries is that this collection is as OOP-based as I could manage it to be. Modules are now linked to the core through one API-exposing routine rather than three staticly-linked functions. And get this, the API is exposed through virtual functions! It couldn't get much more C++ OOP than this. I'm sure it could, but I'm still learning how and all. You understand.

Another big advance is the cross platform capabilities. I did the guilty deed of creating my own application layer to sit upon other application layers. From that I made separate system interfacing layers - a separate one for each separate possible underlying platform. I've made ones for SDL, GLUT, Win32, and OSX.

Some more big bragging rights: the Math library is chalk full of template metaprograms. I abstracted both static and dynamic allocated vectors together. I have separate coded pathways for static allocation operations: template metaprogram unrolled loops vs for-loops (which compilers will probably unroll anyways).

Usage:
Download the required libraries (which typically consists of Defs, Math, System, Base, and a subsystem of your flavor). Make sure to add all appropriate paths to your build directories.

Name Source Win32 OS X Dependencies
Libraries:
Defs Source
Math Source Defs
System Source Win32 OS X Defs, Math
Base Source Win32 OS X Defs, Math, System (optional: libpng (1.2.12), jpeglib (6b), libtiff (3.8.2))
Shader Source Win32 OS X Defs, System, Base
Lib Source Win32 OS X Defs, Math, System, Base
Garbage Collection Source Win32 OS X
Menu Source Win32 OS X Defs, Math, System, Base, Garbage Collection
Particle . . . Coming Soon
RigidBody . . . Coming Soon
Subsystems:
WinSystem Source Win32 Defs, Math
WinScreenSaverSystem Source Win32 Defs, Math
OSXSystem Source OS X Defs, Math
SDLSystem Source Win32 OS X Defs, Math
GLUTSystem . . . Coming Soon
GLUIGLUTSystem . . . Coming Soon
OSXScreenSaverSystem . . . Coming Soon

Win32 projects are built with MSVC9. OS X projects are built with XCode 2.2.

Note to the MSVC9 SDL users out there: All my projects are compiled with "Multithread [Debug]", explicitly not DLL. I'd rather not have to pass out extra runtime files. The SDL runtime binaries are distributed as "Multithread [Debug] DLL". This means you will have to either rebuild SDL as multithread-non-DLL or rebuild my projects as multithread-DLL. Or just use WinSystem with MSVC9 instead of SDL.