Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSSGRenderer Class Reference

#include <qssgrenderer_p.h>

+ Collaboration diagram for QSSGRenderer:

Public Types

enum class  LightmapUVRasterizationShaderMode { Default , Uv , UvTangent }
 

Public Member Functions

 QSSGRenderer ()
 
 ~QSSGRenderer ()
 
QSSGShaderDefaultMaterialKeyPropertiesdefaultMaterialShaderKeyProperties ()
 
void setRenderContextInterface (QSSGRenderContextInterface *ctx)
 
bool prepareLayerForRender (QSSGRenderLayer &inLayer)
 
void rhiPrepare (QSSGRenderLayer &inLayer)
 
void rhiRender (QSSGRenderLayer &inLayer)
 
void cleanupResources (QList< QSSGRenderGraphObject * > &resources)
 
void cleanupResources (QSet< QSSGRenderGraphObject * > &resources)
 
QSSGLayerRenderDatagetOrCreateLayerRenderData (QSSGRenderLayer &layer)
 
void beginFrame (QSSGRenderLayer *layer)
 
void endFrame (QSSGRenderLayer *layer)
 
PickResultList syncPickAll (const QSSGRenderLayer &layer, QSSGBufferManager &bufferManager, const QSSGRenderRay &ray)
 
QSSGRenderPickResult syncPick (const QSSGRenderLayer &layer, QSSGBufferManager &bufferManager, const QSSGRenderRay &ray, QSSGRenderNode *target=nullptr)
 
bool isGlobalPickingEnabled () const
 
void setGlobalPickingEnabled (bool isEnabled)
 
QSSGRhiQuadRendererrhiQuadRenderer ()
 
QSSGRhiCubeRendererrhiCubeRenderer ()
 
void beginLayerRender (QSSGLayerRenderData &inLayer)
 
void endLayerRender ()
 
void addMaterialDirtyClear (QSSGRenderGraphObject *material)
 
QSSGRhiShaderPipelinePtr getShaderPipelineForDefaultMaterial (QSSGSubsetRenderable &inRenderable, const QSSGShaderFeatures &inFeatureSet)
 
QSSGLayerGlobalRenderProperties getLayerGlobalRenderProperties ()
 
QSSGRenderContextInterfacecontextInterface () const
 
bool rendererRequestsFrames () const
 
QSSGRhiShaderPipelinePtr getRhiCubemapShadowBlurXShader ()
 
QSSGRhiShaderPipelinePtr getRhiCubemapShadowBlurYShader ()
 
QSSGRhiShaderPipelinePtr getRhiGridShader ()
 
QSSGRhiShaderPipelinePtr getRhiOrthographicShadowBlurXShader ()
 
QSSGRhiShaderPipelinePtr getRhiOrthographicShadowBlurYShader ()
 
QSSGRhiShaderPipelinePtr getRhiSsaoShader ()
 
QSSGRhiShaderPipelinePtr getRhiSkyBoxCubeShader ()
 
QSSGRhiShaderPipelinePtr getRhiSkyBoxShader (QSSGRenderLayer::TonemapMode tonemapMode, bool isRGBE)
 
QSSGRhiShaderPipelinePtr getRhiSupersampleResolveShader ()
 
QSSGRhiShaderPipelinePtr getRhiProgressiveAAShader ()
 
QSSGRhiShaderPipelinePtr getRhiTexturedQuadShader ()
 
QSSGRhiShaderPipelinePtr getRhiParticleShader (QSSGRenderParticles::FeatureLevel featureLevel)
 
QSSGRhiShaderPipelinePtr getRhiSimpleQuadShader ()
 
QSSGRhiShaderPipelinePtr getRhiLightmapUVRasterizationShader (LightmapUVRasterizationShaderMode mode)
 
QSSGRhiShaderPipelinePtr getRhiLightmapDilateShader ()
 
QSSGRhiShaderPipelinePtr getRhiDebugObjectShader ()
 

Static Public Member Functions

