From 547074407aa154cc82ecff647603254f2eaf46f6 Mon Sep 17 00:00:00 2001 From: A404M Date: Sat, 24 May 2025 00:49:48 +0330 Subject: add a good example for calling c functions --- code/main.felan | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'code/main.felan') diff --git a/code/main.felan b/code/main.felan index dffcf15..969d1b6 100644 --- a/code/main.felan +++ b/code/main.felan @@ -1,11 +1,34 @@ +@import("basic.felan"); + libc :: @c_library("/lib/libc.so.6"); putchar :: @c_function(libc,"putchar",(i32)->i32); puts :: @c_function(libc,"puts",(*u8)->i32); +sleep :: @c_function(libc,"sleep",(i32)->void); + +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); main :: ()->void{ a :i32= 97; a = putchar(a); putchar(a); b := "hello\0"; - puts(&(b[0])); + str := &(b[0]); + puts(str); + screenWidth :i32: 800; + screenHeight :i32: 450; + InitWindow(screenWidth,screenHeight,str); + test := WindowShouldClose(); + while test == false { + BeginDrawing(); + ClearBackground(@cast(4294967295,u32)); + EndDrawing(); + test = WindowShouldClose(); + } + CloseWindow(); }; -- cgit v1.2.3