
.. _program_listing_file_Src_GraphicsEngineVulkan_vulkan_base_VulkanImageView.ixx:

Program Listing for File VulkanImageView.ixx
============================================

|exhale_lsh| :ref:`Return to documentation for file <file_Src_GraphicsEngineVulkan_vulkan_base_VulkanImageView.ixx>` (``Src/GraphicsEngineVulkan/vulkan_base/VulkanImageView.ixx``)

.. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS

.. code-block:: cpp

   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
