GraphicsInfo QML Type

Provides information about the scenegraph backend and the graphics API used by Qt Quick. More...

Import Statement: import QtQuick
Since: QtQuick 2.8

Properties

Detailed Description

The GraphicsInfo attached type provides information about the scenegraph backend and the graphics API used to render the contents of the associated window.

If the item to which the properties are attached is not currently associated with any window, the properties are set to default values. When the associated window changes, the properties will update.

Property Documentation

api : enumeration [read-only]

This property describes the graphics API that is currently in use.

The possible values are:

ConstantDescription
GraphicsInfo.Unknownthe default value when no active scenegraph is associated with the item
GraphicsInfo.SoftwareQt Quick's software renderer based on QPainter with the raster paint engine
GraphicsInfo.OpenVGOpenVG
GraphicsInfo.OpenGLOpenGL or OpenGL ES on top of QRhi, a graphics abstraction layer
GraphicsInfo.Direct3D11Direct3D 11 on top of QRhi, a graphics abstraction layer
GraphicsInfo.Direct3D12Direct3D 12 on top of QRhi, a graphics abstraction layer
GraphicsInfo.VulkanVulkan on top of QRhi, a graphics abstraction layer
GraphicsInfo.MetalMetal on top of QRhi, a graphics abstraction layer
GraphicsInfo.NullNull (no output) on top of QRhi, a graphics abstraction layer

majorVersion : int [read-only]

This property holds the major version of the graphics API in use.

With OpenGL the default version is 2.0.

Note: This is applicable only to OpenGL.

See also minorVersion and profile.


minorVersion : int [read-only]

This property holds the minor version of the graphics API in use.

With OpenGL the default version is 2.0.

Note: This is applicable only to OpenGL.

See also majorVersion and profile.


profile : enumeration [read-only]

This property holds the configured OpenGL context profile.

The possible values are:

ConstantDescription
GraphicsInfo.OpenGLNoProfile(default) OpenGL version is lower than 3.2 or OpenGL is not in use.
GraphicsInfo.OpenGLCoreProfileFunctionality deprecated in OpenGL version 3.0 is not available.
GraphicsInfo.OpenGLCompatibilityProfileFunctionality from earlier OpenGL versions is available.

Reusable QML components will typically use this property in bindings in order to choose between core and non core profile compatible shader sources.

Note: This is applicable only to OpenGL.

See also majorVersion, minorVersion, and QSurfaceFormat.


renderableType : enumeration [read-only]

This property holds the renderable type. The value has no meaning for APIs other than OpenGL.

The possible values are:

ConstantDescription
GraphicsInfo.SurfaceFormatUnspecified(default) Unspecified rendering method
GraphicsInfo.SurfaceFormatOpenGLDesktop OpenGL or other graphics API
GraphicsInfo.SurfaceFormatOpenGLESOpenGL ES

Note: This is applicable only to OpenGL.

See also QSurfaceFormat.


shaderCompilationType : enumeration [read-only, since QtQuick 2.8]

This property contains a bitmask of the shader compilation approaches supported by the Qt Quick backend the application is using.

ConstantValue
GraphicsInfo.RuntimeCompilation
GraphicsInfo.OfflineCompilation

With OpenGL the value is GraphicsInfo.RuntimeCompilation, which corresponds to the traditional way of using ShaderEffect. Non-OpenGL backends are expected to focus more on GraphicsInfo.OfflineCompilation, however.

Note: The value is only up-to-date once the item is associated with a window. Bindings relying on the value have to keep this in mind since the value may change from 0 to the actual bitmask after component initialization is complete. This is particularly relevant for ShaderEffect items inside ShaderEffectSource items set as property values.

This property was introduced in QtQuick 2.8.

See also shaderType and shaderSourceType.


shaderSourceType : enumeration [read-only, since QtQuick 2.8]

This property contains a bitmask of the supported ways of providing shader sources.

ConstantValue
GraphicsInfo.ShaderSourceString
GraphicsInfo.ShaderSourceFile
GraphicsInfo.ShaderByteCode

With OpenGL the value is GraphicsInfo.ShaderSourceString, which corresponds to the traditional way of inlining GLSL source code into QML. Other, non-OpenGL Qt Quick backends may however decide not to support inlined shader sources, or even shader sources at all. In this case shaders are expected to be pre-compiled into formats like SPIR-V or D3D shader bytecode.

Note: The value is only up-to-date once the item is associated with a window. Bindings relying on the value have to keep this in mind since the value may change from 0 to the actual bitmask after component initialization is complete. This is particularly relevant for ShaderEffect items inside ShaderEffectSource items set as property values.

This property was introduced in QtQuick 2.8.

See also shaderType and shaderCompilationType.


shaderType : enumeration [read-only, since QtQuick 2.8]

This property contains the shading language supported by the Qt Quick backend the application is using.

ConstantDescription
GraphicsInfo.UnknownShadingLanguageNot yet known due to no window and scenegraph associated
GraphicsInfo.GLSLGLSL or GLSL ES
GraphicsInfo.HLSLHLSL
GraphicsInfo.RhiShaderQShader

Note: The value is only up-to-date once the item is associated with a window. Bindings relying on the value have to keep this in mind since the value may change from GraphicsInfo.UnknownShadingLanguage to the actual value after component initialization is complete. This is particularly relevant for ShaderEffect items inside ShaderEffectSource items set as property values.

This property was introduced in QtQuick 2.8.

See also shaderCompilationType and shaderSourceType.


© 2024 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.