1    object OsWindow =
2        def create (width : u32
3                    height : u32
4                    header : String
5                    is_resizable : bool) =
6            let window = GlfwWindow.create width height header is_resizable
7            let (mouse_x, mouse_y) = window.mouse_position
8            let os_window = OsWindow
9                =window =mouse_x =mouse_y =width =height =is_resizable
10   
11           Glfw.set_key_callback window
12                                 key_callback@fn
13                set_char_callback window
14                                  char_callback@fn
15                set_mouse_button_callback window
16                                          mouse_button_callback@fn
17                set_scroll_callback window
18                                    mouse_scroll_callback@fn
19                set_window_size_callback window
20                                         size_callback@fn
21                set_window_iconify_callback window
22                                            iconify_callback@fn
23                set_window_maximize_callback window
24                                             maximize_callback@fn
25   
26           windows.add window os_window
27   
28           os_window
29   
30   end@ window
31   
32   def create_surface (instance : VkInstance) (window : GlfwWindow) =
33       let mut surface = null
34       Glfw.create_window_surface instance window null surface@mut_ptr
35   
36       surface
37   
38   def update = Glfw.poll_events
39