Spec-Zone.ru › Qt 5.12

Класс 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/qt-5.12/qvulkanfunctions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API