aboutsummaryrefslogtreecommitdiff
path: root/code/main.felan
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-24 00:49:48 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-05-24 00:49:48 +0330
commit547074407aa154cc82ecff647603254f2eaf46f6 (patch)
tree94900126df946fa89b741a699db9cbe9ca743fe3 /code/main.felan
parent3c9aea642e3b2f4083705f1cd42fa911d35ee696 (diff)
add a good example for calling c functions
Diffstat (limited to 'code/main.felan')
-rw-r--r--code/main.felan25
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();
};