Program Listing for File image.hpp¶
↰ Return to documentation for file (inexor/vulkan-renderer/wrapper/image.hpp
)
#pragma once
#include <vk_mem_alloc.h>
#include <string>
namespace inexor::vulkan_renderer::wrapper {
// Forward declaration
class Device;
class Image {
const Device &m_device;
VmaAllocation m_allocation{VK_NULL_HANDLE};
VmaAllocationInfo m_allocation_info{};
VkImage m_image{VK_NULL_HANDLE};
VkFormat m_format{VK_FORMAT_UNDEFINED};
VkImageView m_image_view{VK_NULL_HANDLE};
std::string m_name;
public:
Image(const Device &device, VkFormat format, VkImageUsageFlags image_usage, VkImageAspectFlags aspect_flags,
VkSampleCountFlagBits sample_count, const std::string &name, VkExtent2D image_extent);
Image(const Image &) = delete;
Image(Image &&) noexcept;
~Image();
Image &operator=(const Image &) = delete;
Image &operator=(Image &&) = delete;
[[nodiscard]] VkFormat image_format() const {
return m_format;
}
[[nodiscard]] VkImageView image_view() const {
return m_image_view;
}
[[nodiscard]] VkImage get() const {
return m_image;
}
};
} // namespace inexor::vulkan_renderer::wrapper