27 class VKCommandBuffer;
#define CE_EXPLICIT_FALSE
Definition Macros.hpp:416
A retain-release type of smart pointer.
Definition SmartPtr.hpp:132
GPUDevice & device
The owning device this object was created from.
Definition Common.hpp:55
Definition GPUImage.hpp:331
static UInt32 size(const GPUImageDescriptor &imageDesc) noexcept
Definition GPUImage.hpp:527
GPUImage & image
The image that this view belongs to.
Definition GPUImage.hpp:531
const Descriptor & descriptor
A structure that describes the object and it's properties.
Definition Common.hpp:69
Definition VKDevice.hpp:79
Definition VKCommon.hpp:143
Definition VKImage.hpp:32
VkImage mImage
The Vulkan image object.
Definition VKImage.hpp:41
SmallVector< VkImageLayout, 10 > mLayouts
Definition VKImage.hpp:61
void transitionImageLayout(VkCommandBuffer commandBuffer, VkImageLayout oldLayout, VkImageLayout newLayout, UInt32 mipLevel, UInt32 layer)
void setLayout(VkImageLayout newLayout, UInt32 mipLevel, UInt32 layer=0)
void generateMips(VkCommandBuffer commandBuffer)
Generates the whole mipmap chain.
VKSwapchain * mSwapchain
If the image belongs to a swapchain, points to the owning swapchain.
Definition VKImage.hpp:64
VKImageViewCache mImageViews
A cache of all active image views.
Definition VKImage.hpp:59
const GPUImageDescriptor mDescriptor
A structure that describes the and it's properties.
Definition VKImage.hpp:38
void setLayout(VkImageLayout newLayout, const GPUImageSubresource &subresource)
static Allocator & getAllocator() noexcept
Returns the allocator for VKImage.
VKImage(VKDevice &device, const GPUImageDescriptor &descriptor)
VkFormat mFormat
The Vulkan image format.
Definition VKImage.hpp:50
void transitionImageLayout(VkCommandBuffer commandBuffer, VkImageLayout newLayout, const GPUImageSubresource &subresource)
VKObjectAllocator Allocator
An allocator type used to allocate new VKImage instances from a memory pool.
Definition VKImage.hpp:73
VKMemoryAllocation mImageMemory
The allocated memory.
Definition VKImage.hpp:44
GPUImageViewPtr createView(const GPUImageViewDescriptor &descriptor) final
VkImageLayout getLayout(UInt32 mipLevel, UInt32 layer=0) const
VKImage(VKDevice &device, const GPUImageDescriptor &descriptor, VkImage existingImage, VKSwapchain *swapchain)
VkDeviceSize mSize
The image size.
Definition VKImage.hpp:47
bool mOwns
A flag indicating if the VKImage objects owns the mImage instance.
Definition VKImage.hpp:56
void transitionImageLayout(const VkCommandBuffer commandBuffer, const VkImageLayout newLayout, const GPUImageLocation &location)
Definition VKImage.hpp:97
VKSwapchain * getSwapchain() const noexcept
If the image belongs to a swapchain, points to the owning swapchain.
Definition VKImage.hpp:130
void transitionImageLayout(const VkCommandBuffer commandBuffer, const VkImageLayout newLayout)
Definition VKImage.hpp:107
UInt32 getMipLevels() const
Definition VKImage.hpp:133
const GPUImageViewDescriptor mDescriptor
A structure that describes the and it's properties.
Definition VKImage.hpp:136
VKImageView(VKImage &image, const GPUImageViewDescriptor &descriptor)
static Allocator & getAllocator() noexcept
Returns the allocator for VKImageView.
VKObjectAllocator Allocator
An allocator type used to allocate new VKImageView instances from a memory pool.
Definition VKImage.hpp:153
VkImageView mImageView
The Vulkan image view.
Definition VKImage.hpp:139
VKImagePtr mImage
The parent image.
Definition VKImage.hpp:142
void destroy() noexcept final
Definition VKMemoryAllocator.hpp:21
Definition VKSwapchain.hpp:23
Definition Application.hpp:19
sfl::small_vector< T, N, ScopedAllocatorAdaptor< StdAllocator< T, RawAllocator > > > SmallVector
SmallVector is a sequence container similar to Vector.
Definition SmallVector.hpp:31
ThreadSafeAllocator< MemoryPool< NodePool, AllocatorReference< VKAllocator > > > VKObjectAllocator
A pool allocator to be used for individual object pools.
Definition VKCommon.hpp:59
std::uint32_t UInt32
Definition DataTypes.hpp:23
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25
Definition GPUImage.hpp:247
UInt32 mipLevels
Number of MIP-map levels.
Definition GPUImage.hpp:296
UInt32 arrayLayers
Number of array layers.
Definition GPUImage.hpp:287
Image location structure: MIP-map level and offset.
Definition GPUImage.hpp:120
UInt32 arrayLayer
Zero-based array layer index.
Definition GPUImage.hpp:132
UInt32 mipLevel
MIP-map level for the sub-image, where 0 is the base image, and N > 0 is the N-th MIP-map level.
Definition GPUImage.hpp:137
Image subresource descriptor which specifies the array layer and MIP-map level range of a image resou...
Definition GPUImage.hpp:77
UInt32 baseArrayLayer
Zero-based index of the first array layer.
Definition GPUImage.hpp:84
Image view descriptor structure.
Definition GPUImage.hpp:482