]> git.localhorst.tv Git - blank.git/blobdiff - src/graphics/viewport.cpp
use entity's eyes to aim
[blank.git] / src / graphics / viewport.cpp
index ddc609baad6599a88012ba8b8dd4128c31e600a2..e1719668eab185b4bf27b200de5d8d45d5a99f08 100644 (file)
@@ -45,6 +45,9 @@ void Camera::Clip(float n, float f) noexcept {
        UpdateProjection();
 }
 
+void Camera::View(const glm::mat4 &v) noexcept {
+       view = v;
+}
 
 void Camera::UpdateProjection() noexcept {
        projection = glm::perspective(fov, aspect, near, far);
@@ -76,14 +79,14 @@ void Canvas::UpdateProjection() noexcept {
 
 SkyBox::SkyBox(CubeMap &&tex)
 : texture(std::move(tex))
-, model() {
-       model.LoadUnitBox();
+, mesh() {
+       mesh.LoadUnitBox();
 }
 
 void SkyBox::Render(Viewport &viewport) noexcept {
        SkyBoxShader &prog = viewport.SkyBoxProgram();
        prog.SetTexture(texture);
-       model.Draw();
+       mesh.Draw();
 }
 
 
@@ -256,7 +259,9 @@ BlendedSprite &Viewport::SpriteProgram() noexcept {
 
 
 void Viewport::WorldPosition(const glm::mat4 &t) noexcept {
-       cam.View(glm::inverse(t));
+       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))));
        ChunkProgram().SetView(cam.View());
        sky_prog.Activate();
        SkyBoxProgram().SetView(cam.View());