Program Listing for File VulkanImageView.ixx

Program Listing for File VulkanImageView.ixx#

Return to documentation for file (Src/GraphicsEngineVulkan/vulkan_base/VulkanImageView.ixx)

module;
#include <vulkan/vulkan.hpp>

export module kataglyphis.vulkan.image_view;

import kataglyphis.vulkan.device;

export namespace Kataglyphis {
class VulkanImageView
{
  public:
    VulkanImageView();
    VulkanImageView(const VulkanImageView &) = delete;
    VulkanImageView &operator=(const VulkanImageView &) = delete;
    VulkanImageView(VulkanImageView &&other) noexcept;
    VulkanImageView &operator=(VulkanImageView &&other) noexcept;

    void setImageView(vk::ImageView imageView);

    vk::ImageView &getImageView() { return imageView; };

    void create(VulkanDevice *in_device,
      vk::Image image,
      vk::Format format,
      vk::ImageAspectFlags aspect_flags,
      uint32_t mip_levels);

    void cleanUp();

    ~VulkanImageView();

  private:
    VulkanDevice *device{ nullptr };

    vk::ImageView imageView{};
};
}// namespace Kataglyphis