Lluvia
ImageViewDescriptor.h
Go to the documentation of this file.
1 
8 #ifndef LLUVIA_CORE_IMAGE_IMAGE_VIEW_DESCRIPTOR_H_
9 #define LLUVIA_CORE_IMAGE_IMAGE_VIEW_DESCRIPTOR_H_
10 
14 
15 #include <array>
16 #include <cstdint>
17 #include <string>
18 #include <tuple>
19 
21 
22 namespace ll {
23 
24 class ImageView;
25 
42 
43 public:
44  ImageViewDescriptor() = default;
45  ImageViewDescriptor(const ImageViewDescriptor& descriptor) = default;
46  ImageViewDescriptor(ImageViewDescriptor&& descriptor) = default;
47 
49  const ll::ImageFilterMode filterMode,
50  const bool normalizedCoordinates,
51  const bool isSampled);
52 
53  ~ImageViewDescriptor() = default;
54 
55  ImageViewDescriptor& operator=(const ImageViewDescriptor& descriptor) = default;
57 
66 
73 
82 
92 
98  ll::ImageAddressMode getAddressModeU() const noexcept;
99 
106 
113 
121  ImageViewDescriptor& setNormalizedCoordinates(bool normalizedCoordinates) noexcept;
122 
128  bool isNormalizedCoordinates() const noexcept;
129 
138 
144  bool isSampled() const noexcept;
145 
153  vk::SamplerCreateInfo getVkSamplerCreateInfo() const noexcept;
154 
155 private:
157 
161  std::array<ll::ImageAddressMode, 3> m_addressMode {{ll::ImageAddressMode::Repeat,
164 
165  bool m_normalizedCoordinates {false};
166  bool m_isSampled {false};
167 };
168 
169 } // namespace ll
170 
171 #endif /* LLUVIA_CORE_IMAGE_IMAGE_VIEW_DESCRIPTOR_H_ */
ImageAxis enum.
ImageFilterMode enum.
Descriptor for ll::ImageView objects.
Definition: ImageViewDescriptor.h:41
ll::ImageFilterMode getFilterMode() const noexcept
Gets the filter mode.
ll::ImageAddressMode getAddressModeU() const noexcept
Gets the address mode for the U axis.
ImageViewDescriptor(const ImageViewDescriptor &descriptor)=default
ImageViewDescriptor & operator=(ImageViewDescriptor &&descriptor)=default
ImageViewDescriptor & setIsSampled(bool isSampled) noexcept
Sets whether or not the image view will be sampled.
ll::ImageAddressMode getAddressModeV() const noexcept
Gets the address mode for the V axis.
ImageViewDescriptor & setAddressMode(ll::ImageAddressMode addressMode) noexcept
Sets the address mode to all image axes.
ImageViewDescriptor(ImageViewDescriptor &&descriptor)=default
ImageViewDescriptor & operator=(const ImageViewDescriptor &descriptor)=default
vk::SamplerCreateInfo getVkSamplerCreateInfo() const noexcept
Return the Vulkan sampler creation info filled from this object.
bool isNormalizedCoordinates() const noexcept
Determines if normalized coordinates are used for this image view.
ImageViewDescriptor(const ll::ImageAddressMode addressmode, const ll::ImageFilterMode filterMode, const bool normalizedCoordinates, const bool isSampled)
bool isSampled() const noexcept
Determines if the image view is sampled.
ImageViewDescriptor & setFilterMode(ll::ImageFilterMode filterMode) noexcept
Sets the filtering mode.
ll::ImageAddressMode getAddressModeW() const noexcept
Gets the address mode for the W axis.
ImageViewDescriptor & setNormalizedCoordinates(bool normalizedCoordinates) noexcept
Sets whether or not the image view will use normalized coordinates.
~ImageViewDescriptor()=default
Definition: Buffer.h:28
ImageFilterMode
Image filter modes.
Definition: ImageFilterMode.h:20
ImageAddressMode
Image address mode.
Definition: ImageAddressMode.h:26
ImageAxis
Image axis enumeration.
Definition: ImageAxis.h:18