QSSGRhiContext Class
QSSGRhiContext. More...
Header: | #include <QSSGRhiContext> |
Since: | Qt 6.7 |
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) |
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.
© 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.