@import("basic.felan"); libc :: @c_library("/lib/libc.so.6"); puts :: @c_function(libc,"puts",(*u8)->i32); sleep :: @c_function(libc,"sleep",(i32)->i32); raylib :: @c_library("/lib/libraylib.so.5.5.0"); InitWindow :: @c_function(raylib,"InitWindow",(i32,i32,*u8)->void); WindowShouldClose :: @c_function(raylib,"WindowShouldClose",()->bool); BeginDrawing :: @c_function(raylib,"BeginDrawing",()->void); EndDrawing :: @c_function(raylib,"EndDrawing",()->void); CloseWindow :: @c_function(raylib,"CloseWindow",()->void); ClearBackground :: @c_function(raylib,"ClearBackground",(color:u32)->void); DrawText :: @c_function(raylib,"DrawText",(*u8,i32,i32,i32,u32)->void); main :: ()->void{ b := "raylib [core] example - basic window\0"; c := "Congrats! You created your first window!\0"; str := &b[0]; str2 := &c[0]; screenWidth :i32: 800; screenHeight :i32: 450; a : u8 : 255; b : u8 : 0; white :u32: color(a,a,a,a); black :u32: 0xff000000; InitWindow(screenWidth,screenHeight,str); while !WindowShouldClose() { BeginDrawing(); ClearBackground(@cast(white,u32)); DrawText(str2,@cast(190,i32),@cast(200,i32),@cast(20,i32),@cast(black,u32)); EndDrawing(); } CloseWindow(); }; color :: (a:u8,r:u8,g:u8,b:u8)->u32{ return @cast(a,u32)<<@cast(6*4,u32) | @cast(r,u32)<<@cast(0*4,u32) | @cast(g,u32)<<@cast(2*4,u32) | @cast(b,u32)<<@cast(4*4,u32); };