QQuickGraphicsDevice 类
QQuickGraphicsDevice 类提供了一个不可管理的容器,用于表示图形设备或上下文的本地图形对象。 更多...
头文件 | #include <QQuickGraphicsDevice> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Quick) target_link_libraries(mytarget PRIVATE Qt6::Quick) |
qmake | QT += quick |
自 | Qt 6.0 |
公共函数
QQuickGraphicsDevice() | |
~QQuickGraphicsDevice() | |
bool | isNull() const |
静态公共成员
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) |
另请参阅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。 adapterLuidLow 和 adapterLuidHigh 一起指定 LUID,而 featureLevel 指定 D3D_FEATURE_LEVEL_
值。 如果不打算指定 featureLevel,则可以将其设置为 0,在这种情况下,将使用场景图的默认值。
注意:在Direct 3D 12中,featureLevel指定传递给D3D12CreateDevice()的最低
功能级别。
[静态]
QQuickGraphicsDevice QQuickGraphicsDevice::fromDeviceAndCommandQueue(MTLDevice *device, MTLCommandQueue *commandQueue)
返回一个新的QQuickGraphicsDevice,该设备引用现有的device和commandQueue对象。
此工厂函数适用于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。physicalDevice、device和queueFamilyIndex必须始终提供。queueIndex是可选的,因为默认值0通常适合。
注意:所得到的QQuickGraphicsDevice不拥有任何本地资源,它仅包含引用。确保本地资源在必要时仍然存在是调用者的责任。
[静态]
QQuickGraphicsDevice QQuickGraphicsDevice::fromOpenGLContext(QOpenGLContext *context)
返回一个新的QQuickGraphicsDevice,该设备引用现有的OpenGL context。
此工厂函数适用于OpenGL。
注意:确保context与QQuickWindow兼容并可用是调用者的责任。相关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 在芬兰及/或其他国家/地区的注册商标。所有其他商标均为其各自所有者的财产。