PySide6.QtQuick.QSGRendererInterface¶
- class QSGRendererInterface¶
- An interface providing access to some of the graphics API specific internals of the scenegraph. More… - Synopsis¶- Virtual methods¶- def - getResource()
- def - graphicsApi()
- def - shaderType()
 - Static functions¶- def - isApiRhiBased()
 - Note - This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE - Detailed Description¶- Renderer interfaces allow accessing graphics API specific functionality in the scenegraph. Such internals are not typically exposed. However, when integrating custom rendering via - QSGRenderNodefor example, it may become necessary to query certain values, for instance the graphics device (e.g. the Direct3D or Vulkan device) that is used by the scenegraph.- QSGRendererInterface‘s functions have varying availability. API and language queries, such as,- graphicsApi()or- shaderType()are always available, meaning it is sufficient to construct a- QQuickWindowor- QQuickView, and the graphics API or shading language in use can be queried right after via- rendererInterface(). This guarantees that utilities like the GraphicsInfo QML type are able to report the correct values as early as possible, without having conditional property values - depending on for instance- shaderType()- evaluate to unexpected values.- Engine-specific accessors, like - getResource(), are however available only after the scenegraph is initialized. Additionally, there may be backend-specific limitations on when such functions can be called. The only way that is guaranteed to succeed is calling them when the rendering of a node (i.e. the preparation of the command list for the next frame) is active. In practice this typically means- render().- class GraphicsApi¶
- Constant - Description - QSGRendererInterface.Unknown - An unknown graphics API is in use - QSGRendererInterface.Software - The Qt Quick 2D Renderer is in use - QSGRendererInterface.OpenVG - OpenVG via EGL - QSGRendererInterface.OpenGL - OpenGL ES 2.0 or higher via a graphics abstraction layer. - QSGRendererInterface.Direct3D11 - Direct3D 11 via a graphics abstraction layer. - QSGRendererInterface.Direct3D12 - Direct3D 12 via a graphics abstraction layer. - QSGRendererInterface.Vulkan - Vulkan 1.0 via a graphics abstraction layer. - QSGRendererInterface.Metal - Metal via a graphics abstraction layer. - QSGRendererInterface.Null - Null (no output) via a graphics abstraction layer. 
 - class Resource¶
- Constant - Description - QSGRendererInterface.DeviceResource - The resource is a pointer to the graphics device, when applicable. For example, a - VkDevice *,- MTLDevice *or- ID3D11Device *. Note that with Vulkan the returned value is a pointer to the VkDevice, not the handle itself. This is because Vulkan handles may not be pointers, and may use a different size from the architecture’s pointer size so merely casting to/from- void *is wrong.- QSGRendererInterface.CommandQueueResource - The resource is a pointer to the graphics command queue used by the scenegraph, when applicable. For example, a - VkQueue *or- MTLCommandQueue *. Note that with Vulkan the returned value is a pointer to the VkQueue, not the handle itself.- QSGRendererInterface.CommandListResource - The resource is a pointer to the command list or buffer used by the scenegraph, when applicable. For example, a - VkCommandBuffer *or- MTLCommandBuffer *. This object has limited validity, and is only valid while the scene graph is preparing the next frame. Note that with Vulkan the returned value is a pointer to the VkCommandBuffer, not the handle itself.- QSGRendererInterface.PainterResource - The resource is a pointer to the active QPainter used by the scenegraph, when running with the software backend. - QSGRendererInterface.RhiResource - The resource is a pointer to the QRhi instance used by the scenegraph, when applicable. - QSGRendererInterface.RhiSwapchainResource - The resource is a pointer to a QRhiSwapchain instance that is associated with the window. The value is null when the window is used in combination with - QQuickRenderControl.- QSGRendererInterface.RhiRedirectCommandBuffer - The resource is a pointer to a QRhiCommandBuffer instance that is associated with the window and its - QQuickRenderControl. The value is null when the window is not associated with a- QQuickRenderControl.- QSGRendererInterface.RhiRedirectRenderTarget - The resource is a pointer to a QRhiTextureRenderTarget instance that is associated with the window and its - QQuickRenderControl. The value is null when the window is not associated with a- QQuickRenderControl. Note that the value always reflects the main texture render target and it does not depend on the Qt Quick scene, meaning it does not take any additional texture-targeting render passes generated by ShaderEffect or- QQuickItemlayers into account.- QSGRendererInterface.PhysicalDeviceResource - The resource is a pointer to the pysical device object used by the scenegraph, when applicable. For example, a - VkPhysicalDevice *. Note that with Vulkan the returned value is a pointer to the VkPhysicalDevice, not the handle itself.- QSGRendererInterface.OpenGLContextResource - The resource is a pointer to the QOpenGLContext used by the scenegraph (on the render thread), when applicable. - QSGRendererInterface.DeviceContextResource - The resource is a pointer to the device context used by the scenegraph, when applicable. For example, a - ID3D11DeviceContext *.- QSGRendererInterface.CommandEncoderResource - The resource is a pointer to the currently active render command encoder object used by the scenegraph, when applicable. For example, a - MTLRenderCommandEncoder *. This object has limited validity, and is only valid while the scene graph is recording a render pass for the next frame.- QSGRendererInterface.VulkanInstanceResource - The resource is a pointer to the QVulkanInstance used by the scenegraph, when applicable. - QSGRendererInterface.RenderPassResource - The resource is a pointer to the main render pass used by the scenegraph, describing the color and depth/stecil attachments and how they are used. For example, a - VkRenderPass *. Note that the value always reflects the main render target (either the on-screen window or the texture- QQuickRenderControlredirects to) and it does not depend on the Qt Quick scene, meaning it does not take any additional texture-targeting render passes generated by ShaderEffect or- QQuickItemlayers into account.- QSGRendererInterface.RedirectPaintDevice - The resource is a pointer to QPaintDevice instance that is associated with the window and its - QQuickRenderControl. The value is null when the window is not associated with a- QQuickRenderControl.- QSGRendererInterface.GraphicsQueueFamilyIndexResource - The resource is a pointer to the graphics queue family index used by the scenegraph, when applicable. With Vulkan, this is a pointer to a - uint32_tindex value.- QSGRendererInterface.GraphicsQueueIndexResource - The resource is a pointer to the graphics queue index (uint32_t) used by the scenegraph, when applicable. With Vulkan, this is a pointer to a - uint32_tindex value, which in practice is the index of the VkQueue reported for- CommandQueueResource.
 - class ShaderType¶
