]> git.lizzy.rs Git - dragonblocks3d-lua.git/blob - modules/RenderEngine/src/init.lua
0da1656d706cedfbd10ec393cc9643ab0b10192b
[dragonblocks3d-lua.git] / modules / RenderEngine / src / init.lua
1 glfw.window_hint("context version major", 3)
2 glfw.window_hint("context version minor", 3)
3 glfw.window_hint("opengl profile", "core")
4
5 function RenderEngine.reshape(_, width, height)
6         gl.viewport(0, 0, width, height)
7 end
8
9 function RenderEngine:open_window()
10         self.window = glfw.create_window(50, 50, "Unnamed Window")
11         glfw.make_context_current(self.window)
12         gl.init()
13         glfw.set_framebuffer_size_callback(self.window, RenderEngine.reshape)
14 end
15
16 function RenderEngine:set_window_title(title)
17         glfw.set_window_title(self.window, title)
18 end
19
20 function RenderEngine:render()
21         glfw.poll_events()
22         gl.clear_color(1.0, 0.5, 0.2, 1.0)
23         gl.clear("color", "depth")
24         glfw.swap_buffers(self.window)
25         coroutine.yield()
26 end
27
28 function RenderEngine:render_loop()
29         repeat RenderEngine:render()
30         until glfw.window_should_close(self.window)
31 end
32
33 function RenderEngine:add_render_task()
34         Dragonblocks:add_task(function() RenderEngine:render_loop() end)
35 end
36
37 RenderEngine:init()