- Qt 6.5
- Qt Quick
- C++ Classes
- QQuickGraphicsDevice
- Qt 6.5.0 Reference Documentation

# QQuickGraphicsDevice Class

The QQuickGraphicsDevice class provides an opaque container for native graphics objects representing graphics devices or contexts. More...

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

- List of all members, including inherited members

## Public Functions

| QQuickGraphicsDevice()
| ~QQuickGraphicsDevice()
bool | isNull() const

## Static Public Members

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)

## Detailed Description

See also QQuickWindow::setGraphicsDevice() and QQuickRenderTarget.

## Member Function Documentation

### QQuickGraphicsDevice::QQuickGraphicsDevice()

Constructs a default QQuickGraphicsDevice that does not reference any native objects.

### QQuickGraphicsDevice::~QQuickGraphicsDevice()

Destructor.

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

Returns a new QQuickGraphicsDevice describing a DXGI adapter and D3D feature level.

This factory function is suitable for Direct3D 11, particularly in combination with OpenXR. adapterLuidLow and adapterLuidHigh together specify a LUID, while a featureLevel specifies a `D3D_FEATURE_LEVEL_` value. featureLevel can be set to 0 if it is not intended to be specified, in which case the scene graph's defaults will be used.

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

Returns a new QQuickGraphicsDevice referencing an existing device and commandQueue object.

This factory function is suitable for Metal.

Note: the resulting QQuickGraphicsDevice does not own any native resources, it merely contains references. It is the caller's responsibility to ensure that the native resource exists as long as necessary.

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

Returns a new QQuickGraphicsDevice referencing a native device and context object.

This factory function is suitable for Direct3D 11. device is expected to be a `ID3D11Device*`, context is expected to be a `ID3D11DeviceContext*`.

Note: the resulting QQuickGraphicsDevice does not own any native resources, it merely contains references. It is the caller's responsibility to ensure that the native resource exists as long as necessary.

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

Returns a new QQuickGraphicsDevice referencing an existing device object.

This factory function is suitable for Vulkan. physicalDevice, device and queueFamilyIndex must always be provided. queueIndex is optional since the default value of 0 is often suitable.

Note: the resulting QQuickGraphicsDevice does not own any native resources, it merely contains references. It is the caller's responsibility to ensure that the native resource exists as long as necessary.

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

Returns a new QQuickGraphicsDevice referencing an existing OpenGL context.

This factory function is suitable for OpenGL.

Note: It is up the caller to ensure that context is going to be compatible and usable with the QQuickWindow. Platform-specific mismatches in the associated QSurfaceFormat, or threading issues due to attempting to use context on multiple threads are up to the caller to avoid.

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

Returns a new QQuickGraphicsDevice referencing an existing physicalDevice.

This factory function is suitable for Vulkan, particularly in combination with OpenXR.

Note: the resulting QQuickGraphicsDevice does not own any native resources, it merely contains references. It is the caller's responsibility to ensure that the native resource exists as long as necessary.

### bool QQuickGraphicsDevice::isNull() const

Returns true if this is a default constructed graphics device that does not reference any native objects.