diff options
Diffstat (limited to 'code')
-rw-r--r-- | code/main.felan | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/code/main.felan b/code/main.felan index 1dff7fb..6d83f56 100644 --- a/code/main.felan +++ b/code/main.felan @@ -1,8 +1,10 @@ @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); @@ -10,9 +12,16 @@ 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); +ClearBackground :: @c_function(raylib,"ClearBackground",(color:Color)->void); DrawText :: @c_function(raylib,"DrawText",(*u8,i32,i32,i32,u32)->void); +Color :: struct { + r:u8; + g:u8; + b:u8; + a:u8; +}; + main :: ()->void{ b := "raylib [core] example - basic window\0"; c := "Congrats! You created your first window!\0"; @@ -22,18 +31,23 @@ main :: ()->void{ screenHeight :i32: 450; a : u8 : 255; b : u8 : 0; - white :u32: color(a,a,a,a); - black :u32: 0xff000000; + white :: 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)); + ClearBackground(white); + DrawText(str2,@cast(190,i32),@cast(200,i32),@cast(20,i32),black); 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); +color :: (a:u8,r:u8,g:u8,b:u8)->Color{ + c : Color = undefined; + c.r = r; + c.g = g; + c.b = b; + c.a = a; + return c; }; |