X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2Fviewport.cpp;h=0fe24085739db91a49385b635028497f2c358e6f;hb=7570271f7e1ede3ef65808f859597001338a7fe6;hp=9abe48f248261f81e8999a82eff70bc4a87a0010;hpb=54f3f1260b95a924fcb40d9d6de3fa2e2c382f6f;p=blank.git diff --git a/src/graphics/viewport.cpp b/src/graphics/viewport.cpp index 9abe48f..0fe2408 100644 --- a/src/graphics/viewport.cpp +++ b/src/graphics/viewport.cpp @@ -3,8 +3,8 @@ #include "SkyBox.hpp" #include "Viewport.hpp" -#include "../app/init.hpp" -#include "../model/geometry.hpp" +#include "../app/error.hpp" +#include "../geometry/const.hpp" #include #include @@ -94,6 +94,7 @@ Viewport::Viewport() : cam() , canv() , cursor(1.0f) +, cam_offset(0.0f) , chunk_prog() , entity_prog() , sky_prog() @@ -102,9 +103,14 @@ Viewport::Viewport() glClearColor(0.0, 0.0, 0.0, 1.0); } -void Viewport::VSync(bool b) noexcept { +void Viewport::VSync(bool b) { if (SDL_GL_SetSwapInterval(b) != 0) { - throw SDLError("SDL_GL_SetSwapInterval"); + if (b) { + throw SDLError("SDL_GL_SetSwapInterval(1)"); + } else { + // allow failure, because this usually means there's no vsync + // support at all, i.e. "it's off" + } } } @@ -263,9 +269,7 @@ BlendedSprite &Viewport::SpriteProgram() noexcept { void Viewport::WorldPosition(const glm::mat4 &t) noexcept { - const glm::vec3 offset(0.0f, 0.0f, 0.0f); - //const glm::vec3 offset(0.0f, 0.0f, -5.0f); - cam.View(glm::translate(glm::inverse(t), glm::vec3(t * glm::vec4(offset, 0.0f)))); + cam.View(glm::translate(glm::inverse(t), glm::vec3(t * glm::vec4(cam_offset, 0.0f)))); ChunkProgram().SetView(cam.View()); sky_prog.Activate(); SkyBoxProgram().SetView(cam.View());