wheel #15. this is a framework that's .... essentially Kha but one or two steps up the abstraction ladder. more accurately, an envisioning of love2d for haxe. (even though i jokingly called it wheel #15, i can't seem to find any library similar to this which is why i figured I should work on this.)
planned targets
- love2d with the love haxelib (that i made)
- Lime?
- hashlink (sdl2 + opengl / dx11? (i don't actually know d3d11 though lol, but i can probably figure it out))
- html5 (could also be done through lime?)
- hxcpp with ... sokol? (although sokol doesn't allow invalidating buffer data before frame present, will have to investigate workarounds or other libraries. raylib?, though only supports opengl)
on love2d target:
love2d target is a bit of an experimental choice, but it is the first target i've decided to implement since it allows me to spend more time early on designing the api rather than implementing stuff. and also because i use love2d api as inspiration for this project. and also because with less implementation code it seems to compile faster for smaller projects at least. and also because it's a target that runs natively, doesn't have an intermediate compilation step, and works on mac (i need to code on a mac sometimes)
project structure
petal projects will need a specific project directory structure:
petal [file - petal project configuration]
[one or more source directories]
[one or more shader directories, containing .psh files]
[one or more asset directories]
build/ [haxe build files]
out/ [actual generated target project]
.psh file is a collection of shader "modules", either vertex, fragment, or headers to be included by other modules.