vOOlkan
An object oriented approach to Vulkan
LogicalDevice.h
Go to the documentation of this file.
1#ifndef VULKAN_LOGICALDEVICE
2#define VULKAN_LOGICALDEVICE
3
4#include <vulkan/vulkan.h>
5#include <vector>
6#include <map>
7
8
9
10namespace Vulkan { class LogicalDevice; class PhysicalDevice; enum class QueueFamily; class Queue; }
11
16 public:
17 LogicalDevice(const PhysicalDevice& physicalGpu);
18
20
21 LogicalDevice(const LogicalDevice&) = delete;
25
26
32 const VkDevice& operator+() const;
33
34
41 const Queue& operator[](QueueFamily queueFamily) const;
42
43
44 private:
45 VkDevice virtualGpu;
46 std::map<QueueFamily, Queue> queues; //the queues we created
47
48};
49
50
51#endif
A logical device is an abstraction of the physical GPU which we can mainly use to send commands.
Definition: LogicalDevice.h:15
const VkDevice & operator+() const
Returns a const reference to the underlying Vulkan VkDevice object.
Definition: LogicalDevice.cpp:69
const Queue & operator[](QueueFamily queueFamily) const
Returns the queue of the specified queue family.
Definition: LogicalDevice.cpp:75
LogicalDevice & operator=(LogicalDevice &&)=delete
~LogicalDevice()
Definition: LogicalDevice.cpp:62
LogicalDevice & operator=(const LogicalDevice &)=delete
LogicalDevice(const LogicalDevice &)=delete
LogicalDevice(const PhysicalDevice &physicalGpu)
Definition: LogicalDevice.cpp:11
LogicalDevice(LogicalDevice &&)=delete
Represents the GPU (or any other device) that will be used with Vulkan to perform computer graphics.
Definition: PhysicalDevice.h:17
A Queue is an abstraction over the VkQueue Vulkan object. A Queue is where commands from the CPU to t...
Definition: Queue.h:13
Types of queue families.
Definition: Animations.h:17
QueueFamily
Definition: QueueFamily.h:8