General Purpose Allocator (GPA) interface.
Definition Allocator.hpp:24
The root object of everything RHI. Implementation of this class inherently defines the RHI backend.
Definition Application.hpp:11
Definition Device.hpp:188
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:149
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:86
Definition Application.hpp:16
vk::raii::PhysicalDevices mPhysicalDevices
Definition Application.hpp:18
Vector< RHIDevice::DeviceDesc > mDevices
Definition Application.hpp:22
RHIObjectPool mStorage
Definition Application.hpp:25
Allocator * GetAllocator() const
Definition Application.hpp:43
const vk::raii::Context mContext
Definition Application.hpp:29
vk::AllocationCallbacks mVkAllocatorCpuCallbacks
Definition Application.hpp:17
vk::raii::DebugUtilsMessengerEXT mDebugHandler
Definition Application.hpp:23
RHIDevice * GetDevice(Handle handle) const override
Definition Application.cpp:91
Allocator * mAllocator
Definition Application.hpp:20
vk::AllocationCallbacks const & GetVkAllocatorCallbacks() const
Definition Application.hpp:44
const uint32_t mVulkanApiVersion
Definition Application.hpp:30
Span< const RHIDevice::DeviceDesc > EnumerateDevices() const override
Definition Application.cpp:79
vk::raii::Instance mInstance
Definition Application.hpp:19
const String mName
Definition Application.hpp:27
void DestroyDevice(Handle handle) override
Definition Application.cpp:92
RHIApplicationScopedHandle< RHIDevice > CreateDevice(RHIDevice::DeviceDesc const &desc)
Definition Application.hpp:36
auto const & GetVkInstance() const
Definition Application.hpp:45
RHIApplicationScopedHandle< RHIDevice > CreateDevice(RHIDevice::DeviceDesc const &desc, SDL_Window *window) override
Definition Application.cpp:84
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:130
std::basic_string< char > String
Alias for std::basic_string<char>, without an explicit allocator constructor.
Definition Container.hpp:112
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:149
std::span< T > Span
Alias for std::span
Definition Container.hpp:60
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
uintptr_t Handle
Definition Details.hpp:8
vk::AllocationCallbacks vkCreateVulkanCpuAllocationCallbacks(Allocator *alloc)
Definition Application.cpp:108
void * vkCustomCpuReallocation(Allocator *alloc, void *pOriginal, size_t size, size_t alignment, vk::SystemAllocationScope)
Definition Application.cpp:101
void vkCustomCpuFree(Allocator *alloc, void *pMemory)
Definition Application.cpp:106
void * vkCustomCpuAllocation(Allocator *alloc, size_t size, size_t alignment, vk::SystemAllocationScope)
Definition Application.cpp:97
Definition Device.hpp:194