25 static std::shared_ptr<Image2D>
Create(
const Node& node);
36 static std::shared_ptr<Image2D>
Create(
const VirtualPath& filename, VkFilter filter = VK_FILTER_LINEAR,
37 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_REPEAT,
38 bool anisotropic =
true,
bool mipmap =
true);
50 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_REPEAT,
bool anisotropic =
true,
51 bool mipmap =
true,
bool load =
true);
65 explicit Image2D(
const glm::uvec2& extent, VkFormat format = VK_FORMAT_R8G8B8A8_UNORM,
66 VkImageLayout layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
67 VkImageUsageFlags usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_STORAGE_BIT,
68 VkFilter filter = VK_FILTER_LINEAR,
69 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
70 VkSampleCountFlagBits samples = VK_SAMPLE_COUNT_1_BIT,
bool anisotropic =
false,
85 explicit Image2D(std::unique_ptr<Bitmap>&& bitmap, VkFormat format = VK_FORMAT_R8G8B8A8_UNORM,
86 VkImageLayout layout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
87 VkImageUsageFlags usage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_STORAGE_BIT,
88 VkFilter filter = VK_FILTER_LINEAR,
89 VkSamplerAddressMode addressMode = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,
90 VkSampleCountFlagBits samples = VK_SAMPLE_COUNT_1_BIT,
bool anisotropic =
false,
99 void SetPixels(
const uint8_t* pixels, uint32_t layerCount, uint32_t baseArrayLayer);
110 bool IsAnisotropic()
const
112 return m_Anisotropic;
114 bool IsMipmap()
const
118 uint32_t GetComponents()
const
123 friend const Node& operator>>(
const Node& node,
Image2D& image);
124 friend Node& operator<<(Node& node,
const Image2D& image);
127 void Load(std::unique_ptr<Bitmap> loadBitmap =
nullptr);
130 VirtualPath m_Filename;
134 uint32_t m_Components = 0;
Image2D(const VirtualPath &filename, VkFilter filter=VK_FILTER_LINEAR, VkSamplerAddressMode addressMode=VK_SAMPLER_ADDRESS_MODE_REPEAT, bool anisotropic=true, bool mipmap=true, bool load=true)
Definition Image2D.cpp:38