]> git.localhorst.tv Git - blank.git/blobdiff - src/graphics/Viewport.hpp
chat state
[blank.git] / src / graphics / Viewport.hpp
index 0bd6e89018d1ff6ed2d46b719a9131d086edda51..96fbaa4deae54840efb53a1bb7fa2474a17d1b21 100644 (file)
@@ -7,6 +7,8 @@
 #include "Camera.hpp"
 #include "Canvas.hpp"
 #include "DirectionalLighting.hpp"
+#include "PlainColor.hpp"
+#include "SkyBoxShader.hpp"
 
 #include <glm/glm.hpp>
 
@@ -24,6 +26,7 @@ public:
        void VSync(bool b) noexcept;
 
        void EnableDepthTest() noexcept;
+       void EqualDepthTest() noexcept;
        void DisableDepthTest() noexcept;
 
        void EnableBackfaceCulling() noexcept;
@@ -41,14 +44,19 @@ public:
        void Clear() noexcept;
        void ClearDepth() noexcept;
 
-       void SetCursor(const glm::vec3 &);
-       void SetCursor(const glm::vec3 &, Gravity = Gravity::NORTH_WEST);
-       void MoveCursor(const glm::vec3 &);
+       glm::vec2 GetPosition(const glm::vec2 &off, Gravity grav) const noexcept;
+
+       void SetCursor(const glm::vec3 &) noexcept;
+       void SetCursor(const glm::vec3 &, Gravity) noexcept;
+       void MoveCursor(const glm::vec3 &) noexcept;
        const glm::mat4 &Cursor() const noexcept { return cursor; }
 
        BlockLighting &ChunkProgram() noexcept;
        DirectionalLighting &EntityProgram() noexcept;
        DirectionalLighting &HUDProgram() noexcept;
+       PlainColor &WorldColorProgram() noexcept;
+       PlainColor &HUDColorProgram() noexcept;
+       SkyBoxShader &SkyBoxProgram() noexcept;
        BlendedSprite &SpriteProgram() noexcept;
 
        void WorldPosition(const glm::mat4 &) noexcept;
@@ -64,6 +72,8 @@ private:
 
        BlockLighting chunk_prog;
        DirectionalLighting entity_prog;
+       PlainColor color_prog;
+       SkyBoxShader sky_prog;
        BlendedSprite sprite_prog;
 
        enum {
@@ -71,6 +81,9 @@ private:
                CHUNK,
                ENTITY,
                HUD,
+               COLOR_WORLD,
+               COLOR_HUD,
+               SKY_BOX,
                SPRITE,
        } active_prog;