static QSSGRhiShaderPipelinePtr generateRhiShaderPipelineImpl (QSSGSubsetRenderable &renderable, QSSGShaderLibraryManager &shaderLibraryManager, QSSGShaderCache &shaderCache, QSSGProgramGenerator &shaderProgramGenerator, QSSGShaderDefaultMaterialKeyProperties &shaderKeyProperties, const QSSGShaderFeatures &featureSet, QByteArray &shaderString)
 
static void setTonemapFeatures (QSSGShaderFeatures &features, QSSGRenderLayer::TonemapMode tonemapMode)
 

Static Protected Member Functions

static void getLayerHitObjectList (const QSSGRenderLayer &layer, QSSGBufferManager &bufferManager, const QSSGRenderRay &ray, bool inPickEverything, PickResultList &outIntersectionResult)
 
static void intersectRayWithSubsetRenderable (QSSGBufferManager &bufferManager, const QSSGRenderRay &inRay, const QSSGRenderNode &node, PickResultList &outIntersectionResultList)
 
static void intersectRayWithItem2D (const QSSGRenderRay &inRay, const QSSGRenderItem2D &item2D, PickResultList &outIntersectionResultList)
 

Friends

class QSSGRenderContextInterface
 
class QSSGLayerRenderData
 

Detailed Description

Definition at line 46 of file qssgrenderer_p.h.

Member Enumeration Documentation

◆ LightmapUVRasterizationShaderMode

Enumerator
Default 
Uv 
UvTangent 

Definition at line 116 of file qssgrenderer_p.h.

Constructor & Destructor Documentation

◆ QSSGRenderer()

QSSGRenderer::QSSGRenderer ( )
default

◆ ~QSSGRenderer()

QSSGRenderer::~QSSGRenderer ( )

Definition at line 127 of file qssgrenderer.cpp.

Member Function Documentation

◆ addMaterialDirtyClear()

void QSSGRenderer::addMaterialDirtyClear ( QSSGRenderGraphObject material)

Definition at line 241 of file qssgrenderer.cpp.

References QSet< T >::insert().

+ Here is the call graph for this function:

◆ beginFrame()

void QSSGRenderer::beginFrame ( QSSGRenderLayer layer)

Definition at line 313 of file qssgrenderer.cpp.

References QSSGRHICTX_STAT, and QSSGRenderContextInterface::rhiContext().

+ Here is the call graph for this function:

◆ beginLayerRender()

void QSSGRenderer::beginLayerRender ( QSSGLayerRenderData inLayer)

Definition at line 413 of file qssgrenderer.cpp.

Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().

+ Here is the caller graph for this function:

◆ cleanupResources() [1/2]

void QSSGRenderer::cleanupResources ( QList< QSSGRenderGraphObject * > &  resources)

Definition at line 221 of file qssgrenderer.cpp.

References cleanupResourcesImpl(), and QList< T >::clear().

+ Here is the call graph for this function:

◆ cleanupResources() [2/2]

void QSSGRenderer::cleanupResources ( QSet< QSSGRenderGraphObject * > &  resources)

Definition at line 227 of file qssgrenderer.cpp.

References cleanupResourcesImpl(), and QSet< T >::clear().

+ Here is the call graph for this function:

◆ contextInterface()

◆ defaultMaterialShaderKeyProperties()

QSSGShaderDefaultMaterialKeyProperties & QSSGRenderer::defaultMaterialShaderKeyProperties ( )
inline

◆ endFrame()

void QSSGRenderer::endFrame ( QSSGRenderLayer layer)

Definition at line 318 of file qssgrenderer.cpp.

References QSet< T >::clear(), QSSGRHICTX_STAT, and QSSGRenderContextInterface::rhiContext().

+ Here is the call graph for this function:

◆ endLayerRender()

void QSSGRenderer::endLayerRender ( )

Definition at line 417 of file qssgrenderer.cpp.

Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().

+ Here is the caller graph for this function:

◆ generateRhiShaderPipelineImpl()

◆ getLayerGlobalRenderProperties()

◆ getLayerHitObjectList()

void QSSGRenderer::getLayerHitObjectList ( const QSSGRenderLayer layer,
QSSGBufferManager bufferManager,
const QSSGRenderRay ray,
bool  inPickEverything,
PickResultList outIntersectionResult 
)
staticprotected

Definition at line 437 of file qssgrenderer.cpp.

