aboutsummaryrefslogtreecommitdiff
path: root/code/main.felan
blob: a4156072aa7dcca8fcd35447b93af883c9f968c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@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;
  white :u32: 4294967295;
  black :u32: 4278190080;
  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{
  t :u8= 255;
  c := t&a;
};