#pragma once #include "Client/Abstract.hpp" #include namespace LV::Client::VK { class VulkanRenderSession : public IRenderSession { VK::Vulkan *VkInst; IServerSession *ServerSession = nullptr; WorldId_c WorldId; Pos::Object Pos; glm::quat Quat; VK::AtlasImage MainAtlas; std::map ServerToAtlas; public: VulkanRenderSession(VK::Vulkan *vkInst); virtual ~VulkanRenderSession(); void setServerSession(IServerSession *serverSession) { ServerSession = serverSession; assert(serverSession); } virtual void onDefTexture(TextureId_c id, std::vector &&info) override; virtual void onDefTextureLost(const std::vector &&lost) override; virtual void onDefModel(ModelId_c id, std::vector &&info) override; virtual void onDefModelLost(const std::vector &&lost) override; virtual void onDefWorldUpdates(const std::vector &updates) override; virtual void onDefVoxelUpdates(const std::vector &updates) override; virtual void onDefNodeUpdates(const std::vector &updates) override; virtual void onDefPortalUpdates(const std::vector &updates) override; virtual void onDefEntityUpdates(const std::vector &updates) override; virtual void onChunksChange(WorldId_c worldId, const std::vector &changeOrAddList, const std::vector &remove) override; virtual void setCameraPos(WorldId_c worldId, Pos::Object pos, glm::quat quat) override; }; }