7#include "../geometry/geometry.hpp"
8#include "../macros.hpp"
9#include <vulkan/vulkan.hpp>
10#include <vma/vk_mem_alloc.h>
14hi_export_module(hikogui.GFX : gfx_surface_delegate);
16hi_export
namespace hi::inline
v1 {
24class gfx_surface_delegate {
26 virtual ~gfx_surface_delegate() =
default;
27 constexpr gfx_surface_delegate()
noexcept =
default;
28 gfx_surface_delegate(gfx_surface_delegate
const&) =
delete;
29 gfx_surface_delegate(gfx_surface_delegate&&) =
delete;
30 gfx_surface_delegate& operator=(gfx_surface_delegate
const&) =
delete;
31 gfx_surface_delegate& operator=(gfx_surface_delegate&&) =
delete;
58 VmaAllocator allocator,
59 vk::Instance instance,
61 vk::Queue graphics_queue,
62 uint32_t graphics_queue_family_index)
noexcept
96 virtual void draw(uint32_t swapchain_index, vk::Semaphore start, vk::Semaphore finish, vk::Rect2D render_area)
noexcept {}
DOXYGEN BUG.
Definition algorithm_misc.hpp:20
virtual void teardown_for_swapchain_lost() noexcept
The swap-chain is going to be teared-down.
Definition gfx_surface_delegate_vulkan.hpp:40
virtual void teardown_for_device_lost() noexcept
The vulkan device is going to be teared-down.
Definition gfx_surface_delegate_vulkan.hpp:44
virtual void build_for_new_device(VmaAllocator allocator, vk::Instance instance, vk::Device device, vk::Queue graphics_queue, uint32_t graphics_queue_family_index) noexcept
The vulkan device has been initialized.
Definition gfx_surface_delegate_vulkan.hpp:57
virtual void build_for_new_swapchain(std::vector< vk::ImageView > const &views, vk::Extent2D size, vk::SurfaceFormatKHR format) noexcept
The swap-chain has been build.
Definition gfx_surface_delegate_vulkan.hpp:78
virtual void draw(uint32_t swapchain_index, vk::Semaphore start, vk::Semaphore finish, vk::Rect2D render_area) noexcept
Draw using vulkan API.
Definition gfx_surface_delegate_vulkan.hpp:96