3#include <vk_mem_alloc.h>
40 void Flush(
size_t offset,
size_t size)
override;
41 void Unmap()
override;
50 class VulkanTextureView;
72 void Flush(
size_t offset,
size_t size)
override;
73 void Unmap()
override;
90 vk::raii::ImageView
mView{
nullptr };
Definition Resource.hpp:30
Definition Resource.hpp:169
Definition Resource.hpp:146
Definition Resource.hpp:19
vk::raii::Buffer mBuffer
Definition Resource.hpp:25
void Unmap() override
Releases or unmaps a previously mapped resource. Implementations MUST guarantee that Unmap() is calle...
Definition Resource.cpp:91
VmaAllocation mAllocation
Definition Resource.hpp:22
RHIBufferScopedHandle< RHIBuffer > CreateAliasedBuffer(RHIBufferDesc const &desc, size_t offset) override
Definition Resource.cpp:194
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:212
~VulkanBuffer() override
Definition Resource.cpp:66
VulkanDevice const & mDevice
Definition Resource.hpp:21
void * Map() override
Maps the entire buffer to the host memory. Alignment is implementation-defined. Implementations MUST ...
Definition Resource.cpp:79
RHIObjectPool< VulkanBuffer > mAliases
Definition Resource.hpp:27
RHIBuffer * GetAliasedBuffer(Handle handle) const override
Definition Resource.cpp:205
void * mMapped
Definition Resource.hpp:23
auto & GetVkBuffer()
Definition Resource.hpp:37
void Flush(size_t offset, size_t size) override
Flushes the mapped region to the device. Depending on the implementation, this may be a no-op.
Definition Resource.cpp:84
const bool mShared
Definition Resource.hpp:30
void DestroyAliasedBuffer(Handle handle) override
Definition Resource.cpp:208
Definition Resource.hpp:88
vk::raii::ImageView mView
Definition Resource.hpp:90
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:248
RHITexture * GetTexture() const override
Definition Resource.hpp:95
auto const & GetImage() const
Definition Resource.hpp:98
VulkanTexture & mImage
Definition Resource.hpp:91
auto const & GetVkImageView() const
Definition Resource.hpp:97
Definition Resource.hpp:51
void * mMapped
Definition Resource.hpp:57
RHITextureView * GetImageView(Handle handle) const override
Definition Resource.cpp:183
RHIObjectPool< VulkanTextureView > mViews
Definition Resource.hpp:60
RHITextureScopedHandle< RHITextureView > CreateTextureView(RHITextureViewDesc const &desc) override
Definition Resource.cpp:152
RHIObjectPool< VulkanTexture > mAliases
Definition Resource.hpp:59
VmaAllocation mAllocation
Definition Resource.hpp:54
void Flush(size_t offset, size_t size) override
Definition Resource.cpp:141
auto & GetVkImage() const
Definition Resource.hpp:69
vk::raii::Image mImage
Definition Resource.hpp:56
void * Map() override
Definition Resource.cpp:136
void DestroyAliasedTexture(Handle handle) override
Definition Resource.cpp:235
void Unmap() override
Definition Resource.cpp:148
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:239
RHITexture * GetAliasedTexture(Handle handle) const override
Definition Resource.cpp:232
RHITextureScopedHandle< RHITexture > CreateAliasedTexture(RHITextureDesc const &desc, size_t offset) override
Definition Resource.cpp:221
~VulkanTexture() override
Definition Resource.cpp:126
void DestroyImageView(Handle handle) override
Definition Resource.cpp:186
VulkanDevice const & mDevice
Definition Resource.hpp:53
const bool mShared
Definition Resource.hpp:63
auto const & GetDevice() const
Definition Resource.hpp:85
std::unique_ptr< T, StlDeleter< T > > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:161
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:5
VmaAllocationCreateFlags vmaAllocationFlagsFromRHIResourceHostAccess(RHIResourceHostAccess access)
Definition Resource.hpp:7
uint64_t Handle
Definition Details.hpp:9
RHIResourceHostAccess
Definition Common.hpp:110
Definition Resource.hpp:21
Definition Resource.hpp:79
Definition Resource.hpp:141