References QVarLengthArray< T, Prealloc >::at(), dfs(), intersectRayWithSubsetRenderable(), QSSGRenderNode::Pickable, and QVLABaseBase::size().

Referenced by syncPick(), and syncPickAll().

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

◆ getOrCreateLayerRenderData()

QSSGLayerRenderData * QSSGRenderer::getOrCreateLayerRenderData ( QSSGRenderLayer layer)

Definition at line 233 of file qssgrenderer.cpp.

References QSSGLayerRenderData.

Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().

+ Here is the caller graph for this function:

◆ getRhiCubemapShadowBlurXShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiCubemapShadowBlurXShader ( )

Definition at line 30 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiCubemapShadowBlurYShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiCubemapShadowBlurYShader ( )

Definition at line 35 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiDebugObjectShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiDebugObjectShader ( )

Definition at line 184 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiGridShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiGridShader ( )

Definition at line 40 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiLightmapDilateShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiLightmapDilateShader ( )

Definition at line 179 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiLightmapUVRasterizationShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiLightmapUVRasterizationShader ( LightmapUVRasterizationShaderMode  mode)

Definition at line 166 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral, Uv, and UvTangent.

◆ getRhiOrthographicShadowBlurXShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiOrthographicShadowBlurXShader ( )

Definition at line 45 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiOrthographicShadowBlurYShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiOrthographicShadowBlurYShader ( )

Definition at line 50 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiParticleShader()

◆ getRhiProgressiveAAShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiProgressiveAAShader ( )

Definition at line 108 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiSimpleQuadShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSimpleQuadShader ( )

Definition at line 161 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiSkyBoxCubeShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSkyBoxCubeShader ( )

Definition at line 60 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiSkyBoxShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSkyBoxShader ( QSSGRenderLayer::TonemapMode  tonemapMode,
bool  isRGBE 
)

Definition at line 65 of file qssgrendererimplshaders_rhi.cpp.

References QSSGRenderLayer::Aces, QSSGRenderLayer::Filmic, QSSGRenderLayer::HejlDawson, QSSGRenderLayer::Linear, QSSGRenderLayer::None, QByteArrayLiteral, and QSSGRenderContextInterface::shaderCache().

+ Here is the call graph for this function:

◆ getRhiSsaoShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSsaoShader ( )

Definition at line 55 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiSupersampleResolveShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSupersampleResolveShader ( )

Definition at line 103 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getRhiTexturedQuadShader()

QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiTexturedQuadShader ( )

Definition at line 113 of file qssgrendererimplshaders_rhi.cpp.

References QByteArrayLiteral.

◆ getShaderPipelineForDefaultMaterial()

QSSGRhiShaderPipelinePtr QSSGRenderer::getShaderPipelineForDefaultMaterial ( QSSGSubsetRenderable inRenderable,
const QSSGShaderFeatures inFeatureSet 
)

◆ intersectRayWithItem2D()

void QSSGRenderer::intersectRayWithItem2D ( const QSSGRenderRay inRay,
const QSSGRenderItem2D item2D,
QSSGRenderer::PickResultList outIntersectionResultList 
)
staticprotected

Definition at line 556 of file qssgrenderer.cpp.

References d, QSSGRenderRay::direction, QVector3D::dotProduct(), QSSGRenderNode::getDirection(), QSSGRenderNode::getGlobalPos(), QSSGRenderNode::globalTransform, QMatrix4x4::inverted(), QSSGRenderRay::origin, QVarLengthArray< T, Prealloc >::push_back(), mat44::transform(), QVector3D::x(), and QVector3D::y().

Referenced by intersectRayWithSubsetRenderable().

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

◆ intersectRayWithSubsetRenderable()

◆ isGlobalPickingEnabled()

bool QSSGRenderer::isGlobalPickingEnabled ( ) const

Definition at line 380 of file qssgrenderer.cpp.

Referenced by QSSGLayerRenderData::prepareForRender().

+ Here is the caller graph for this function:

◆ prepareLayerForRender()

bool QSSGRenderer::prepareLayerForRender ( QSSGRenderLayer inLayer)

