Foundation
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | List of all members
Foundation::RHI::VulkanApplication Class Reference

#include <Application.hpp>

Inheritance diagram for Foundation::RHI::VulkanApplication:
Foundation::RHI::RHIApplication Foundation::RHI::RHIObject

Public Member Functions

 VulkanApplication (Allocator *allocator, bool headless=false, const char *appName="Vulkan RHI", const char *engineName="Foundation", uint32_t apiVersion=VK_API_VERSION_1_3)
 
 ~VulkanApplication () override
 
Span< const RHIDevice::DeviceDescEnumerateDevices () const override
 
RHIApplicationScopedHandle< RHIDeviceCreateDevice (RHIDevice::DeviceDesc const &desc) override
 
RHIDeviceGetDevice (Handle handle) const override
 
void DestroyDevice (Handle handle) override
 
virtual String ResolveRelativePathBase (StringView path="") const override
 Retrives path relative to the application executable.
 
virtual String ResolveRelativePathData (StringView path="") const override
 Retrives path that's writable and persistent.
 
virtual Optional< RHIFileInfoQueryFileInfo (StringView path) const override
 
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.
 
virtual bool CreateDirectory (StringView path) const override
 
virtual bool RemoveDirectory (StringView path) const override
 
virtual bool RemoveFile (StringView path) const override
 
AllocatorGetAllocator () const
 
auto const & GetVkInstance () const
 
vk::AllocationCallbacks const * GetVkAllocationCallbacks () const
 
VkAllocationCallbacks const * GetVkAllocationCallbacksNative () const
 
- Public Member Functions inherited from Foundation::RHI::RHIApplication
 RHIApplication ()=default
 
 RHIApplication (RHIApplication const &)=delete
 
template<typename T >
bool IterateDirectory (StringView path, T &&cb) const
 Iterate over the files in a directory, calling the provided callback for each file.
 
- Public Member Functions inherited from Foundation::RHI::RHIObject
 RHIObject ()=default
 
 RHIObject (RHIObject const &)=delete
 
RHIObjectoperator= (const RHIObject &)=delete
 
 RHIObject (RHIObject &&)=delete
 
RHIObjectoperator= (RHIObject &&)=delete
 
virtual ~RHIObject ()=default
 

Public Attributes

const String mName
 
const vk::raii::Context mContext
 
const uint32_t mVulkanApiVersion
 

Private Attributes

AllocatormAllocator
 
VulkanAllocationCallbacks mVkAllocationCallbacks
 
vk::raii::Instance mInstance { nullptr }
 
Vector< vk::raii::PhysicalDevice > mPhysicalDevices
 
Vector< RHIDevice::DeviceDescmDevices
 
vk::raii::DebugUtilsMessengerEXT mDebugHandler { nullptr }
 
RHIObjectPool mStorage
 
bool mHeadless {false}
 

Constructor & Destructor Documentation

◆ VulkanApplication()

VulkanApplication::VulkanApplication ( Allocator allocator,
bool  headless = false,
const char *  appName = "Vulkan RHI",
const char *  engineName = "Foundation",
uint32_t  apiVersion = VK_API_VERSION_1_3 
)

◆ ~VulkanApplication()

VulkanApplication::~VulkanApplication ( )
override

Member Function Documentation

◆ CreateDevice()

RHIApplicationScopedHandle< RHIDevice > VulkanApplication::CreateDevice ( RHIDevice::DeviceDesc const &  desc)
overridevirtual

◆ CreateDirectory()

bool VulkanApplication::CreateDirectory ( StringView  path) const
overridevirtual

◆ DestroyDevice()

void VulkanApplication::DestroyDevice ( Handle  handle)
overridevirtual

◆ EnumerateDevices()

Span< const RHIDevice::DeviceDesc > VulkanApplication::EnumerateDevices ( ) const
overridevirtual

◆ GetAllocator()

Allocator * Foundation::RHI::VulkanApplication::GetAllocator ( ) const
inline

◆ GetDevice()

RHIDevice * VulkanApplication::GetDevice ( Handle  handle) const
overridevirtual

◆ GetVkAllocationCallbacks()

vk::AllocationCallbacks const * Foundation::RHI::VulkanApplication::GetVkAllocationCallbacks ( ) const
inline

◆ GetVkAllocationCallbacksNative()

VkAllocationCallbacks const * Foundation::RHI::VulkanApplication::GetVkAllocationCallbacksNative ( ) const
inline

◆ GetVkInstance()

auto const & Foundation::RHI::VulkanApplication::GetVkInstance ( ) const
inline

◆ IterateDirectory()

bool VulkanApplication::IterateDirectory ( StringView  path,
RHIDirectoryIteratorCallback  cb,
void *  userData 
) const
overridevirtual

Iterate over the files in a directory, calling the provided callback for each file.

Parameters
cbCallback invoked per entry; returns true to continue iterating, false to stop.
Returns
false if the directory could not be enumerated.

Implements Foundation::RHI::RHIApplication.

◆ QueryFileInfo()

Optional< RHIFileInfo > VulkanApplication::QueryFileInfo ( StringView  path) const
overridevirtual

◆ RemoveDirectory()

bool VulkanApplication::RemoveDirectory ( StringView  path) const
overridevirtual

◆ RemoveFile()

bool VulkanApplication::RemoveFile ( StringView  path) const
overridevirtual

◆ ResolveRelativePathBase()

String VulkanApplication::ResolveRelativePathBase ( StringView  path = "") const
overridevirtual

Retrives path relative to the application executable.

Implements Foundation::RHI::RHIApplication.

◆ ResolveRelativePathData()

String VulkanApplication::ResolveRelativePathData ( StringView  path = "") const
overridevirtual

Retrives path that's writable and persistent.

Implements Foundation::RHI::RHIApplication.

Member Data Documentation

◆ mAllocator

Allocator* Foundation::RHI::VulkanApplication::mAllocator
private

◆ mContext

const vk::raii::Context Foundation::RHI::VulkanApplication::mContext

◆ mDebugHandler

vk::raii::DebugUtilsMessengerEXT Foundation::RHI::VulkanApplication::mDebugHandler { nullptr }
private

◆ mDevices

Vector<RHIDevice::DeviceDesc> Foundation::RHI::VulkanApplication::mDevices
private

◆ mHeadless

bool Foundation::RHI::VulkanApplication::mHeadless {false}
private

◆ mInstance

vk::raii::Instance Foundation::RHI::VulkanApplication::mInstance { nullptr }
private

◆ mName

const String Foundation::RHI::VulkanApplication::mName

◆ mPhysicalDevices

Vector<vk::raii::PhysicalDevice> Foundation::RHI::VulkanApplication::mPhysicalDevices
private

◆ mStorage

RHIObjectPool Foundation::RHI::VulkanApplication::mStorage
private

◆ mVkAllocationCallbacks

VulkanAllocationCallbacks Foundation::RHI::VulkanApplication::mVkAllocationCallbacks
private

◆ mVulkanApiVersion

const uint32_t Foundation::RHI::VulkanApplication::mVulkanApiVersion

The documentation for this class was generated from the following files: