- Qt 6.9
- Qt Quick 3D
- C++ Classes
- QSSGRhiContext
- Qt Quick 3D | Commercial or GPLv3

# QSSGRhiContext Class

QSSGRhiContext. More...

Header: | `#include <QSSGRhiContext>`
Since: | Qt 6.7

- List of all members, including inherited members

## Public Functions

void | checkAndAdjustForNPoT(QRhiTexture *texture, QSSGRhiSamplerDescription *samplerDescription)
QRhiCommandBuffer * | commandBuffer() const
QRhiCommandBuffer::BeginPassFlags | commonPassFlags() const
QRhiTexture * | dummyTexture(QRhiTexture::Flags flags, QRhiResourceUpdateBatch *rub, const QSize &size = QSize(64, 64), const QColor &fillColor = Qt::black, int arraySize = 0)
bool | isValid() const
int | mainPassSampleCount() const
int | mainPassViewCount() const
QRhiRenderPassDescriptor * | mainRenderPassDescriptor() const
QRhiRenderTarget * | renderTarget() const
QRhi * | rhi() const
QRhiSampler * | sampler(const QSSGRhiSamplerDescription &samplerDescription)

## Detailed Description

## Member Function Documentation

### void QSSGRhiContext::checkAndAdjustForNPoT(QRhiTexture *texture, QSSGRhiSamplerDescription *samplerDescription)

Adjusts samplerDescription's tiling and filtering modes based on the pixel size of texture.

In most cases, samplerDescription is not changed. With older, legacy 3D APIs in use, there is however a chance that tiling modes such as QRhiSampler::Repeat are not supported for textures with a non-power-of-two width or height.

This convenience function helps creating robust applications that can still function even when features such as QRhi::NPOTTextureRepeat are not supported by an OpenGL ES 2.0 or WebGL 1 implementation at run time.

### QRhiCommandBuffer *QSSGRhiContext::commandBuffer() const

Returns The current frame's command buffer used by the Qt Quick 3D renderer.

### QRhiCommandBuffer::BeginPassFlags QSSGRhiContext::commonPassFlags() const

Returns The recommended flags when calling QRhiCommandBuffer::beginPass().

### QRhiTexture *QSSGRhiContext::dummyTexture(QRhiTexture::Flags flags, QRhiResourceUpdateBatch *rub, const QSize &size = QSize(64, 64), const QColor &fillColor = Qt::black, int arraySize = 0)

Returns a texture that has the specified flags and pixel size.

This is intended to efficiently gain access to a "dummy" texture filled with a given fillColor, and reused in various places in the rendering stack.

rub must be a valid QRhiResourceUpdateBatch since this function will create a new texture and generate content for it, if a suitable cached object is not found. The necessary upload operations are then enqueued on this given update batch.

When arraySize is 2 or more, a 2D texture array is returned.

The ownership of the returned texture stays with Qt Quick 3D.

### bool QSSGRhiContext::isValid() const

Returns true if the renderer is initialized successfully.

### int QSSGRhiContext::mainPassSampleCount() const

Returns the sample count used in the main render pass.

### int QSSGRhiContext::mainPassViewCount() const

Returns the multiview count used in the main render pass. This is either 2, when multiview rendering is in use, or 1 (no multiview).

### QRhiRenderPassDescriptor *QSSGRhiContext::mainRenderPassDescriptor() const

Returns The QRhiRenderPassDescriptor used by the main render pass of the Qt Quick 3D renderer.

### QRhiRenderTarget *QSSGRhiContext::renderTarget() const

Returns The render target the Qt Quick 3D renderer uses for its main render pass in the current frame.

This can effectively be a render target from a swapchain, if the View3D uses a renderMode other than Offscreen. More commonly, the render target refers to a texture (i.e., is a QRhiTextureRenderTarget), e.g. because the renderMode is the default Offscreen, or because post-processing effects are in use.

### QRhi *QSSGRhiContext::rhi() const

Returns The QRhi object used by the Qt Quick 3D renderer.

### QRhiSampler *QSSGRhiContext::sampler(const QSSGRhiSamplerDescription &samplerDescription)

Returns a sampler with the filter and tiling modes specified in samplerDescription.

The generated QRhiSampler objects are cached and reused. Thus this is a convenient way to gain access to a QRhiSampler with the given settings, without having to create a new, dedicated object all the time.

The ownership of the returned QRhiSampler stays with Qt Quick 3D.