15#include <vsg/vk/DeviceExtensions.h>
16#include <vsg/vk/DeviceFeatures.h>
17#include <vsg/vk/Queue.h>
26 class MemoryBufferPools;
27 class DescriptorPools;
31 int queueFamilyIndex = -1;
32 std::vector<float> queuePiorities;
35 using QueueSettings = std::vector<QueueSetting>;
43 operator VkDevice()
const {
return _device; }
44 VkDevice vk()
const {
return _device; }
46 static uint32_t maxNumDevices();
47 const uint32_t deviceID = 0;
49 Instance* getInstance() {
return _instance.get(); }
50 const Instance* getInstance()
const {
return _instance.get(); }
52 PhysicalDevice* getPhysicalDevice() {
return _physicalDevice.get(); }
53 const PhysicalDevice* getPhysicalDevice()
const {
return _physicalDevice.get(); }
58 const Queues& getQueues()
const {
return _queues; }
60 ref_ptr<Queue> getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex = 0);
69 bool getProcAddr(T& procAddress,
const char* pName,
const char* pNameFallback =
nullptr)
const
71 procAddress =
reinterpret_cast<T
>(vkGetDeviceProcAddr(_device, pName));
72 if (procAddress)
return true;
74 if (pNameFallback) procAddress =
reinterpret_cast<T
>(vkGetDeviceProcAddr(_device, pNameFallback));
Adapter class that provides a means of managing the lifetime of VkAllocationCallbacks.
Definition AllocationCallbacks.h:24
Definition DeviceExtensions.h:24
Definition DeviceFeatures.h:25
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition Device.h:39
bool getProcAddr(T &procAddress, const char *pName, const char *pNameFallback=nullptr) const
Definition Device.h:69
bool supportsDeviceExtension(const char *extensionName) const
return true if Device was created with specified extension
const DeviceExtensions * getExtensions() const
get the extensions structure that holds a range of function pointers to vkInstance extensions
Definition Device.h:63
bool supportsApiVersion(uint32_t version) const
device-level core functionality can be used if both VkInstance and VkPhysicalDevice support the Vulka...
const Names enabledExtensions
list of enabled extensions when the Device was created
Definition Device.h:82
Instance encapsulates the VkInstance.
Definition Instance.h:46
Definition PhysicalDevice.h:23
Definition observer_ptr.h:24