X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2FViewport.hpp;h=de62c4847c9cc67309030c6886ee66b394c19502;hb=d2f4c8720ae2326fac4203fa4984d835e875b355;hp=4d55d8893dadbe289bd3a9c835170c1709ba4906;hpb=a32b120a2c06d3c7ad6a217bc46bba9e76d75d93;p=blank.git diff --git a/src/graphics/Viewport.hpp b/src/graphics/Viewport.hpp index 4d55d88..de62c48 100644 --- a/src/graphics/Viewport.hpp +++ b/src/graphics/Viewport.hpp @@ -8,6 +8,7 @@ #include "Canvas.hpp" #include "DirectionalLighting.hpp" #include "PlainColor.hpp" +#include "SkyBoxShader.hpp" #include @@ -22,9 +23,10 @@ public: Viewport(const Viewport &) = delete; Viewport &operator =(const Viewport &) = delete; - void VSync(bool b) noexcept; + void VSync(bool b); void EnableDepthTest() noexcept; + void EqualDepthTest() noexcept; void DisableDepthTest() noexcept; void EnableBackfaceCulling() noexcept; @@ -42,16 +44,22 @@ public: void Clear() noexcept; void ClearDepth() noexcept; - void SetCursor(const glm::vec3 &); - void SetCursor(const glm::vec3 &, Gravity); - 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; } + void OffsetCamera(const glm::vec3 &o) noexcept { cam_offset = o; } + const glm::vec3 &CameraOffset() const noexcept { return cam_offset; } + BlockLighting &ChunkProgram() noexcept; DirectionalLighting &EntityProgram() noexcept; DirectionalLighting &HUDProgram() noexcept; - PlainColor &WorldOutlineProgram() noexcept; - PlainColor &HUDOutlineProgram() noexcept; + PlainColor &WorldColorProgram() noexcept; + PlainColor &HUDColorProgram() noexcept; + SkyBoxShader &SkyBoxProgram() noexcept; BlendedSprite &SpriteProgram() noexcept; void WorldPosition(const glm::mat4 &) noexcept; @@ -65,9 +73,12 @@ private: glm::mat4 cursor; + glm::vec3 cam_offset; + BlockLighting chunk_prog; DirectionalLighting entity_prog; - PlainColor outline_prog; + PlainColor color_prog; + SkyBoxShader sky_prog; BlendedSprite sprite_prog; enum { @@ -75,8 +86,9 @@ private: CHUNK, ENTITY, HUD, - OUTLINE_WORLD, - OUTLINE_HUD, + COLOR_WORLD, + COLOR_HUD, + SKY_BOX, SPRITE, } active_prog;