34 lines
910 B
C++
34 lines
910 B
C++
#include <td/Maths.h>
|
|
#include <td/render/renderer/WorldRenderer.h>
|
|
|
|
#include <td/render/loader/WorldLoader.h>
|
|
|
|
#include <imgui.h>
|
|
|
|
namespace td {
|
|
namespace render {
|
|
|
|
WorldRenderer::WorldRenderer(Camera& a_Camera, const game::WorldPtr& a_World) : Renderer(a_Camera) {
|
|
m_WorldVao = std::make_unique<GL::VertexArray>(WorldLoader::LoadWorldModel(a_World.get()));
|
|
}
|
|
|
|
WorldRenderer::~WorldRenderer() {}
|
|
|
|
void WorldRenderer::UpdateControls() {
|
|
if (ImGui::IsMouseDown(ImGuiMouseButton_Left)) {
|
|
constexpr float sensitivity = 1.0f;
|
|
float delta = ImGui::GetIO().DeltaTime;
|
|
auto mouseDelta = ImGui::GetIO().MouseDelta;
|
|
m_Camera.SetCamPos(m_Camera.GetCamPos() + Vec3f{-mouseDelta.x * delta * sensitivity, 0, -mouseDelta.y * delta * sensitivity});
|
|
}
|
|
}
|
|
|
|
void WorldRenderer::Render(float a_Lerp) {
|
|
UpdateControls();
|
|
m_Shader->Start();
|
|
Renderer::Render(*m_WorldVao);
|
|
}
|
|
|
|
} // namespace render
|
|
} // namespace td
|