- Constant - Description - QSGRendererInterface.UnknownShadingLanguage - Not yet known due to no window and scenegraph associated - QSGRendererInterface.GLSL - GLSL or GLSL ES - QSGRendererInterface.HLSL - HLSL - QSGRendererInterface.RhiShader - Consumes QShader instances containing shader variants for multiple target languages and intermediate formats. 
 - class ShaderCompilationType¶
- Constant - Description - QSGRendererInterface.RuntimeCompilation - (inherits - enum.Flag) Runtime compilation of shader source code is supported- QSGRendererInterface.OfflineCompilation - Pre-compiled bytecode supported 
 - class ShaderSourceType¶
- Constant - Description - QSGRendererInterface.ShaderSourceString - (inherits - enum.Flag) Shader source can be provided as a string in the corresponding properties of ShaderEffect- QSGRendererInterface.ShaderSourceFile - Local or resource files containing shader source code are supported - QSGRendererInterface.ShaderByteCode - Local or resource files containing shader bytecode are supported 
 - class RenderMode¶
- Constant - Description - QSGRendererInterface.RenderMode2D - Normal 2D rendering - QSGRendererInterface.RenderMode2DNoDepthBuffer - Normal 2D rendering with depth buffer disabled - QSGRendererInterface.RenderMode3D - Scene is rendered as part of a 3D graph 
 - getResource(window, resource)¶
- Parameters:
- window – - QQuickWindow
- resource – - Resource
 
- Return type:
- void
 
 - Queries a graphics - resourcein- window. Returns null when the resource in question is not supported or not available.- When successful, the returned pointer is either a direct pointer to an interface, or a pointer to an opaque handle that needs to be dereferenced first (for example, - VkDevice dev = *static_cast<VkDevice *>(result)). The latter is necessary since such handles may have sizes different from a pointer.- Note - The ownership of the returned pointer is never transferred to the caller. - Note - This function must only be called on the render thread. - getResource(window, resource)
- Parameters:
- window – - QQuickWindow
- resource – str 
 
- Return type:
- void
 
 - Queries a graphics resource. - resourceis a backend-specific key. This allows supporting any future resources that are not listed in the Resource enum.- Note - The ownership of the returned pointer is never transferred to the caller. - Note - This function must only be called on the render thread. - abstract graphicsApi()¶
- Return type:
 
 - Returns the graphics API that is in use by the Qt Quick scenegraph. - Note - This function can be called on any thread. - static isApiRhiBased(api)¶
- Parameters:
- api – - GraphicsApi
- Return type:
- bool 
 
 - Returns true if - apiis based on a graphics abstraction layer (QRhi) instead of directly calling the native graphics API.- Note - This function can be called on any thread. - abstract shaderCompilationType()¶
- Return type:
- Combination of - ShaderCompilationType
 
 - Returns a bitmask of the shader compilation approaches supported by the Qt Quick backend the application is using. - abstract shaderSourceType()¶
- Return type:
- Combination of - ShaderSourceType
 
 - Returns a bitmask of the supported ways of providing shader sources in ShaderEffect items. - abstract shaderType()¶
- Return type:
 
 - Returns the shading language supported by the Qt Quick backend the application is using.