Raylib is a minimal gamedev library for C and this repository has a script for automatically generating Jai bindings from raylib.h.
There are also examples--direct Jai ports of the raylib examples.
There are more than shown here ported in the examples/ folder.
#load "path/to/raylib.jai";
main :: () {
InitWindow(800, 450, "raylib example");
defer CloseWindow();
while !WindowShouldClose() {
BeginDrawing();
defer EndDrawing();
ClearBackground(RAYWHITE);
DrawText("raylib + jai", 190, 200, 20, LIGHTGRAY);
}
}
Run compile_examples.bat with jai on your PATH.
Run the example .exe files from the examples/ directory.
- Some functions which take enum arguments (like
SetConfigFlagsfor example) have their argument types changed from C'sint(or Jai'ss32) to the actual enum type. Consequently, you can call them likeSetConfigFlags(.FLAG_FULLSCREEN_MODE); - An additional set of macros lets you change any of the Begin/End function call pairs (like
BeginMode3D(camera)andEndMode3D()) into an equivalentPushMode3D(camera)which will insert an automaticdefer EndXXX()call into the scope for you.
A python script generator.py reads raylib.h and generates raylib.jai.