wip
1
2#include <stdio.h>
3#include <stdlib.h>
4#include <setjmp.h>
5
6#include <fcntl.h>
7#include <sys/types.h>
8#include <sys/stat.h>
9#include <sys/mman.h>
10
11#include <crone.h>
12
13
14int main() {
15 /* lang
16 int fileDesc = open("./crone/core/core.cr", O_RDONLY, 0);
17 //int fileDesc = open("./crone/lang/parseme.cr", O_RDONLY, 0);
18
19 if (fileDesc == -1) {
20 CRASH("bad file");
21 }
22
23 struct stat fileStat;
24 int result = fstat(fileDesc, &fileStat);
25
26 if (result == -1) {
27 CRASH("bad fstat");
28 }
29
30 uint8_t *file = mmap(0, fileStat.st_size, PROT_READ, MAP_SHARED, fileDesc, 0); // TODO read docs
31
32 if (file == NULL) {
33 CRASH("bad mmap");
34 }
35
36 string script = {
37 .data = file,
38 .length = fileStat.st_size
39 };
40
41 execute_crone(script);
42
43 result = munmap(file, fileStat.st_size);
44
45 if (result == -1) {
46 CRASH("bad munmap");
47 }
48 // */
49
50
51 ///* graphics
52 window_handle window = window_getWindow();
53
54 vulkan_handle vk = vulkan_init();
55 graphics_handle graphics = graphics_init(vk, window);
56
57 fprintf(stderr, "[PROGRAM] entering main loop\n");
58
59
60 while (!window_shouldClose(window)) {
61 window_pollEvents(window);
62 }
63
64 fprintf(stderr, "[PROGRAM] exiting main loop\n");
65
66 window_cleanup(window);
67 graphics_cleanup(graphics);
68 vulkan_cleanup(vk);
69
70
71 fprintf(stderr, "[PROGRAM] done\n");
72
73 return 0;
74 // */
75}
76