-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDevice.hpp
37 lines (31 loc) · 1.11 KB
/
Device.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#pragma once
#include "DeviceQueue.hpp"
#include "Log.hpp"
#include "Surface.hpp"
#include <vector>
#include <vulkan/vulkan_raii.hpp>
class Device
{
public:
Device(VulkanInstance& instance, Surface& surface);
// std::vector<vk::raii::PhysicalDevice>
// GetPhysicalDevices(vk::raii::Instance& instance);
// VkPhysicalDevice ChoosePhysicalDevice(vk::raii::Instance& instance);
std::vector<vk::DeviceQueueCreateInfo>
GetDeviceQueueCreateInfos(Surface& surface);
std::vector<const char*> GetDeviceExtentionNames();
vk::raii::Device CreateDevice(Surface& surface);
vk::raii::Device& Get();
vk::raii::PhysicalDevice& GetPhysicalDevice();
uint32_t FindMemoryType(
vk::MemoryRequirements memoryRequirements,
vk::MemoryPropertyFlags memoryPropertyFlags);
vk::SurfaceCapabilitiesKHR
GetSurfaceCapabilities(vk::raii::SurfaceKHR& device);
std::vector<vk::SurfaceFormatKHR>
GetCompatableSurfaceFormats(vk::raii::SurfaceKHR& surface);
private:
std::vector<DeviceQueue> m_DeviceQueues;
vk::raii::PhysicalDevice m_PhysicalDevice;
vk::raii::Device m_Device;
};