| 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 PhysicalDevice * | GetPhysicalDevice () const
const Instance * | GetInstance () 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 Instance * | m_Instance
const PhysicalDevice * | m_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:

- FlingEngine/Graphics/inc/LogicalDevice.h
- FlingEngine/Graphics/src/LogicalDevice.cpp