![]() |
Qt 6.x
The Qt SDK
|
A generic platform Vulkan instance implementation. More...
#include <qbasicvulkanplatforminstance_p.h>
Public Member Functions | |
QBasicPlatformVulkanInstance () | |
~QBasicPlatformVulkanInstance () | |
QVulkanInfoVector< QVulkanLayer > | supportedLayers () const override |
QVulkanInfoVector< QVulkanExtension > | supportedExtensions () const override |
QVersionNumber | supportedApiVersion () const override |
bool | isValid () const override |
VkResult | errorCode () const override |
VkInstance | vkInstance () const override |
QByteArrayList | enabledLayers () const override |
QByteArrayList | enabledExtensions () const override |
PFN_vkVoidFunction | getInstanceProcAddr (const char *name) override |
bool | supportsPresent (VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, QWindow *window) override |
void | setDebugFilters (const QList< QVulkanInstance::DebugFilter > &filters) override |
void | setDebugUtilsFilters (const QList< QVulkanInstance::DebugUtilsFilter > &filters) override |
void | destroySurface (VkSurfaceKHR surface) const |
const QList< QVulkanInstance::DebugFilter > * | debugFilters () const |
const QList< QVulkanInstance::DebugUtilsFilter > * | debugUtilsFilters () const |
Protected Member Functions | |
void | loadVulkanLibrary (const QString &defaultLibraryName, int defaultLibraryVersion=-1) |
void | init (QLibrary *lib) |
void | initInstance (QVulkanInstance *instance, const QByteArrayList &extraExts) |
Protected Attributes | |
VkInstance | m_vkInst = VK_NULL_HANDLE |
PFN_vkGetInstanceProcAddr | m_vkGetInstanceProcAddr = nullptr |
PFN_vkGetPhysicalDeviceSurfaceSupportKHR | m_getPhysDevSurfaceSupport |
PFN_vkDestroySurfaceKHR | m_destroySurface |
A generic platform Vulkan instance implementation.
Implements QPlatformVulkanInstance, serving as a base for platform-specific implementations. The library loading and any WSI-specifics are excluded.
Subclasses are expected to call init() from their constructor and initInstance() from their createOrAdoptInstance() implementation.
Definition at line 26 of file qbasicvulkanplatforminstance_p.h.
QBasicPlatformVulkanInstance::QBasicPlatformVulkanInstance | ( | ) |
Definition at line 28 of file qbasicvulkanplatforminstance.cpp.
QBasicPlatformVulkanInstance::~QBasicPlatformVulkanInstance | ( | ) |
Definition at line 32 of file qbasicvulkanplatforminstance.cpp.
References m_vkInst.
|
inline |
Definition at line 46 of file qbasicvulkanplatforminstance_p.h.
|
inline |
Definition at line 47 of file qbasicvulkanplatforminstance_p.h.
void QBasicPlatformVulkanInstance::destroySurface | ( | VkSurfaceKHR | surface | ) | const |
Definition at line 371 of file qbasicvulkanplatforminstance.cpp.
References m_destroySurface, and m_vkInst.
|
override |
Definition at line 331 of file qbasicvulkanplatforminstance.cpp.
Referenced by QVkKhrDisplayVulkanInstance::createOrAdoptInstance().
|
override |
Definition at line 326 of file qbasicvulkanplatforminstance.cpp.
|
override |
Definition at line 316 of file qbasicvulkanplatforminstance.cpp.
|
override |
Definition at line 336 of file qbasicvulkanplatforminstance.cpp.
References m_vkGetInstanceProcAddr, and m_vkInst.
Definition at line 87 of file qbasicvulkanplatforminstance.cpp.
References QList< T >::data(), ext, QLibrary::fileName, m_vkGetInstanceProcAddr, qCDebug, qDebug, qPrintable, qWarning, and QLibrary::resolve().
Referenced by QAndroidPlatformVulkanInstance::QAndroidPlatformVulkanInstance(), and loadVulkanLibrary().
|
protected |
Definition at line 194 of file qbasicvulkanplatforminstance.cpp.
References QList< T >::append(), QCoreApplication::applicationName, ba, QByteArray::constData(), QList< T >::constData(), ext, i, QByteArray::isEmpty(), QList< T >::isEmpty(), QVersionNumber::isNull(), m_destroySurface, m_getPhysDevSurfaceSupport, m_vkGetInstanceProcAddr, m_vkInst, QVersionNumber::majorVersion(), QVersionNumber::microVersion(), QVersionNumber::minorVersion(), qDebug, qgetenv(), qWarning, QList< T >::size(), QByteArray::split(), and QString::toUtf8().
Referenced by QAndroidPlatformVulkanInstance::createOrAdoptInstance(), QCocoaVulkanInstance::createOrAdoptInstance(), QVkKhrDisplayVulkanInstance::createOrAdoptInstance(), QWindowsVulkanInstance::createOrAdoptInstance(), QXcbVulkanInstance::createOrAdoptInstance(), and QtWaylandClient::QWaylandVulkanInstance::createOrAdoptInstance().
|
override |
Definition at line 311 of file qbasicvulkanplatforminstance.cpp.
References m_vkInst.
|
protected |
Definition at line 46 of file qbasicvulkanplatforminstance.cpp.
References QVarLengthArray< T, Prealloc >::append(), QString::fromUtf8(), init(), ok, qEnvironmentVariableIsSet(), qgetenv(), qPrintable, and qWarning.
Referenced by QCocoaVulkanInstance::QCocoaVulkanInstance(), QVkKhrDisplayVulkanInstance::QVkKhrDisplayVulkanInstance(), QtWaylandClient::QWaylandVulkanInstance::QWaylandVulkanInstance(), QWindowsVulkanInstance::QWindowsVulkanInstance(), and QXcbVulkanInstance::QXcbVulkanInstance().
|
override |
Definition at line 361 of file qbasicvulkanplatforminstance.cpp.
References filters.
|
override |
Definition at line 366 of file qbasicvulkanplatforminstance.cpp.
References filters.
|
override |
Definition at line 189 of file qbasicvulkanplatforminstance.cpp.
|
override |
Definition at line 184 of file qbasicvulkanplatforminstance.cpp.
|
override |
Definition at line 179 of file qbasicvulkanplatforminstance.cpp.
|
override |
Definition at line 347 of file qbasicvulkanplatforminstance.cpp.
References m_getPhysDevSurfaceSupport, and window().
|
override |
Definition at line 321 of file qbasicvulkanplatforminstance.cpp.
References m_vkInst.
|
protected |
Definition at line 57 of file qbasicvulkanplatforminstance_p.h.
Referenced by destroySurface(), and initInstance().
|
protected |
Definition at line 56 of file qbasicvulkanplatforminstance_p.h.
Referenced by initInstance(), supportsPresent(), QWindowsVulkanInstance::supportsPresent(), QXcbVulkanInstance::supportsPresent(), and QtWaylandClient::QWaylandVulkanInstance::supportsPresent().
|
protected |
Definition at line 55 of file qbasicvulkanplatforminstance_p.h.
Referenced by QVkKhrDisplayVulkanInstance::createOrAdoptInstance(), QWindowsVulkanInstance::createOrAdoptInstance(), QXcbVulkanInstance::createOrAdoptInstance(), QtWaylandClient::QWaylandVulkanInstance::createOrAdoptInstance(), QWindowsVulkanInstance::createSurface(), QtWaylandClient::QWaylandVulkanInstance::createSurface(), QXcbVulkanInstance::createSurface(), getInstanceProcAddr(), init(), and initInstance().
|
protected |
Definition at line 54 of file qbasicvulkanplatforminstance_p.h.
Referenced by ~QBasicPlatformVulkanInstance(), QVkKhrDisplayVulkanInstance::createOrAdoptInstance(), QWindowsVulkanInstance::createOrAdoptInstance(), QXcbVulkanInstance::createOrAdoptInstance(), QtWaylandClient::QWaylandVulkanInstance::createOrAdoptInstance(), QWindowsVulkanInstance::createSurface(), QtWaylandClient::QWaylandVulkanInstance::createSurface(), QVkKhrDisplayVulkanInstance::createSurface(), QXcbVulkanInstance::createSurface(), destroySurface(), getInstanceProcAddr(), initInstance(), isValid(), and vkInstance().