24 VulkanApplication(
Allocator* allocator,
bool headless =
false,
const char* appName =
"Vulkan RHI",
const char* engineName =
"Foundation", uint32_t apiVersion = VK_API_VERSION_1_3);
Allocator interface (noexcept)
Definition Allocator.hpp:29
The root object of everything RHI. Implementation of this class inherently defines the RHI backend.
Definition Application.hpp:24
Definition Device.hpp:246
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:147
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:85
Definition Application.hpp:8
virtual bool RemoveFile(StringView path) const override
Definition Application.cpp:249
Vector< RHIDevice::DeviceDesc > mDevices
Definition Application.hpp:14
RHIObjectPool mStorage
Definition Application.hpp:17
Allocator * GetAllocator() const
Definition Application.hpp:40
const vk::raii::Context mContext
Definition Application.hpp:21
VulkanAllocationCallbacks mVkAllocationCallbacks
Definition Application.hpp:10
virtual bool RemoveDirectory(StringView path) const override
Definition Application.cpp:248
vk::raii::DebugUtilsMessengerEXT mDebugHandler
Definition Application.hpp:15
virtual bool CreateDirectory(StringView path) const override
Definition Application.cpp:247
virtual Optional< RHIFileInfo > QueryFileInfo(StringView path) const override
Definition Application.cpp:218
vk::AllocationCallbacks const * GetVkAllocationCallbacks() const
Definition Application.hpp:42
RHIApplicationScopedHandle< RHIDevice > CreateDevice(RHIDevice::DeviceDesc const &desc) override
Definition Application.cpp:172
Vector< vk::raii::PhysicalDevice > mPhysicalDevices
Definition Application.hpp:12
bool mHeadless
Definition Application.hpp:45
virtual String ResolveRelativePathData(StringView path="") const override
Retrives path that's writable and persistent.
Definition Application.cpp:208
RHIDevice * GetDevice(Handle handle) const override
Definition Application.cpp:180
~VulkanApplication() override
Definition Application.cpp:160
Allocator * mAllocator
Definition Application.hpp:9
VkAllocationCallbacks const * GetVkAllocationCallbacksNative() const
Definition Application.hpp:43
const uint32_t mVulkanApiVersion
Definition Application.hpp:22
virtual String ResolveRelativePathBase(StringView path="") const override
Retrives path relative to the application executable.
Definition Application.cpp:198
Span< const RHIDevice::DeviceDesc > EnumerateDevices() const override
Definition Application.cpp:167
vk::raii::Instance mInstance
Definition Application.hpp:11
const String mName
Definition Application.hpp:19
void DestroyDevice(Handle handle) override
Definition Application.cpp:181
virtual bool IterateDirectory(StringView path, RHIDirectoryIteratorCallback cb, void *userData) const override
Iterate over the files in a directory, calling the provided callback for each file.
Definition Application.cpp:243
auto const & GetVkInstance() const
Definition Application.hpp:41
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:149
std::basic_string< char, std::char_traits< char >, StlDefaultAllocator< char > > String
Alias for std::basic_string<char>, without an explicit allocator constructor.
Definition Container.hpp:120
std::basic_string_view< char > StringView
Alias for std::basic_string_view<char>
Definition Container.hpp:56
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:3
bool(*)(void *userData, StringView directory, StringView file) RHIDirectoryIteratorCallback
Directory iterator callback.
Definition Application.hpp:19
uintptr_t Handle
Definition Details.hpp:9
std::optional with convenience Get()/GetIf() methods.
Definition Container.hpp:256
Definition Device.hpp:249
vk::AllocationCallbacks const * Get() const
Definition Common.hpp:66
VkAllocationCallbacks const * GetNative() const
Definition Common.hpp:71