Definition at line 138 of file qssgrenderer.cpp.

References beginLayerRender(), endLayerRender(), getOrCreateLayerRenderData(), QSSGLayerRenderData::layerPrepResult, QSSGLayerRenderData::prepareForRender(), Q_ASSERT, and QSSGLayerRenderData::resetForFrame().

+ Here is the call graph for this function:

◆ rendererRequestsFrames()

bool QSSGRenderer::rendererRequestsFrames ( ) const

Definition at line 422 of file qssgrenderer.cpp.

◆ rhiCubeRenderer()

QSSGRhiCubeRenderer * QSSGRenderer::rhiCubeRenderer ( )

Definition at line 401 of file qssgrenderer.cpp.

References QSSGRenderContextInterface::rhiContext().

+ Here is the call graph for this function:

◆ rhiPrepare()

void QSSGRenderer::rhiPrepare ( QSSGRenderLayer inLayer)

◆ rhiQuadRenderer()

QSSGRhiQuadRenderer * QSSGRenderer::rhiQuadRenderer ( )

Definition at line 390 of file qssgrenderer.cpp.

References QSSGRenderContextInterface::rhiContext().

+ Here is the call graph for this function:

◆ rhiRender()

void QSSGRenderer::rhiRender ( QSSGRenderLayer inLayer)

Definition at line 178 of file qssgrenderer.cpp.

References QSSGLayerRenderData::activePasses, beginLayerRender(), QSSGLayerRenderData::camera, endLayerRender(), getOrCreateLayerRenderData(), QSSGLayerRenderData::layerPrepResult, and QSSG_ASSERT.

+ Here is the call graph for this function:

◆ setGlobalPickingEnabled()

void QSSGRenderer::setGlobalPickingEnabled ( bool  isEnabled)

Definition at line 385 of file qssgrenderer.cpp.

◆ setRenderContextInterface()

void QSSGRenderer::setRenderContextInterface ( QSSGRenderContextInterface ctx)

Definition at line 133 of file qssgrenderer.cpp.

◆ setTonemapFeatures()

void QSSGRenderer::setTonemapFeatures ( QSSGShaderFeatures features,
QSSGRenderLayer::TonemapMode  tonemapMode 
)
static

Definition at line 668 of file qssgrenderer.cpp.

References QSSGRenderLayer::Aces, QSSGShaderFeatures::AcesTonemapping, QSSGRenderLayer::Filmic, QSSGShaderFeatures::FilmicTonemapping, QSSGRenderLayer::HejlDawson, QSSGShaderFeatures::HejlDawsonTonemapping, QSSGRenderLayer::Linear, QSSGShaderFeatures::LinearTonemapping, and QSSGShaderFeatures::set().

Referenced by QSSGRenderEffect::finalizeShaders(), and QSSGLayerRenderData::prepareForRender().

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

◆ syncPick()

QSSGRenderPickResult QSSGRenderer::syncPick ( const QSSGRenderLayer layer,
QSSGBufferManager bufferManager,
const QSSGRenderRay ray,
QSSGRenderNode target = nullptr 
)

Definition at line 349 of file qssgrenderer.cpp.

References QSSGRenderNode::Active, getLayerHitObjectList(), intersectRayWithSubsetRenderable(), QSSGPickResultProcessResult::m_wasPickConsumed, and Q_ASSERT.

+ Here is the call graph for this function:

◆ syncPickAll()

QSSGRenderer::PickResultList QSSGRenderer::syncPickAll ( const QSSGRenderLayer layer,
QSSGBufferManager bufferManager,
const QSSGRenderRay ray 
)

Definition at line 335 of file qssgrenderer.cpp.

References QSSGRenderNode::Active, QVarLengthArray< T, Prealloc >::begin(), QVarLengthArray< T, Prealloc >::end(), getLayerHitObjectList(), and Q_ASSERT.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QSSGLayerRenderData

friend class QSSGLayerRenderData
friend

Definition at line 156 of file qssgrenderer_p.h.

Referenced by getOrCreateLayerRenderData().

◆ QSSGRenderContextInterface

friend class QSSGRenderContextInterface
friend

Definition at line 155 of file qssgrenderer_p.h.


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