#include "SkyBox.hpp"
#include "Viewport.hpp"
-#include "../app/init.hpp"
+#include "../app/error.hpp"
#include "../geometry/const.hpp"
#include <GL/glew.h>
: cam()
, canv()
, cursor(1.0f)
+, cam_offset(0.0f)
, chunk_prog()
, entity_prog()
, sky_prog()
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"
+ }
}
}
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());