QQuickGraphicsDevice 类

QQuickGraphicsDevice 类提供了一个不可管理的容器,用于表示图形设备或上下文的本地图形对象。 更多...

头文件 #include <QQuickGraphicsDevice>
CMakefind_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmakeQT += quick
Qt 6.0

公共函数

静态公共成员

QQuickGraphicsDevicefromAdapter(quint32 adapterLuidLow, qint32 adapterLuidHigh, int featureLevel = 0)
QQuickGraphicsDevicefromDeviceAndCommandQueue(MTLDevice *device, MTLCommandQueue *commandQueue)
QQuickGraphicsDevicefromDeviceAndContext(void *device, void *context)
QQuickGraphicsDevicefromDeviceObjects(VkPhysicalDevice physicalDevice, VkDevice device, int queueFamilyIndex, int queueIndex = 0)
QQuickGraphicsDevicefromOpenGLContext(QOpenGLContext *context)
QQuickGraphicsDevicefromPhysicalDevice(VkPhysicalDevice physicalDevice)
(since 6.6) QQuickGraphicsDevicefromRhi(QRhi *rhi)

详细描述

另请参阅QQuickWindow::setGraphicsDevice() 和 QQuickRenderTarget.

成员函数文档

QQuickGraphicsDevice::QQuickGraphicsDevice()

构造一个默认的 QQuickGraphicsDevice,该设备不引用任何本地对象。

[noexcept] QQuickGraphicsDevice::~QQuickGraphicsDevice()

析构函数。

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

返回一个新的 QQuickGraphicsDevice,描述 DXGI 适配器和 D3D 功能级别。

此工厂函数适合与 OpenXR 配合使用,尤其是与 Direct3D 11 和 12。 adapterLuidLowadapterLuidHigh 一起指定 LUID,而 featureLevel 指定 D3D_FEATURE_LEVEL_ 值。 如果不打算指定 featureLevel,则可以将其设置为 0,在这种情况下,将使用场景图的默认值。

注意:在Direct 3D 12中,featureLevel指定传递给D3D12CreateDevice()的最低功能级别。

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

返回一个新的QQuickGraphicsDevice,该设备引用现有的devicecommandQueue对象。

此工厂函数适用于Metal。

注意:所得到的QQuickGraphicsDevice不拥有任何本地资源,它仅包含引用。确保本地资源在必要时仍然存在是调用者的责任。

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

返回一个新的QQuickGraphicsDevice,它引用一个本地设备和中国对象。

此工厂函数适用于Direct3D 11。device预期是ID3D11Device*context预期是ID3D11DeviceContext*

它还支持Direct 3D 12,如果是在运行时使用的3D API。在D3D12中,context未使用,可以设置为null。device预期是ID3D12Device*

注意:所得到的QQuickGraphicsDevice不拥有任何本地资源,它仅包含引用。确保本地资源在必要时仍然存在是调用者的责任。

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

返回一个新的QQuickGraphicsDevice,该设备引用现有的device对象。

此工厂函数适用于Vulkan。physicalDevicedevicequeueFamilyIndex必须始终提供。queueIndex是可选的,因为默认值0通常适合。

注意:所得到的QQuickGraphicsDevice不拥有任何本地资源,它仅包含引用。确保本地资源在必要时仍然存在是调用者的责任。

[静态] QQuickGraphicsDevice QQuickGraphicsDevice::fromOpenGLContext(QOpenGLContext *context)

返回一个新的QQuickGraphicsDevice,该设备引用现有的OpenGL context

此工厂函数适用于OpenGL。

注意:确保contextQQuickWindow兼容并可用是调用者的责任。相关QSurfaceFormat的平台特定不匹配,或不试图在多个线程上使用context导致的线程问题是由调用者避免的。

[静态,自6.6起] QQuickGraphicsDevice QQuickGraphicsDevice::fromPhysicalDevice(VkPhysicalDevice physicalDevice)

返回一个新的QQuickGraphicsDevice,该设备引用现有的physicalDevice

此工厂函数适用于Vulkan,尤其适用于与OpenXR结合使用。

注意:所得到的QQuickGraphicsDevice不拥有任何本地资源,它仅包含引用。确保本地资源在必要时仍然存在是调用者的责任。

[静态,自6.6起] QQuickGraphicsDevice QQuickGraphicsDevice::fromRhi(QRhi *rhi)

返回一个引用现有 rhi 对象的新的 QQuickGraphicsDevice

注意:fromOpenGLContext() 类似,调用者必须小心,仅在已知兼容的 QQuickWindows 之间共享 QRhi(以及底层的图形上下文或设备),不要违反底层的图形 API 的线程、像素格式等规则。

此函数在 Qt 6.6 中引入。

bool QQuickGraphicsDevice::isNull() const

如果此图形设备是默认构造的,不引用任何本地对象,则返回 true。

© 2024 Qt Company 有限公司。此处包含的文档贡献的版权属于其各自的所有者。此处提供的文档根据 Free Software Foundation 发布的 GNU 自由文档许可证 version 1.3 的条款进行许可。Qt 及其相应标志是 Qt Company 在芬兰及/或其他国家/地区的注册商标。所有其他商标均为其各自所有者的财产。