PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
Image2DArray.hpp
1#pragma once
2
3#include "PixelBullet/Assets/Bitmap.hpp"
4#include "PixelBullet/Graphics/Images/Image.hpp"
5
6#include <glm/vec2.hpp>
7
8namespace PixelBullet
9{
10 class Image2DArray : public Image
11 {
12 public:
13 explicit Image2DArray(const glm::uvec2& extent, uint32_t arrayLayers,
14 VkFormat format = VK_FORMAT_R8G8B8A8_UNORM,
15 VkImageLayout layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
16 VkImageUsageFlags usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
17 VK_IMAGE_USAGE_STORAGE_BIT,
18 VkFilter filter = VK_FILTER_LINEAR,
19 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
20 bool anisotropic = false, bool mipmap = false);
21
22 explicit Image2DArray(std::unique_ptr<Bitmap>&& bitmap, uint32_t arrayLayers,
23 VkFormat format = VK_FORMAT_R8G8B8A8_UNORM,
24 VkImageLayout layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
25 VkImageUsageFlags usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT |
26 VK_IMAGE_USAGE_STORAGE_BIT,
27 VkFilter filter = VK_FILTER_LINEAR,
28 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
29 bool anisotropic = false, bool mipmap = false);
30
31 void SetPixels(const Bitmap& bitmap, uint32_t arrayLayer);
32
33 bool IsAnisotropic() const noexcept
34 {
35 return m_Anisotropic;
36 }
37 bool IsMipmap() const noexcept
38 {
39 return m_Mipmap;
40 }
41
42 private:
43 bool m_Anisotropic;
44 bool m_Mipmap;
45 };
46} // namespace PixelBullet
A simple Bitmap class that loads and writes images using stb.
Definition Bitmap.hpp:16
Definition Image2DArray.hpp:11
A representation of a Vulkan image, sampler, and view.
Definition Image.hpp:18