Firstly, I know there is already an OOP thread for DarkGDK, but it wasn't around when I started work on this, and I'm too far in to turn back now
This is a wrapper for DarkGDK, which wraps EVERY command, or provides its own equivalent!
Example code:
Display::Screen::SetWindowMode(1152,864,32); // Set window resolution
Display::Window::Maximize(); // Maximize the window
Core::SetSync(true); // Set manual sync on
Object3D* box1 = new Cube3D(10.0f); // Create a cube
box1->SetGhost(Object3D::GhostLight); // Ghost the cube using normal (light) ghosting
while (LoopGDK())
{
Camera3D::MainCamera()->Control(1.0f,true,true); // Enable smooth mouselook camera with WASD keys to move
Core::Sync(); // Update screen
}
Progress:
Core
Text
Display
Input
File
Basic2D
Bitmap
Sound
Music
Sprites
Image
Animation
Light
Camera
Basic3D
Matrix
World
Particles
3D Maths (Uses structures that inherit from D3DX structures directly instead of using DarkGDK)
FTP
Memblocks
Multiplayer
System
Terrain
D3D Plugin (converted to DarkGDK by me, and then wrapped
)
Sparky's DLL
Billboarding
LOD Objects
My culling plugin (only available for DBP atm)
My fog of war plugin (not released at all, but a few people have seen it)
Dark Physics (I'm getting a fatal error C1007, unrecognized flag '-typedil' in 'p2'. This happens in the samples as well, and nobody has ever posted a solution to it
)
Dark AI
3D Maths
The 3D Maths section contains many more commands the the DarkGDK equivalent. It has support for quaternions and planes as well as Vector2/3/4 and Matrix4x4. Conversion of Euler angles of any order to/from matrices and/or quaternions is possible. Conversion between quaternions and matrices is also possible.
Sparky's DLL
The sparky's dll section is built into Basic3D, so you can set up your objects for collision like so:
MyObj->SetupCollision(<group>,<shape>) // shape is an enumeration
Cloggy's D3D Plugin
Converted for use with the DarkGDK by me, all its commands are wrapped for OOP
General
All position and rotation commands can use the Vector structures as well as the x/y/z values for easier use. All internal data of Objects/Cameras/etc. can be accessed using the GetData function of that class.
Because so much time has gone into this, it will most probably
not be free. It will only cost around £5 though, which is really not much considering what you get! When it is ready, Aaron Miller will be kindly hosting it on his site.
The name...
Currently, the project has a temporary name (DarkOOP) which I think might already be being used by another OOP wrapper, so any inventive suggestions are welcome