stories/engine/physicaldevice.h

31 lines
628 B
C++

#pragma once
#include <set>
#include <string>
#include <vector>
#include <vulkan/vulkan.h>
#include "utils.h"
namespace Engine {
class Engine;
class LogicalDevice;
class PhysicalDevice {
friend class Engine;
friend class LogicalDevice;
public:
PhysicalDevice(VkPhysicalDevice raw, const QueueFamilyIndices& indices, const SwapChainSupportDetails& swapChainSupport);
static bool checkDeviceExtensionSupport(VkPhysicalDevice device, std::set<std::string> requiredExtensions);
const QueueFamilyIndices indices;
const SwapChainSupportDetails swapChainSupport;
private:
VkPhysicalDevice vk;
};
}