QVulkanDeviceFunctions 类提供跨平台访问设备级核心 Vulkan 1.0 API。 更多...
| 头: | #include <QVulkanDeviceFunctions> |
| qmake: | QT += gui |
| Since: | Qt 5.10 |
该类在 Qt 5.10 引入。
默认情况下,Qt 和 Qt 应用程序未链接到任何 Vulkan 库。相反,在运行时动态解析所有函数。每个 QVulkanInstance 提供 QVulkanFunctions 可检索对象凭借 QVulkanInstance::functions ()。这未包含设备级函数,为避免潜在内部分派开销。相反,依赖设备或设备可分派子级对象的函数的暴露是凭借 QVulkanDeviceFunctions 和 QVulkanInstance::deviceFunctions (). QVulkanFunctions 和 QVulkanDeviceFunctions 一起提供对完整核心 Vulkan API 的访问,排除任何扩展。
注意: QVulkanDeviceFunctions 实例无法被直接构造。
典型用法如下:
void Window::render()
{
QVulkanInstance *inst = vulkanInstance();
QVulkanDeviceFunctions *df = inst->deviceFunctions(device);
VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf);
...
}
创建由 VkDevice 提供的特定 QVulkanDeviceFunctions 对象当 QVulkanInstance::deviceFunctions () 首先以有问题设备被调用。然后,对象缓存在内部。
要访问额外函数,应用程序可以使用 QVulkanInstance::getInstanceProcAddr () 和 vkGetDeviceProcAddr()。应用程序也可以决定直接链接到 Vulkan 库,因为很多实现为核心命令导出了函数符号。见 vkGetInstanceProcAddr 手册页 了解更多信息。
另请参阅 QVulkanInstance , QVulkanFunctions , QWindow::setVulkanInstance (),和 QWindow::setSurfaceType ().