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::DeviceDesc > EnumerateDevices () const override
 
RHIApplicationScopedHandle< RHIDevice > CreateDevice (RHIDevice::DeviceDesc const &desc) override
 
RHIDevice * GetDevice (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< RHIFileInfo > QueryFileInfo (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
 
Allocator * GetAllocator () 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
 
RHIObject & operator= (const RHIObject &)=delete
 
 RHIObject (RHIObject &&)=delete
 
RHIObject & operator= (RHIObject &&)=delete
 
virtual ~RHIObject ()=default
 

Public Attributes

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

Private Attributes

Allocator * mAllocator
 
VulkanAllocationCallbacks mVkAllocationCallbacks
 
vk::raii::Instance mInstance { nullptr }
 
Vector< vk::raii::PhysicalDevice > mPhysicalDevices
 
Vector< RHIDevice::DeviceDesc > mDevices
 
vk::raii::DebugUtilsMessengerEXT mDebugHandler { nullptr }
 
RHIObjectPool mStorage
 
bool mHeadless {false}
 
String mBasePath
 

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

◆ mBasePath

String Foundation::RHI::VulkanApplication::mBasePath
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: