X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fgraphics%2Fviewport.cpp;h=9abe48f248261f81e8999a82eff70bc4a87a0010;hb=7f15e27277382f0176a23dd21702f9d113581763;hp=e1719668eab185b4bf27b200de5d8d45d5a99f08;hpb=f430ad789fe620ad2e8b2b2b99af868372791295;p=blank.git diff --git a/src/graphics/viewport.cpp b/src/graphics/viewport.cpp index e171966..9abe48f 100644 --- a/src/graphics/viewport.cpp +++ b/src/graphics/viewport.cpp @@ -165,20 +165,24 @@ void Viewport::ClearDepth() noexcept { } -void Viewport::SetCursor(const glm::vec3 &pos) { +glm::vec2 Viewport::GetPosition(const glm::vec2 &off, Gravity grav) const noexcept { + return align(grav, canv.Size(), off + canv.Offset()); +} + +void Viewport::SetCursor(const glm::vec3 &pos) noexcept { cursor[3].x = pos.x; cursor[3].y = pos.y; cursor[3].z = pos.z; } -void Viewport::SetCursor(const glm::vec3 &pos, Gravity grav) { - glm::vec2 p(align(grav, canv.Size(), glm::vec2(pos) + canv.Offset())); +void Viewport::SetCursor(const glm::vec3 &pos, Gravity grav) noexcept { + glm::vec2 p(GetPosition(glm::vec2(pos), grav)); cursor[3].x = p.x; cursor[3].y = p.y; cursor[3].z = pos.z; } -void Viewport::MoveCursor(const glm::vec3 &d) { +void Viewport::MoveCursor(const glm::vec3 &d) noexcept { cursor[3].x += d.x; cursor[3].y += d.y; cursor[3].z += d.z; @@ -219,22 +223,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 {