QQuickGraphicsDevice Class

Die Klasse QQuickGraphicsDevice bietet einen undurchsichtigen Container für native Grafikobjekte, die Grafikgeräte oder Kontexte darstellen. Mehr...

Kopfzeile: #include <QQuickGraphicsDevice>
CMake: find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake: QT += quick
Seit: Qt 6.0

Öffentliche Funktionen

Statische öffentliche Mitglieder

QQuickGraphicsDevice fromAdapter(quint32 adapterLuidLow, qint32 adapterLuidHigh, int featureLevel = 0)
QQuickGraphicsDevice fromDeviceAndCommandQueue(MTLDevice *device, MTLCommandQueue *commandQueue)
QQuickGraphicsDevice fromDeviceAndContext(void *device, void *context)
QQuickGraphicsDevice fromDeviceObjects(VkPhysicalDevice physicalDevice, VkDevice device, int queueFamilyIndex, int queueIndex = 0)
QQuickGraphicsDevice fromOpenGLContext(QOpenGLContext *context)
QQuickGraphicsDevice fromPhysicalDevice(VkPhysicalDevice physicalDevice)
(since 6.6) QQuickGraphicsDevice fromRhi(QRhi *rhi)

Detaillierte Beschreibung

Siehe auch QQuickWindow::setGraphicsDevice() und QQuickRenderTarget.

Dokumentation der Mitgliederfunktionen

QQuickGraphicsDevice::QQuickGraphicsDevice()

Konstruiert ein Standard-QQuickGraphicsDevice, das keine nativen Objekte referenziert.

[noexcept] QQuickGraphicsDevice::~QQuickGraphicsDevice()

Zerstörer.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromAdapter(quint32 adapterLuidLow, qint32 adapterLuidHigh, int featureLevel = 0)

Gibt eine neue QQuickGraphicsDevice zurück, die einen DXGI-Adapter und ein D3D-FeatureLevel beschreibt.

Diese Werksfunktion ist für Direct3D 11 und 12 geeignet, insbesondere in Kombination mit OpenXR. adapterLuidLow und adapterLuidHigh spezifizieren zusammen eine LUID, während ein FeatureLevel einen D3D_FEATURE_LEVEL_ Wert spezifiziert. featureLevel kann auf 0 gesetzt werden, wenn es nicht spezifiziert werden soll, in welchem Fall die Standardwerte des Szenegraphen verwendet werden.

Hinweis: Bei Direct 3D 12 spezifiziert featureLevel den minimum Feature-Level, der an D3D12CreateDevice() weitergegeben wird.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceAndCommandQueue(MTLDevice *device, MTLCommandQueue *commandQueue)

Gibt ein neues QQuickGraphicsDevice zurück, das auf ein bestehendes device und commandQueue Objekt verweist.

Diese Fabrikfunktion ist für Metal geeignet.

Hinweis: Die resultierende QQuickGraphicsDevice besitzt keine nativen Ressourcen, sie enthält lediglich Verweise. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceAndContext(void *device, void *context)

Gibt ein neues QQuickGraphicsDevice zurück, das ein natives Geräte- und Kontextobjekt referenziert.

Diese Fabrikfunktion ist für Direct3D 11 geeignet. device wird als ID3D11Device* erwartet, context wird als ID3D11DeviceContext* erwartet.

Sie unterstützt auch Direct 3D 12, wenn dies die zur Laufzeit verwendete 3D-API ist. Bei D3D12 ist context unbenutzt und kann auf null gesetzt werden. device wird als ID3D12Device* erwartet.

Hinweis: Die resultierende QQuickGraphicsDevice besitzt keine nativen Ressourcen, sie enthält lediglich Verweise. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceObjects(VkPhysicalDevice physicalDevice, VkDevice device, int queueFamilyIndex, int queueIndex = 0)

Gibt ein neues QQuickGraphicsDevice zurück, das auf ein vorhandenes device Objekt verweist.

Diese Fabrikfunktion ist für Vulkan geeignet. physicalDevice device und queueFamilyIndex müssen immer angegeben werden. queueIndex ist optional, da der Standardwert von 0 oft geeignet ist.

Hinweis: Die resultierende QQuickGraphicsDevice besitzt keine nativen Ressourcen, sie enthält lediglich Verweise. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromOpenGLContext(QOpenGLContext *context)

Gibt eine neue QQuickGraphicsDevice zurück, die auf eine bestehende OpenGL context verweist.

Diese Fabrikfunktion ist für OpenGL geeignet.

Hinweis: Der Aufrufer muss sicherstellen, dass context mit QQuickWindow kompatibel und verwendbar ist. Plattformspezifische Unstimmigkeiten in der zugehörigen QSurfaceFormat oder Threading-Probleme aufgrund des Versuchs, context auf mehreren Threads zu verwenden, sind vom Aufrufer zu vermeiden.

[static] QQuickGraphicsDevice QQuickGraphicsDevice::fromPhysicalDevice(VkPhysicalDevice physicalDevice)

Gibt eine neue QQuickGraphicsDevice zurück, die auf eine bestehende physicalDevice verweist.

Diese Fabrikfunktion ist für Vulkan geeignet, insbesondere in Kombination mit OpenXR.

Hinweis: Die resultierende QQuickGraphicsDevice besitzt keine nativen Ressourcen, sie enthält lediglich Verweise. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die native Ressource so lange wie nötig existiert.

[static, since 6.6] QQuickGraphicsDevice QQuickGraphicsDevice::fromRhi(QRhi *rhi)

Gibt ein neues QQuickGraphicsDevice zurück, das ein bestehendes rhi Objekt referenziert.

Hinweis: Ähnlich wie bei fromOpenGLContext() muss der Aufrufer darauf achten, ein QRhi (und damit den zugrundeliegenden Grafikkontext oder das Gerät) nur zwischen bekanntermaßen kompatiblen QQuickWindows auszutauschen und nicht die Regeln der zugrundeliegenden Grafik-API zu brechen, wenn es um Threading, Pixelformate usw. geht.

Diese Funktion wurde in Qt 6.6 eingeführt.

bool QQuickGraphicsDevice::isNull() const

Gibt true zurück, wenn es sich um ein standardmäßig konstruiertes Grafikgerät handelt, das keine nativen Objekte referenziert.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.