]> git.localhorst.tv Git - blank.git/blobdiff - src/graphics/viewport.cpp
uniform background for message box
[blank.git] / src / graphics / viewport.cpp
index ad58b58be677d033962a2687d88f961e6ebe71e1..f9558d036865de4e3b388e5e22a96b1d1a8536d8 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);
@@ -216,22 +219,22 @@ DirectionalLighting &Viewport::HUDProgram() noexcept {
        return entity_prog;
 }
 
-PlainColor &Viewport::WorldOutlineProgram() noexcept {
-       if (active_prog != OUTLINE_WORLD) {
-               outline_prog.Activate();
-               outline_prog.SetVP(cam.View(), cam.Projection());
-               active_prog = OUTLINE_WORLD;
+PlainColor &Viewport::WorldColorProgram() noexcept {
+       if (active_prog != COLOR_WORLD) {
+               color_prog.Activate();
+               color_prog.SetVP(cam.View(), cam.Projection());
+               active_prog = COLOR_WORLD;
        }
-       return outline_prog;
+       return color_prog;
 }
 
-PlainColor &Viewport::HUDOutlineProgram() noexcept {
-       if (active_prog != OUTLINE_HUD) {
-               outline_prog.Activate();
-               outline_prog.SetVP(canv.View(), canv.Projection());
-               active_prog = OUTLINE_HUD;
+PlainColor &Viewport::HUDColorProgram() noexcept {
+       if (active_prog != COLOR_HUD) {
+               color_prog.Activate();
+               color_prog.SetVP(canv.View(), canv.Projection());
+               active_prog = COLOR_HUD;
        }
-       return outline_prog;
+       return color_prog;
 }
 
 SkyBoxShader &Viewport::SkyBoxProgram() noexcept {
@@ -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());