#include #include #include #include namespace td { namespace render { WorldRenderer::WorldRenderer(Camera& a_Camera, const game::WorldPtr& a_World) : Renderer(a_Camera) { m_WorldVao = std::make_unique(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