-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Odd is a peculiar little software renderer written in Haxe that aims to be platform agnostic.
The idea is that all of the rendering logic is defined in a cross-platform way, and that the image buffer data is then passed to a user-specified back-end which will handle the drawing of the frame (to a window, canvas, image, ASCII text, etc.).
Please note that Odd is still under development!
- Get Haxe. Any 3.2.x version is likely to work.
- Get odd:
haxelib git odd https://github.com/dstrekelj/odd.git dev - Run samples!
Note that samples are currently all built for JS only
To build samples for neko, just change the build target to -neko instead of -js.
The renderer's only job is to draw its idea of a pixel on its idea of a window / canvas. Certain requirements need to be met for the renderer to work.
A sample renderer class should look like this:
class MyRenderer
{
public function new(width : Int, height : Int);
public function render(bufferData : PLATFORM_SPECIFIC_TYPE);
}The slightly tricky bit is the bufferData that is passed to the public render() method. What odd is actually passsing is haxe.io.BytesData. Usually this is an array of unsigned integers, but it's best to check with the Haxe API for platform specific implementation details.