Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSSGRhiContext Class Reference

\inmodule QtQuick3D More...

#include <qssgrhicontext.h>

+ Collaboration diagram for QSSGRhiContext:

Public Member Functions

 QSSGRhiContext (QRhi *rhi)
 
 ~QSSGRhiContext ()
 
QRhirhi () const
 
bool isValid () const
 
QRhiRenderPassDescriptormainRenderPassDescriptor () const
 
QRhiCommandBuffercommandBuffer () const
 
QRhiRenderTargetrenderTarget () const
 
int mainPassSampleCount () const
 Returns the sample count used in the main render pass.
 
int mainPassViewCount () const
 Returns the multiview count used in the main render pass.
 
QRhiSamplersampler (const QSSGRhiSamplerDescription &samplerDescription)
 
void checkAndAdjustForNPoT (QRhiTexture *texture, QSSGRhiSamplerDescription *samplerDescription)
 Adjusts samplerDescription's tiling and filtering modes based on the pixel size of texture.
 
QRhiTexturedummyTexture (QRhiTexture::Flags flags, QRhiResourceUpdateBatch *rub, const QSize &size=QSize(64, 64), const QColor &fillColor=Qt::black, int arraySize=0)
 
QRhiCommandBuffer::BeginPassFlags commonPassFlags () const
 

Detailed Description

\inmodule QtQuick3D

Since
6.7

QSSGRhiContext.

Definition at line 97 of file qssgrhicontext.h.

Constructor & Destructor Documentation

◆ QSSGRhiContext()

QSSGRhiContext::QSSGRhiContext ( QRhi * rhi)
explicit

Definition at line 1029 of file qssgrhicontext.cpp.

References LightProbe, Q_ASSERT, Q_STATIC_ASSERT, and rhi().

+ Here is the call graph for this function:

◆ ~QSSGRhiContext()

QSSGRhiContext::~QSSGRhiContext ( )

Definition at line 1039 of file qssgrhicontext.cpp.

References d, and qDeleteAll().

+ Here is the call graph for this function:

Member Function Documentation

◆ checkAndAdjustForNPoT()

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 \l{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 \l{QRhi::NPOTTextureRepeat} are not supported by an OpenGL ES 2.0 or WebGL 1 implementation at run time.

Definition at line 1289 of file qssgrhicontext.cpp.

References QRhiSampler::ClampToEdge, d, QSize::height(), QRhiSampler::None, QRhi::NPOTTextureRepeat, qNextPowerOfTwo(), qWarning, and QSize::width().

Referenced by RenderHelpers::rhiPrepareRenderable(), and QSSGCustomMaterialSystem::rhiPrepareRenderable().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ commandBuffer()

◆ commonPassFlags()

QRhiCommandBuffer::BeginPassFlags QSSGRhiContext::commonPassFlags ( ) const
Returns
The recommended flags when calling QRhiCommandBuffer::beginPass().

Definition at line 1690 of file qssgrhicontext.cpp.

References QRhiCommandBuffer::DoNotTrackResourcesForCompute.

Referenced by QSSGRhiQuadRenderer::recordRenderQuadPass(), QSSGReflectionMapEntry::renderMips(), QQuick3DSceneRenderer::renderToRhiTexture(), RenderHelpers::rhiRenderReflectionMap(), and RenderHelpers::rhiRenderShadowMap().

+ Here is the caller graph for this function:

◆ dummyTexture()

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.

Definition at line 1380 of file qssgrhicontext.cpp.

References QSet< T >::constEnd(), QSet< T >::constFind(), d, QImage::Format_RGBA8888, it, QRhiResource::m_rhi, qWarning, and QRhiTexture::RGBA8.

Referenced by addOpaqueDepthPrePassBindings(), QSSGCustomMaterialSystem::rhiPrepareRenderable(), QSSGParticleRenderer::rhiPrepareRenderable(), and rhiPrepareResourcesForShadowMap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isValid()

bool QSSGRhiContext::isValid ( ) const
Returns
true if the renderer is initialized successfully.

Definition at line 1060 of file qssgrhicontext.cpp.

References d.

Referenced by QSSGRenderer::rhiPrepare(), and QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

◆ mainPassSampleCount()

int QSSGRhiContext::mainPassSampleCount ( ) const

Returns the sample count used in the main render pass.

Definition at line 1124 of file qssgrhicontext.cpp.

References d.

◆ mainPassViewCount()

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).

Definition at line 1139 of file qssgrhicontext.cpp.

References d.

Referenced by RenderHelpers::rhiPrepareAoTexture(), RenderHelpers::rhiPrepareDepthTexture(), rhiPrepareResourcesForShadowMap(), and RenderHelpers::rhiPrepareScreenTexture().

+ Here is the caller graph for this function:

◆ mainRenderPassDescriptor()

QRhiRenderPassDescriptor * QSSGRhiContext::mainRenderPassDescriptor ( ) const
Returns
The QRhiRenderPassDescriptor used by the main render pass of the Qt Quick 3D renderer.

Definition at line 1075 of file qssgrhicontext.cpp.

References d.

◆ renderTarget()

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 \l 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.

Definition at line 1110 of file qssgrhicontext.cpp.

References d.

◆ rhi()

QRhi * QSSGRhiContext::rhi ( ) const

◆ sampler()

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.

Definition at line 1252 of file qssgrhicontext.cpp.

References QRhiSampler::create(), d, info, QRhiResource::m_rhi, and qWarning.

Referenced by addDepthTextureBindings(), addOpaqueDepthPrePassBindings(), QSSGParticleRenderer::prepareParticlesForModel(), QQuick3DSceneRenderer::renderToRhiTexture(), RenderHelpers::rhiPrepareRenderable(), QSSGCustomMaterialSystem::rhiPrepareRenderable(), QSSGParticleRenderer::rhiPrepareRenderable(), rhiPrepareResourcesForShadowMap(), rhiPrepareSkyBox_helper(), RenderHelpers::rhiRenderAoTexture(), and RenderHelpers::rhiRenderShadowMap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: