]> git.localhorst.tv Git - blank.git/blobdiff - src/app.cpp
update light levels from border on neighbor change
[blank.git] / src / app.cpp
index cfb16822897a01027da39d62c3624da6fe7fd52b..6a87042cffe553f621939e944bd6d81c37b5a39c 100644 (file)
@@ -6,20 +6,23 @@
 
 namespace blank {
 
-Application::Application()
+Application::Application(const Config &config)
 : init_sdl()
 , init_img()
-, init_gl()
+, init_gl(config.doublebuf, config.multisampling)
 , window()
 , ctx(window.CreateContext())
 , init_glew()
-, program()
+, chunk_prog()
+, entity_prog()
 , cam()
-, world()
-, interface(world)
+, world(config.world)
+, interface(config.interface, world)
 , test_controller(MakeTestEntity(world))
 , running(false) {
-       GLContext::EnableVSync();
+       if (config.vsync) {
+               GLContext::EnableVSync();
+       }
 
        glClearColor(0.0, 0.0, 0.0, 1.0);
 }
@@ -132,12 +135,12 @@ void Application::Update(int dt) {
 void Application::Render() {
        GLContext::Clear();
 
-       program.Activate();
+       chunk_prog.SetProjection(cam.Projection());
+       entity_prog.SetProjection(cam.Projection());
 
-       program.SetProjection(cam.Projection());
-       world.Render(program);
+       world.Render(chunk_prog, entity_prog);
 
-       interface.Render(program);
+       interface.Render(entity_prog);
 
        window.Flip();
 }