15 #include <vsg/vk/DeviceFeatures.h>
16 #include <vsg/vk/Extensions.h>
17 #include <vsg/vk/Queue.h>
29 int queueFamilyIndex = -1;
30 std::vector<float> queuePiorities;
33 using QueueSettings = std::vector<QueueSetting>;
41 operator VkDevice()
const {
return _device; }
42 VkDevice vk()
const {
return _device; }
44 static uint32_t maxNumDevices();
45 const uint32_t deviceID = 0;
47 Instance* getInstance() {
return _instance.get(); }
48 const Instance* getInstance()
const {
return _instance.get(); }
50 PhysicalDevice* getPhysicalDevice() {
return _physicalDevice.get(); }
51 const PhysicalDevice* getPhysicalDevice()
const {
return _physicalDevice.get(); }
56 ref_ptr<Queue> getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex = 0);
58 const Extensions* getExtensions()
const {
return _extensions.get(); }
62 bool getProcAddr(T& procAddress,
const char* pName,
const char* pNameFallback =
nullptr)
const
64 procAddress =
reinterpret_cast<T
>(vkGetDeviceProcAddr(_device, pName));
65 if (procAddress)
return true;
67 if (pNameFallback) procAddress =
reinterpret_cast<T
>(vkGetDeviceProcAddr(_device, pNameFallback));
81 std::list<ref_ptr<Queue>> _queues;
Adapter class that provides a means of managing the lifetime of VkAllocationCallbacks.
Definition: AllocationCallbacks.h:24
Definition: DeviceFeatures.h:24
Device encapsulate vkDeivce, a logical handle to the PhysicalDevice with capabilities specified durin...
Definition: Device.h:37
bool getProcAddr(T &procAddress, const char *pName, const char *pNameFallback=nullptr) const
get the address of specified function using vkGetDeviceProcAddr
Definition: Device.h:62
Definition: Extensions.h:28
Instance encapsulate the vkInstance.
Definition: Instance.h:42
Definition: PhysicalDevice.h:23