8#include <vulkan/vulkan.h>
16 VkFormat mFormat = VK_FORMAT_R8G8B8A8_UNORM;
17 VkImageUsageFlags mUsage = VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_SAMPLED_BIT;
18 uint32_t mMipLevels = 1;
24 VkFilter mMagFilter = VK_FILTER_LINEAR;
25 VkFilter mMinFilter = VK_FILTER_LINEAR;
26 VkSamplerAddressMode mAddressMode = VK_SAMPLER_ADDRESS_MODE_REPEAT;
27 VkBorderColor mBorderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
28 float mMaxAnisotropy = 1.0;
29 bool mAnisotropyEnable =
false;
35 Image(ImageDesc imageDesc, SamplerDesc samplerDesc,
const char* debugObjectName);
38 Image(VkImage image, VkImageView imageView, VkSampler sampler, VkFormat format, uint32_t width, uint32_t height);
41 VkImageView GetView()
const;
42 VkSampler GetSampler()
const;
44 VkFormat GetFormat()
const;
45 uint32_t GetWidth()
const;
46 uint32_t GetHeight()
const;
57 void Update(
const void* srcData,
bool waitForCompletion =
false);
59 void Transition(VkImageLayout layout, VkCommandBuffer commandBuffer = VK_NULL_HANDLE);
61 void Clear(glm::vec4 color);
63 uint64_t GetId()
const;
67 friend class DestroyQueue;
71 VkImage mImage = VK_NULL_HANDLE;
72 VkImageView mImageView = VK_NULL_HANDLE;
73 VkSampler mSampler = VK_NULL_HANDLE;
74 VramAllocation mMemory;
78 VkFormat mFormat = VK_FORMAT_UNDEFINED;
79 VkImageUsageFlags mUsage = {};
80 uint32_t mMipLevels = 0;
83 VkFilter mMagFilter = VK_FILTER_LINEAR;
84 VkFilter mMinFilter = VK_FILTER_LINEAR;
85 VkSamplerAddressMode mAddressMode = VK_SAMPLER_ADDRESS_MODE_REPEAT;
86 VkBorderColor mBorderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
87 float mMaxAnisotropy = 1.0;
88 bool mAnisotropyEnable =
false;
101 VkImageLayout mLayout = VK_IMAGE_LAYOUT_UNDEFINED;
103 bool mExternal =
false;
bool Update()
Definition Engine.cpp:995