Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
PhyscialDevice.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "FlingVulkan.h"
4 
5 namespace Fling
6 {
12  {
13  public:
14 
15  explicit PhysicalDevice(class Instance* t_Instance);
16 
18  ~PhysicalDevice() noexcept = default;
19 
20  operator const VkPhysicalDevice &() const { return m_PhysicalDevice; }
21  const VkPhysicalDevice& GetVkPhysicalDevice() const { return m_PhysicalDevice; }
22 
23  const VkPhysicalDeviceProperties& GetDeviceProps() const { return m_DeviceProperties; }
24  const VkPhysicalDeviceFeatures& GetDeivceFeatures() const { return m_DeviceFeatures; }
25 
27  void LogPhysicalDeviceInfo();
28 
29  private:
30 
35  VkPhysicalDevice ChooseBestPhyscialDevice(std::vector<VkPhysicalDevice>& t_AvailableDevices);
36 
38  VkPhysicalDevice m_PhysicalDevice = VK_NULL_HANDLE;
39 
41  const class Instance* m_Instance;
42 
44  VkPhysicalDeviceProperties m_DeviceProperties{};
45  VkPhysicalDeviceFeatures m_DeviceFeatures{};
46  VkPhysicalDeviceMemoryProperties m_MemoryProperties{};
47  };
48 } // namespace Fling
VkPhysicalDeviceProperties m_DeviceProperties
Misc.
Definition: PhyscialDevice.h:44
PhysicalDevice(class Instance *t_Instance)
Definition: PhyscialDevice.cpp:11
~PhysicalDevice() noexcept=default
The physical device will get cleaned up when the Instance does automatically.
A physical device represents the Vulkan physical device (the GPU) that we are currently using...
Definition: PhyscialDevice.h:11
const VkPhysicalDeviceFeatures & GetDeivceFeatures() const
Definition: PhyscialDevice.h:24
The instance is a representation of this application graphics instance in Vulkan. ...
Definition: Instance.h:11
const class Instance * m_Instance
Owning instance of this physical device.
Definition: PhyscialDevice.h:41
void LogPhysicalDeviceInfo()
Logs info about this physical device (vendor, model, ID, etc) to the console/Log file.
Definition: PhyscialDevice.cpp:41
VkPhysicalDeviceMemoryProperties m_MemoryProperties
Definition: PhyscialDevice.h:46
VkPhysicalDevice ChooseBestPhyscialDevice(std::vector< VkPhysicalDevice > &t_AvailableDevices)
Choose the best available physical device on this machine favoring discrete GPU&#39;s and those who match...
Definition: PhyscialDevice.cpp:106
const VkPhysicalDeviceProperties & GetDeviceProps() const
Definition: PhyscialDevice.h:23
VkPhysicalDeviceFeatures m_DeviceFeatures
Definition: PhyscialDevice.h:45
const VkPhysicalDevice & GetVkPhysicalDevice() const
Definition: PhyscialDevice.h:21
Definition: Engine.h:13
VkPhysicalDevice m_PhysicalDevice
The Vulkan physical device.
Definition: PhyscialDevice.h:38