Divide Framework 0.1
A free and open-source 3D Framework under heavy development
Loading...
Searching...
No Matches
Divide::VKDevice Class Referencefinal

#include <vkDevice.h>

+ Inheritance diagram for Divide::VKDevice:

Public Member Functions

 VKDevice (vkb::Instance &instance, VkSurfaceKHR targetSurface)
 
 ~VKDevice ()
 
VkDevice getVKDevice () const noexcept
 
VkPhysicalDevice getVKPhysicalDevice () const noexcept
 
const vkb::Device & getDevice () const noexcept
 
const vkb::PhysicalDevice & getPhysicalDevice () const noexcept
 
VkCommandPool createCommandPool (uint32_t queueFamilyIndex, VkCommandPoolCreateFlags createFlags=VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT) const
 
void submitToQueue (QueueType queue, const VkSubmitInfo &submitInfo, VkFence &fence) const
 
VkResult queuePresent (QueueType queue, const VkPresentInfoKHR &presentInfo) const
 
U32 getPresentQueueIndex () const noexcept
 
VKQueue getQueue (QueueType type) const noexcept
 
 PROPERTY_R_IW (bool, supportsDynamicExtension3, false)
 
 PROPERTY_R_IW (bool, supportsPushDescriptors, false)
 
 PROPERTY_R_IW (bool, supportsDescriptorBuffers, false)
 

Private Member Functions

VKQueue getQueueInternal (QueueType type, bool dedicated) const noexcept
 
- Private Member Functions inherited from Divide::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (NonCopyable &&)=default
 
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 
- Private Member Functions inherited from Divide::NonMovable
 NonMovable (NonMovable &&)=delete
 
NonMovableoperator= (NonMovable &&)=delete
 
 NonMovable (const NonMovable &)=default
 
NonMovableoperator= (const NonMovable &)=default
 
 NonMovable ()=default
 
 ~NonMovable ()=default
 

Private Attributes

vkb::Device _device {}
 
vkb::PhysicalDevice _physicalDevice {}
 
U32 _presentQueueIndex { INVALID_VK_QUEUE_INDEX }
 
std::array< VKQueue, to_base(QueueType::COUNT) > _queues
 
std::array< Mutex, to_base(QueueType::COUNT)> _queueLocks
 

Detailed Description

Definition at line 40 of file vkDevice.h.

Constructor & Destructor Documentation

◆ VKDevice()

Divide::VKDevice::VKDevice ( vkb::Instance &  instance,
VkSurfaceKHR  targetSurface 
)

Definition at line 9 of file vkDevice.cpp.

◆ ~VKDevice()

Divide::VKDevice::~VKDevice ( )

Definition at line 131 of file vkDevice.cpp.

Member Function Documentation

◆ createCommandPool()

VkCommandPool Divide::VKDevice::createCommandPool ( uint32_t  queueFamilyIndex,
VkCommandPoolCreateFlags  createFlags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT 
) const

Definition at line 223 of file vkDevice.cpp.

◆ getDevice()

const vkb::Device & Divide::VKDevice::getDevice ( ) const
noexcept

Definition at line 213 of file vkDevice.cpp.

◆ getPhysicalDevice()

const vkb::PhysicalDevice & Divide::VKDevice::getPhysicalDevice ( ) const
noexcept

Definition at line 218 of file vkDevice.cpp.

◆ getPresentQueueIndex()

U32 Divide::VKDevice::getPresentQueueIndex ( ) const
noexcept

Definition at line 147 of file vkDevice.cpp.

◆ getQueue()

VKQueue Divide::VKDevice::getQueue ( QueueType  type) const
noexcept

Definition at line 152 of file vkDevice.cpp.

◆ getQueueInternal()

VKQueue Divide::VKDevice::getQueueInternal ( QueueType  type,
bool  dedicated 
) const
privatenoexcept

Definition at line 157 of file vkDevice.cpp.

◆ getVKDevice()

VkDevice Divide::VKDevice::getVKDevice ( ) const
noexcept

Definition at line 203 of file vkDevice.cpp.

◆ getVKPhysicalDevice()

VkPhysicalDevice Divide::VKDevice::getVKPhysicalDevice ( ) const
noexcept

Definition at line 208 of file vkDevice.cpp.

◆ PROPERTY_R_IW() [1/3]

Divide::VKDevice::PROPERTY_R_IW ( bool  ,
supportsDescriptorBuffers  ,
false   
)

◆ PROPERTY_R_IW() [2/3]

Divide::VKDevice::PROPERTY_R_IW ( bool  ,
supportsDynamicExtension3  ,
false   
)

◆ PROPERTY_R_IW() [3/3]

Divide::VKDevice::PROPERTY_R_IW ( bool  ,
supportsPushDescriptors  ,
false   
)

◆ queuePresent()

VkResult Divide::VKDevice::queuePresent ( QueueType  queue,
const VkPresentInfoKHR &  presentInfo 
) const

Definition at line 245 of file vkDevice.cpp.

◆ submitToQueue()

void Divide::VKDevice::submitToQueue ( QueueType  queue,
const VkSubmitInfo &  submitInfo,
VkFence &  fence 
) const

Definition at line 235 of file vkDevice.cpp.

Member Data Documentation

◆ _device

vkb::Device Divide::VKDevice::_device {}
private

Definition at line 67 of file vkDevice.h.

◆ _physicalDevice

vkb::PhysicalDevice Divide::VKDevice::_physicalDevice {}
private

Definition at line 68 of file vkDevice.h.

◆ _presentQueueIndex

U32 Divide::VKDevice::_presentQueueIndex { INVALID_VK_QUEUE_INDEX }
private

Definition at line 69 of file vkDevice.h.

◆ _queueLocks

std::array<Mutex, to_base( QueueType::COUNT )> Divide::VKDevice::_queueLocks
mutableprivate

Definition at line 72 of file vkDevice.h.

◆ _queues

std::array<VKQueue, to_base( QueueType::COUNT ) > Divide::VKDevice::_queues
private

Definition at line 71 of file vkDevice.h.


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