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
 
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 class Instancem_Instance
 
const class 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

◆ 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 class Instance* Fling::LogicalDevice::m_Instance
private

◆ m_PhysicalDevice

const class 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: