summaryrefslogtreecommitdiff
path: root/main.c3
blob: f9763efaa92923c9c66205575c6c95e58d492384 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
module c3term;
import std::io;

alias RGFW_window = void;

constdef RGFW_windowFlags : uint
{
  RGFW_WINDOW_NO_BORDER = 1 << 0,
  RGFW_WINDOW_NO_RESIZE = 1 << 1,
  RGFW_WINDOW_ALLOW_DND = 1 << 2,
  RGFW_WINDOW_HIDE_MOUSE = 1 << 3,
  RGFW_WINDOW_FULLSCREEN = 1 << 4,
  RGFW_WINDOW_TRANSLUCENT = 1 << 5,
  RGFW_WINDOW_TRANSPARENT = RGFW_WINDOW_TRANSLUCENT,
  RGFW_WINDOW_CENTER = 1 << 6,
  RGFW_WINDOW_RAW_MOUSE = 1 << 7,
  RGFW_WINDOW_SCALE_TO_MONITOR = 1 << 8,
  RGFW_WINDOW_HIDE = 1 << 9,
  RGFW_WINDOW_MAXIMIZE = 1 << 10,
  RGFW_WINDOW_CENTER_CURSOR = 1 << 11,
  RGFW_WINDOW_FLOATING = 1 << 12,
  RGFW_WINDOW_FOCUS_ON_SHOW = 1 << 13,
  RGFW_WINDOW_MINIMIZE = 1 << 14,
  RGFW_WINDOW_FOCUS = 1 << 15,
  RGFW_WINDOW_CAPTURE_MOUSE = 1 << 16,
  RGFW_WINDOW_OPENGL = 1 << 17,
  RGFW_WINDOW_EGL = 1 << 18,
  RGFW_NO_DEINIT_ON_CLOSE = 1 << 19,
  RGFW_WINDOWED_FULLSCREEN = RGFW_WINDOW_NO_BORDER | RGFW_WINDOW_MAXIMIZE,
  RGFW_WINDOW_CAPTURE_RAW_MOUSE = RGFW_WINDOW_CAPTURE_MOUSE | RGFW_WINDOW_RAW_MOUSE,
}

extern fn RGFW_window* rgfw_createWindow(ZString, int, int, int, int, RGFW_windowFlags) @cname("RGFW_createWindow");
extern fn bool         rgfw_window_shouldClose(RGFW_window*)                            @cname("RGFW_window_shouldClose");
extern fn bool         rgfw_window_close(RGFW_window*)                                  @cname("RGFW_window_close");
extern fn void         rgfw_pollEvents()                                                @cname("RGFW_pollEvents");

fn int main(String[] args)
{
  io::printn("init");

  RGFW_window* window = rgfw_createWindow("window title", 0, 0, 800, 400, RGFW_WINDOW_CENTER | RGFW_WINDOW_NO_RESIZE);

  while (!rgfw_window_shouldClose(window))
  {
    rgfw_pollEvents();
  }

  rgfw_window_close(window);

  io::printn("tschuess");
  return(0);
}