light/modules/renderer/private/backend/vk/context/surface.hpp
light7734 61473c2758
Some checks failed
continuous-integration/drone/push Build is failing
test(renderer): overhaul tests & fix many bugs
2025-10-07 16:09:50 +03:30

43 lines
896 B
C++

#pragma once
#include <ecs/entity.hpp>
#include <memory/pointer_types/null_on_move.hpp>
#include <renderer/backend/vk/vulkan.hpp>
#include <renderer/frontend/context/instance.hpp>
#include <renderer/frontend/context/surface.hpp>
namespace lt::renderer::vk {
class Instance;
class Surface: public ISurface
{
public:
Surface(IInstance *instance, const ecs::Entity &surface_entity);
~Surface() override;
Surface(Surface &&) = default;
Surface(const Surface &) = delete;
auto operator=(Surface &&) -> Surface & = default;
auto operator=(const Surface &) const -> Surface & = delete;
[[nodiscard]] auto vk() const -> VkSurfaceKHR
{
return m_surface;
}
[[nodiscard]] auto get_framebuffer_size() const -> math::uvec2 override;
private:
class Instance *m_instance {};
VkSurfaceKHR m_surface = VK_NULL_HANDLE;
ecs::Entity m_surface_entity;
};
} // namespace lt::renderer::vk