Lugdunum  0.1.0
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
lug::Graphics::Vulkan::API::Device Class Reference

#include <Device.hpp>

Collaboration diagram for lug::Graphics::Vulkan::API::Device:
[legend]

Public Member Functions

 Device ()=default
 
 Device (const Device &)=delete
 
 Device (Device &&device)
 
Deviceoperator= (const Device &)=delete
 
Deviceoperator= (Device &&device)
 
 ~Device ()
 
 operator VkDevice () const
 
template<typename Function >
Function getProcAddr (const char *name) const
 
const PhysicalDeviceInfogetPhysicalDeviceInfo () const
 
const std::vector< QueueFamily > & getQueueFamilies () const
 
std::vector< QueueFamily > & getQueueFamilies ()
 
const API::QueueFamilygetQueueFamily (VkQueueFlags flags, bool supportPresentation=false) const
 
API::QueueFamilygetQueueFamily (VkQueueFlags flags, bool supportPresentation=false)
 
const API::QueuegetQueue (const std::string &queueName) const
 
bool waitIdle () const
 
void destroy ()
 
template<typename Function >
Function getProcAddr (const char *name) const
 

Private Member Functions

 Device (VkDevice device, const PhysicalDeviceInfo *physicalDeviceInfo)
 

Private Attributes

VkDevice _device {VK_NULL_HANDLE}
 
const PhysicalDeviceInfo_physicalDeviceInfo {nullptr}
 
std::vector< QueueFamily_queueFamilies
 

Friends

class Builder::Device
 

Detailed Description

Definition at line 16 of file Device.hpp.

Constructor & Destructor Documentation

◆ Device() [1/4]

lug::Graphics::Vulkan::API::Device::Device ( )
default

◆ Device() [2/4]

lug::Graphics::Vulkan::API::Device::Device ( const Device )
delete

◆ Device() [3/4]

lug::Graphics::Vulkan::API::Device::Device ( Device &&  device)

Definition at line 12 of file Device.cpp.

◆ ~Device()

lug::Graphics::Vulkan::API::Device::~Device ( )

Definition at line 30 of file Device.cpp.

◆ Device() [4/4]

lug::Graphics::Vulkan::API::Device::Device ( VkDevice  device,
const PhysicalDeviceInfo physicalDeviceInfo 
)
explicitprivate

Definition at line 10 of file Device.cpp.

Member Function Documentation

◆ operator=() [1/2]

Device& lug::Graphics::Vulkan::API::Device::operator= ( const Device )
delete

◆ operator=() [2/2]

Device & lug::Graphics::Vulkan::API::Device::operator= ( Device &&  device)

Definition at line 19 of file Device.cpp.

◆ operator VkDevice()

lug::Graphics::Vulkan::API::Device::operator VkDevice ( ) const
inlineexplicit

Definition at line 30 of file Device.hpp.

◆ getProcAddr() [1/2]

template<typename Function >
Function lug::Graphics::Vulkan::API::Device::getProcAddr ( const char *  name) const

◆ getPhysicalDeviceInfo()

const PhysicalDeviceInfo * Device::getPhysicalDeviceInfo ( ) const
inline

Definition at line 6 of file Device.inl.

◆ getQueueFamilies() [1/2]

const std::vector< QueueFamily > & Device::getQueueFamilies ( ) const
inline

Definition at line 10 of file Device.inl.

◆ getQueueFamilies() [2/2]

std::vector< QueueFamily > & Device::getQueueFamilies ( )
inline

Definition at line 14 of file Device.inl.

◆ getQueueFamily() [1/2]

const API::QueueFamily * lug::Graphics::Vulkan::API::Device::getQueueFamily ( VkQueueFlags  flags,
bool  supportPresentation = false 
) const

Definition at line 34 of file Device.cpp.

◆ getQueueFamily() [2/2]

API::QueueFamily * lug::Graphics::Vulkan::API::Device::getQueueFamily ( VkQueueFlags  flags,
bool  supportPresentation = false 
)

Definition at line 52 of file Device.cpp.

◆ getQueue()

const API::Queue * lug::Graphics::Vulkan::API::Device::getQueue ( const std::string &  queueName) const

Definition at line 70 of file Device.cpp.

◆ waitIdle()

bool lug::Graphics::Vulkan::API::Device::waitIdle ( ) const

Definition at line 82 of file Device.cpp.

◆ destroy()

void lug::Graphics::Vulkan::API::Device::destroy ( )

Definition at line 93 of file Device.cpp.

◆ getProcAddr() [2/2]

template<typename Function >
Function lug::Graphics::Vulkan::API::Device::getProcAddr ( const char *  name) const
inline

Definition at line 2 of file Device.inl.

Friends And Related Function Documentation

◆ Builder::Device

friend class Builder::Device
friend

Definition at line 17 of file Device.hpp.

Member Data Documentation

◆ _device

VkDevice lug::Graphics::Vulkan::API::Device::_device {VK_NULL_HANDLE}
private

Definition at line 55 of file Device.hpp.

◆ _physicalDeviceInfo

const PhysicalDeviceInfo* lug::Graphics::Vulkan::API::Device::_physicalDeviceInfo {nullptr}
private

Definition at line 57 of file Device.hpp.

◆ _queueFamilies

std::vector<QueueFamily> lug::Graphics::Vulkan::API::Device::_queueFamilies
private

Definition at line 58 of file Device.hpp.


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