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;
48 void Update(
const void* srcData);
50 void Transition(VkImageLayout layout, VkCommandBuffer commandBuffer = VK_NULL_HANDLE);
52 void Clear(glm::vec4 color);
54 uint64_t GetId()
const;
58 friend class DestroyQueue;
62 VkImage mImage = VK_NULL_HANDLE;
63 VkImageView mImageView = VK_NULL_HANDLE;
64 VkSampler mSampler = VK_NULL_HANDLE;
65 VramAllocation mMemory;
69 VkFormat mFormat = VK_FORMAT_UNDEFINED;
70 VkImageUsageFlags mUsage = {};
71 uint32_t mMipLevels = 0;
74 VkFilter mMagFilter = VK_FILTER_LINEAR;
75 VkFilter mMinFilter = VK_FILTER_LINEAR;
76 VkSamplerAddressMode mAddressMode = VK_SAMPLER_ADDRESS_MODE_REPEAT;
77 VkBorderColor mBorderColor = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK;
78 float mMaxAnisotropy = 1.0;
79 bool mAnisotropyEnable =
false;
81 VkImageLayout mLayout = VK_IMAGE_LAYOUT_PREINITIALIZED;
83 bool mExternal =
false;
bool Update()
Definition Engine.cpp:710