File tree Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Expand file tree Collapse file tree 1 file changed +49
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Compile with:
2
+ # cac examples/sdl.cal -i std -bo use-libc -l SDL2
3
+
4
+ include "cores/select.cal"
5
+ include "std/io.cal"
6
+
7
+ const SDL_INIT_VIDEO 32
8
+ const SDL_RENDERER_ACCELERATED 2
9
+ const SDL_RENDERER_PRESENTVSYNC 4
10
+ const SDL_QUIT 0x100
11
+
12
+ extern C i32 SDL_Init u32 end
13
+ extern C addr SDL_CreateWindow addr i32 i32 i32 i32 u32 end
14
+ extern C addr SDL_CreateRenderer addr i32 u32 end
15
+ extern C i32 SDL_PollEvent addr end
16
+ extern C void SDL_DestroyWindow addr end
17
+ extern C void SDL_DestroyRenderer addr end
18
+ extern C void SDL_Quit end
19
+
20
+ struct SDL_Event
21
+ array 56 u8 pad
22
+ end
23
+
24
+ let addr window
25
+ let addr renderer
26
+
27
+ "Init " printstr
28
+ SDL_INIT_VIDEO SDL_Init printdec new_line
29
+
30
+ "Window " printstr
31
+ "Callisto\0" Array.elements + @ 0 0 320 240 0 SDL_CreateWindow window !
32
+ window @ printdec new_line
33
+
34
+ "Renderer " printstr
35
+ window @ -1 SDL_RENDERER_PRESENTVSYNC SDL_RENDERER_ACCELERATED or SDL_CreateRenderer renderer !
36
+ renderer @ printdec new_line
37
+
38
+ while true do
39
+ let SDL_Event e
40
+ while e SDL_PollEvent do
41
+ if e d@ SDL_QUIT = then
42
+ "Bye!\n" printstr
43
+ renderer @ SDL_DestroyRenderer
44
+ window @ SDL_DestroyWindow
45
+ SDL_Quit
46
+ 0 exit
47
+ end
48
+ end
49
+ end
You can’t perform that action at this time.
0 commit comments