Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
Public Member Functions | Private Member Functions | Private Attributes
Fling::LogicalDevice Class Reference

A logical device represents the application view of the device. More...

#include <LogicalDevice.h>

Public Member Functions

 LogicalDevice (class Instance *t_Instance, class PhysicalDevice *t_PhysDevice, const VkSurfaceKHR t_Surface)
 
 ~LogicalDevice ()
 
const VkDevice & GetVkDevice () const
 
const VkQueue & GetGraphicsQueue () const
 
const VkQueue & GetPresentQueue () const
 
const VkQueueFlags & GetSupportedQueues () const
 
const PhysicalDeviceGetPhysicalDevice () const
 
const InstanceGetInstance () const
 
UINT32 GetGraphicsFamily () const
 
UINT32 GetPresentFamily () const
 
void WaitForIdle ()
 

Private Member Functions

void CreateQueueIndecies ()
 Get what queue Indecies/families this device should use. More...
 
void CreateDevice ()
 Create the Vk resoruces for this logical device. More...
 

Private Attributes

VkDevice m_Device = VK_NULL_HANDLE
 The vulkan logical device. More...
 
const Instancem_Instance
 
const PhysicalDevicem_PhysicalDevice
 
const VkSurfaceKHR m_Surface
 
VkQueue m_GraphicsQueue = VK_NULL_HANDLE
 Handle for the graphics queue. More...
 
VkQueue m_PresentQueue = VK_NULL_HANDLE
 Handle to the presentation queue. More...
 
VkQueueFlags m_SupportedQueues {}
 Queue families. More...
 
UINT32 m_GraphicsFamily = 0
 
UINT32 m_PresentFamily = 0
 
UINT32 m_ComputeFamily = 0
 
UINT32 m_TransferFamily = 0
 

Detailed Description

A logical device represents the application view of the device.

Constructor & Destructor Documentation

◆ LogicalDevice()

Fling::LogicalDevice::LogicalDevice ( class Instance t_Instance,
class PhysicalDevice t_PhysDevice,
const VkSurfaceKHR  t_Surface 
)
explicit

◆ ~LogicalDevice()

Fling::LogicalDevice::~LogicalDevice ( )

Member Function Documentation

◆ CreateDevice()

void Fling::LogicalDevice::CreateDevice ( )
private

Create the Vk resoruces for this logical device.

◆ CreateQueueIndecies()

void Fling::LogicalDevice::CreateQueueIndecies ( )
private

Get what queue Indecies/families this device should use.

◆ GetGraphicsFamily()

UINT32 Fling::LogicalDevice::GetGraphicsFamily ( ) const
inline

◆ GetGraphicsQueue()

const VkQueue& Fling::LogicalDevice::GetGraphicsQueue ( ) const
inline

◆ GetInstance()

const Instance* Fling::LogicalDevice::GetInstance ( ) const
inline

◆ GetPhysicalDevice()

const PhysicalDevice* Fling::LogicalDevice::GetPhysicalDevice ( ) const
inline

◆ GetPresentFamily()

UINT32 Fling::LogicalDevice::GetPresentFamily ( ) const
inline

◆ GetPresentQueue()

const VkQueue& Fling::LogicalDevice::GetPresentQueue ( ) const
inline

◆ GetSupportedQueues()

const VkQueueFlags& Fling::LogicalDevice::GetSupportedQueues ( ) const
inline

◆ GetVkDevice()

const VkDevice& Fling::LogicalDevice::GetVkDevice ( ) const
inline

◆ WaitForIdle()

void Fling::LogicalDevice::WaitForIdle ( )

Field Documentation

◆ m_ComputeFamily

UINT32 Fling::LogicalDevice::m_ComputeFamily = 0
private

◆ m_Device

VkDevice Fling::LogicalDevice::m_Device = VK_NULL_HANDLE
private

The vulkan logical device.

◆ m_GraphicsFamily

UINT32 Fling::LogicalDevice::m_GraphicsFamily = 0
private

◆ m_GraphicsQueue

VkQueue Fling::LogicalDevice::m_GraphicsQueue = VK_NULL_HANDLE
private

Handle for the graphics queue.

◆ m_Instance

const Instance* Fling::LogicalDevice::m_Instance
private

◆ m_PhysicalDevice

const PhysicalDevice* Fling::LogicalDevice::m_PhysicalDevice
private

◆ m_PresentFamily

UINT32 Fling::LogicalDevice::m_PresentFamily = 0
private

◆ m_PresentQueue

VkQueue Fling::LogicalDevice::m_PresentQueue = VK_NULL_HANDLE
private

Handle to the presentation queue.

◆ m_SupportedQueues

VkQueueFlags Fling::LogicalDevice::m_SupportedQueues {}
private

Queue families.

◆ m_Surface

const VkSurfaceKHR Fling::LogicalDevice::m_Surface
private

◆ m_TransferFamily

UINT32 Fling::LogicalDevice::m_TransferFamily = 0
private

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