Lugdunum  0.1.0
ImageView.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace lug {
7 namespace Graphics {
8 namespace Vulkan {
9 namespace API {
10 
11 namespace Builder {
12 class ImageView;
13 } // Builder
14 
15 class Device;
16 class Image;
17 
19  friend class Builder::ImageView;
20 
21 public:
22  ImageView() = default;
23 
24  ImageView(const ImageView&) = delete;
26 
27  ImageView& operator=(const ImageView&) = delete;
28  ImageView& operator=(ImageView&& ImageView);
29 
30  ~ImageView();
31 
32  explicit operator VkImageView() const {
33  return _imageView;
34  }
35 
41  const Device* getDevice() const;
42 
48  const Image* getImage() const;
49 
50  void destroy();
51 
52 private:
53  explicit ImageView(VkImageView ImageView, const Device* device, const Image* extent);
54 
55 private:
56  VkImageView _imageView{VK_NULL_HANDLE};
57  const Device* _device{nullptr};
58 
59  const Image* _image{nullptr};
60 };
61 
63 
64 } // API
65 } // Vulkan
66 } // Graphics
67 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11