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, const char *appName="Vulkan RHI", const char *engineName="Foundation", const uint32_t apiVersion=VK_API_VERSION_1_3)
 
Span< const RHIDevice::DeviceDescEnumerateDevices () const override
 
RHIApplicationScopedObjectHandle< RHIDeviceCreateDevice (RHIDevice::DeviceDesc const &desc, Native::NativeWindow *window=nullptr) override
 
RHIDeviceGetDevice (Handle handle) const override
 
void DestroyDevice (Handle handle) override
 
AllocatorGetAllocator () const
 
vk::AllocationCallbacks constGetVkAllocatorCallbacks () const
 
auto constGetVkInstance () const
 
- Public Member Functions inherited from Foundation::RHI::RHIApplication
 RHIApplication ()=default
 
 RHIApplication (RHIApplication const &)=delete
 
- 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

vk::AllocationCallbacks mVkAllocatorCpuCallbacks
 
vk::raii::PhysicalDevices mPhysicalDevices { nullptr }
 
vk::raii::Instance mInstance { nullptr }
 
AllocatormAllocator
 
Vector< RHIDevice::DeviceDescmDevices
 
vk::raii::DebugUtilsMessengerEXT mDebugHandler { nullptr }
 
RHIObjectPool mStorage
 

Constructor & Destructor Documentation

◆ VulkanApplication()

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

Member Function Documentation

◆ CreateDevice()

RHIApplicationScopedObjectHandle< RHIDevice > VulkanApplication::CreateDevice ( RHIDevice::DeviceDesc const desc,
Native::NativeWindow window = nullptr 
)
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

◆ GetVkAllocatorCallbacks()

vk::AllocationCallbacks const & Foundation::RHI::VulkanApplication::GetVkAllocatorCallbacks ( ) const
inline

◆ GetVkInstance()

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

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

◆ mInstance

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

◆ mName

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

◆ mPhysicalDevices

vk::raii::PhysicalDevices Foundation::RHI::VulkanApplication::mPhysicalDevices { nullptr }
private

◆ mStorage

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

◆ mVkAllocatorCpuCallbacks

vk::AllocationCallbacks Foundation::RHI::VulkanApplication::mVkAllocatorCpuCallbacks
private

◆ mVulkanApiVersion

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

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