Класс QVulkanFunctions
Класс QVulkanFunctions предоставляет кроссплатформенный доступ к ядру Vulkan 1.0 API на уровне экземпляра.Подробнее...
| Заголовок: | #include <QVulkanFunctions> |
| qmake: | QT += gui |
| С момента: | Qt 5.10 |
Открытые функции
| ~QVulkanFunctions() | |
| int | vkCreateDevice(int, const int *, const int *, int *) |
| int | vkEnumerateDeviceExtensionProperties(int, const char *, uint32_t *, int *) |
| int | vkEnumerateDeviceLayerProperties(int, uint32_t *, int *) |
| int | vkEnumerateInstanceExtensionProperties(const char *, uint32_t *, int *) |
| int | vkEnumerateInstanceLayerProperties(uint32_t *, int *) |
| int | vkEnumeratePhysicalDevices(int, uint32_t *, int *) |
| int | vkGetDeviceProcAddr(int, const char *) |
| void | vkGetPhysicalDeviceFeatures(int physicalDevice, int *pFeatures) |
| void | vkGetPhysicalDeviceFormatProperties(int physicalDevice, int format, int *pFormatProperties) |
| int | vkGetPhysicalDeviceImageFormatProperties(int, int, int, int, int, int, int *) |
| void | vkGetPhysicalDeviceMemoryProperties(int physicalDevice, int *pMemoryProperties) |
| void | vkGetPhysicalDeviceProperties(int physicalDevice, int *pProperties) |
| void | vkGetPhysicalDeviceQueueFamilyProperties(int physicalDevice, uint32_t *pQueueFamilyPropertyCount, int *pQueueFamilyProperties) |
| void | vkGetPhysicalDeviceSparseImageFormatProperties(int physicalDevice, int format, int type, int samples, int usage, int tiling, uint32_t *pPropertyCount, int *pProperties) |
Подробное описание
Класс QVulkanFunctions предоставляет кроссплатформенный доступ к ядру Vulkan 1.0 API на уровне экземпляра.
Qt и Qt-приложения по умолчанию не подключаются к каким-либо Vulkan-библиотекам. Вместо этого все функции разрешаются динамически во время выполнения. Каждый QVulkanInstance предоставляет объект QVulkanFunctions, доступный через QVulkanInstance::functions(). Он не содержит функций уровня устройства, чтобы избежать потенциальной накладных расходов на внутреннюю передачу. Вместо этого функции, зависящие от устройства или передаваемого дочернего объекта устройства, экспонируются через QVulkanDeviceFunctions и QVulkanInstance::deviceFunctions(). QVulkanFunctions и QVulkanDeviceFunctions вместе предоставляют доступ к полному API ядра Vulkan, за исключением расширений.
Примечание: экземпляры QVulkanFunctions не могут быть созданы напрямую.
Типичное использование приведено ниже:
void Window::render()
{
QVulkanInstance *inst = vulkanInstance();
QVulkanFunctions *f = inst->functions();
...
VkResult err = f->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf);
...
} Примечание: особенности интерфейса оконной системы (WSI) и расширения исключены. Этот класс охватывает только основные Vulkan-команды, за исключением создания, уничтожения экземпляра и разрешения функций, так как такая функциональность покрывается самим QVulkanInstance.
Для доступа к дополнительным функциям приложения могут использовать QVulkanInstance::getInstanceProcAddr() и vkGetDeviceProcAddr(). Приложения также могут решить напрямую подключиться к Vulkan-библиотеке, так как платформы с соответствующим загрузчиком обычно экспортируют символы функций для основных команд. Подробнее см. страницу справки для vkGetInstanceProcAddr.
См. также QVulkanInstance, QVulkanDeviceFunctions, QWindow::setVulkanInstance() и QWindow::setSurfaceType().
Документация по функциям-членам
QVulkanFunctions::~QVulkanFunctions()
Уничтожает экземпляр QVulkanFunctions.
int QVulkanFunctions::vkCreateDevice(int, const int *, const int *, int *)
int QVulkanFunctions::vkEnumerateDeviceExtensionProperties(int, const char *, uint32_t *, int *)
int QVulkanFunctions::vkEnumerateDeviceLayerProperties(int, uint32_t *, int *)
int QVulkanFunctions::vkEnumerateInstanceExtensionProperties(const char *, uint32_t *, int *)
int QVulkanFunctions::vkEnumerateInstanceLayerProperties(uint32_t *, int *)
int QVulkanFunctions::vkEnumeratePhysicalDevices(int, uint32_t *, int *)
int QVulkanFunctions::vkGetDeviceProcAddr(int, const char *)
void QVulkanFunctions::vkGetPhysicalDeviceFeatures(int physicalDevice, int *pFeatures)
void QVulkanFunctions::vkGetPhysicalDeviceFormatProperties(int physicalDevice, int format, int *pFormatProperties)
int QVulkanFunctions::vkGetPhysicalDeviceImageFormatProperties(int, int, int, int, int, int, int *)
void QVulkanFunctions::vkGetPhysicalDeviceMemoryProperties(int physicalDevice, int *pMemoryProperties)
void QVulkanFunctions::vkGetPhysicalDeviceProperties(int physicalDevice, int *pProperties)
void QVulkanFunctions::vkGetPhysicalDeviceQueueFamilyProperties(int physicalDevice, uint32_t *pQueueFamilyPropertyCount, int *pQueueFamilyProperties)
void QVulkanFunctions::vkGetPhysicalDeviceSparseImageFormatProperties(int physicalDevice, int format, int type, int samples, int usage, int tiling, uint32_t *pPropertyCount, int *pProperties)
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qvulkanfunctions.html