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
SetConfigFlags
for 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.