Feature List
-
Platform Support
- Windows XP, Vista, 7
- Linux
- Android (coming soon!)
-
Architecture Support
-
Compiler Support
-
Graphics API
- OpenGL
- DirectX 9 (coming soon!)
-
Window Handling
- Create & destroy windows
- Windowed & fullscreen modes
- Dynamic video mode switching & window style modification
- Set window title, dimensions & position
- Get window title, dimensions & parameters
- Manually minimize and restore
-
Video Mode Handling
- Get desktop dimensions
- Query supported video modes
-
Peripheral Input
- Mouse
- Get button states
- Get / set wheel position
- Get / set cursor position
- Show / hide mouse cursor
- Set custom cursor image (Windows only)
- Set standard system cursor shapes (Windows only)
- Keyboard
- Joystick (coming soon!)
-
High Resolution Timer
- Get & set time
- Count FPS
- Set constant FPS
- Idle time handling
-
2D / 3D Vectors
- Get vector length, dot product, cross product, etc.
- Lots of overloaded operators
-
3x3 / 4x4 Matrices
- Load identity
- Translate, rotate, scale, and shear
- Identify pure matrix types (coming soon!)
- Add, subtract, multiply, and compare matrices
- Transform vectors by matrices
- Convert to & from OpenGL-style matrices
-
Hardware Accelerated Rendering
- Viewports
- Multiple viewports
- Relative and absolute sizing
- Cameras
- Orthographic projection
- Translate, rotate, and zoom
- Sprites
- Translate, rotate, scale, flip, etc.
- Texture, color, alpha blend, etc.
- Tile Animated Sprites
- All of the features of a sprite, and then some
- Set start and end frames
- Any number of columns, rows, and frames
- Set independent frame rate (fps)
- Play, stop, pause animation
- Playback modes: forward, reverse, loop, pingpong
- Text
- Bitmap font rendering
- TrueType font rendering
- Antialiasing
- Spacing, padding, and kerning
- And lots more...
- Set alignment, character spacing, line spacing, and orientation
- Translate, rotate, scale, and shear individual characters
- Lines
- Enable / disable anti-aliasing
- Draw lines and/or points
- Set line width, color, alpha, etc.
- Textures
- 2D texture support
- Texture overlaying
- Accepts non-power-of-2 images.
- Set filter and wrap modes
-
Particle System
-
Skinnable GUI
-
Collision Detection
- Mouse picking
- Bounding collisions
- Point
- Ray
- Bounding circle
- Axis-aligned bounding box
- Oriented bounding box
- Sweep testing (coming soon!)
-
Keyframe Animation
-
Game States
- Inheritable game state framework
- Update, draw, pause, resume, and restart
-
Game State Management
- Add underlay / overlay scenes
- Remove scenes
- Update, draw, pause, resume, and restart scenes en masse
-
Event Handling
- Linear event dispatching
- Send & receive events
- Register customized user event receivers
- Send & receive customized user events
-
Image reading/writing
- Truevision Targa 1.0/2.0 (TGA) r/w
- Portable Network Graphic (PNG) r/w
-
Template-based Container Classes
- Doubly-linked list
- Stack
- Queue
-
Data Streams
- File stream
- Memory stream
- Text stream
-
Directory Management
- Create / remove directories
- Get / set current working directory
- Get application file path
- Get application directory
- Get application filename
- Recursive path creation / removal (coming soon!)
-
System Information
- Get number of processors (Windows only)
- Get processor type (Windows only)
- Get amount of total & free memory
-
Power Information (Windows only)
- Get power source
- Get battery status & life
-
Miscellaneous