diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-24 00:49:48 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-24 00:49:48 +0330 |
commit | 547074407aa154cc82ecff647603254f2eaf46f6 (patch) | |
tree | 94900126df946fa89b741a699db9cbe9ca743fe3 /code/main.felan | |
parent | 3c9aea642e3b2f4083705f1cd42fa911d35ee696 (diff) |
add a good example for calling c functions
Diffstat (limited to 'code/main.felan')
-rw-r--r-- | code/main.felan | 25 |
1 files changed, 24 insertions, 1 deletions
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(); }; |