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

#include <qssglayerrenderdata_p.h>

+ Collaboration diagram for QSSGLayerRenderData:

Public Types

enum  Enum { MAX_AA_LEVELS = 8 , MAX_TEMPORAL_AA_LEVELS = 2 }
 
using RenderableFilter = std::function< bool(QSSGModelContext *)>
 
typedef QVector< QSSGModelContext * > TModelContextPtrList
 
using RenderableNodeEntries = QVector< QSSGRenderableNodeEntry >
 
using RenderableItem2DEntries = QVector< QSSGRenderItem2D * >
 

Public Member Functions

 QSSGLayerRenderData (QSSGRenderLayer &inLayer, QSSGRenderer &inRenderer)
 
 ~QSSGLayerRenderData ()
 
QSSGShaderDefaultMaterialKey generateLightingKey (QSSGRenderDefaultMaterial::MaterialLighting inLightingType, const QSSGShaderLightListView &lights, bool receivesShadows=true)
 
void prepareImageForRender (QSSGRenderImage &inImage, QSSGRenderableImage::Type inMapType, QSSGRenderableImage *&ioFirstImage, QSSGRenderableImage *&ioNextImage, QSSGRenderableObjectFlags &ioFlags, QSSGShaderDefaultMaterialKey &ioGeneratedShaderKey, quint32 inImageIndex, QSSGRenderDefaultMaterial *inMaterial=nullptr)
 
void setVertexInputPresence (const QSSGRenderableObjectFlags &renderableFlags, QSSGShaderDefaultMaterialKey &key, QSSGRenderer *renderer)
 
bool prepareModelsForRender (const RenderableNodeEntries &renderableModels, QSSGLayerRenderPreparationResultFlags &ioFlags, const QSSGCameraRenderData &cameraData, RenderableFilter filter, float lodThreshold=0.0f)
 
bool prepareParticlesForRender (const RenderableNodeEntries &renderableParticles, const QSSGCameraRenderData &cameraData)
 
bool prepareItem2DsForRender (const QSSGRenderContextInterface &ctxIfc, const RenderableItem2DEntries &renderableItem2Ds)
 
void prepareResourceLoaders ()
 
void prepareForRender ()
 
void prepareReflectionProbesForRender ()
 
const QSSGRenderableObjectListgetSortedOpaqueRenderableObjects ()
 
const QSSGRenderableObjectListgetSortedTransparentRenderableObjects ()
 
const QSSGRenderableObjectListgetSortedScreenTextureRenderableObjects ()
 
const QVector< QSSGBakedLightingModel > & getSortedBakedLightingModels ()
 
const RenderableItem2DEntriesgetRenderableItem2Ds ()
 
const QSSGRenderableObjectListgetSortedRenderedDepthWriteObjects ()
 
const QSSGRenderableObjectListgetSortedrenderedOpaqueDepthPrepassObjects ()
 
void resetForFrame ()
 
void maybeBakeLightmap ()
 
QSSGFrameDatagetFrameData ()
 
QSSGShaderFeatures getShaderFeatures () const
 
QSSGRhiGraphicsPipelineState getPipelineState () const
 
QSSGRenderableNodeEntry getNode (QSSGNodeId id) const
 
QSSGRenderableNodeEntry takeNode (QSSGNodeId id)
 
QSSGRenderGraphObjectgetResource (QSSGResourceId id) const
 
QSSGRenderCameraactiveCamera () const
 
QSSGCameraRenderData getCameraRenderData (const QSSGRenderCamera *camera)
 
QSSGCameraRenderData getCameraRenderData (const QSSGRenderCamera *camera) const
 
void setLightmapTexture (const QSSGModelContext &modelContext, QRhiTexture *lightmapTexture)
 
QRhiTexturegetLightmapTexture (const QSSGModelContext &modelContext) const
 
void setBonemapTexture (const QSSGModelContext &modelContext, QRhiTexture *bonemapTexture)
 
QRhiTexturegetBonemapTexture (const QSSGModelContext &modelContext) const
 
QSSGRenderContextInterfacecontextInterface () const
 
const QSSGRenderShadowMapPtrrequestShadowMapManager ()
 
const QSSGRenderReflectionMapPtrrequestReflectionMapManager ()
 
const QSSGRenderShadowMapPtrgetShadowMapManager () const
 
const QSSGRenderReflectionMapPtrgetReflectionMapManager () const
 

Static Public Member Functions

static void prepareModelMeshes (const QSSGRenderContextInterface &contextInterface, RenderableNodeEntries &renderableModels)
 
static void prepareModelBoneTextures (const QSSGRenderContextInterface &contextInterface, const RenderableNodeEntries &renderableModels)
 
static qsizetype frustumCulling (const QSSGClippingFrustum &clipFrustum, const QSSGRenderableObjectList &renderables, QSSGRenderableObjectList &visibleRenderables)
 
static qsizetype frustumCullingInline (const QSSGClippingFrustum &clipFrustum, QSSGRenderableObjectList &renderables)
 

Public Attributes

ShadowMapPass shadowMapPass
 
ReflectionMapPass reflectionMapPass
 
ZPrePassPass zPrePassPass
 
SSAOMapPass ssaoMapPass
 
DepthMapPass depthMapPass
 
ScreenMapPass screenMapPass
 
UserPass userPasses [USERPASSES]
 
MainPass mainPass
 
QVarLengthArray< QSSGRenderPass *, 12 > activePasses
 
QSSGRenderLayerlayer
 
QSSGRendererrenderer = nullptr
 
RenderableNodeEntries renderableModels
 
RenderableNodeEntries renderableParticles
 
QVector< QSSGRenderItem2D * > renderableItem2Ds
 
QVector< QSSGRenderCamera * > cameras
 
QVector< QSSGRenderLight * > lights
 
QVector< QSSGRenderReflectionProbe * > reflectionProbes
 
QSSGRenderCameracamera = nullptr
 
QSSGShaderLightList globalLights
 
QSSGRenderableObjectList opaqueObjects
 
QSSGRenderableObjectList transparentObjects
 
QSSGRenderableObjectList screenTextureObjects
 
QVector< QSSGBakedLightingModelbakedLightingModels
 
QSSGRenderableObjectList renderedOpaqueObjects
 
QSSGRenderableObjectList renderedTransparentObjects
 
QSSGRenderableObjectList renderedScreenTextureObjects
 
QSSGRenderableObjectList renderedOpaqueDepthPrepassObjects
 
QSSGRenderableObjectList renderedDepthWriteObjects
 
QVector< QSSGBakedLightingModelrenderedBakedLightingModels
 
RenderableItem2DEntries renderedItem2Ds
 
std::optional< QSSGClippingFrustumclippingFrustum
 
std::optional< QSSGLayerRenderPreparationResultlayerPrepResult
 
std::optional< QSSGCameraRenderDatacameraData
 
TModelContextPtrList modelContexts
 
bool tooManyLightsWarningShown = false
 
bool tooManyShadowLightsWarningShown = false
 
QSSGLightmapperm_lightmapper = nullptr
 
bool interactiveLightmapBakingRequested = false
 
QSSGLightmapper::Callback lightmapBakingOutputCallback
 
bool plainSkyBoxPrepared = false
 

Static Public Attributes

static constexpr size_t USERPASSES = 2
 

Friends

class QSSGRenderer
 
class QSSGFrameData
 
class QSSGModelHelpers
 
class QSSGRenderHelpers
 

Detailed Description

Definition at line 171 of file qssglayerrenderdata_p.h.

Member Typedef Documentation

◆ RenderableFilter

Definition at line 179 of file qssglayerrenderdata_p.h.

◆ RenderableItem2DEntries

◆ RenderableNodeEntries

◆ TModelContextPtrList

Member Enumeration Documentation

◆ Enum

Enumerator
MAX_AA_LEVELS 
MAX_TEMPORAL_AA_LEVELS 

Definition at line 174 of file qssglayerrenderdata_p.h.

Constructor & Destructor Documentation

◆ QSSGLayerRenderData()

QSSGLayerRenderData::QSSGLayerRenderData ( QSSGRenderLayer inLayer,
QSSGRenderer inRenderer 
)

Definition at line 2206 of file qssglayerrenderdata.cpp.

◆ ~QSSGLayerRenderData()

QSSGLayerRenderData::~QSSGLayerRenderData ( )

Definition at line 2213 of file qssglayerrenderdata.cpp.

References activePasses, and m_lightmapper.

Member Function Documentation

◆ activeCamera()

QSSGRenderCamera * QSSGLayerRenderData::activeCamera ( ) const
inline

Definition at line 315 of file qssglayerrenderdata_p.h.

References camera.

◆ contextInterface()

QSSGRenderContextInterface * QSSGLayerRenderData::contextInterface ( ) const

Definition at line 2464 of file qssglayerrenderdata.cpp.

References QSSGRenderer::contextInterface(), and renderer.

Referenced by prepareImageForRender(), prepareModelMeshes(), prepareModelsForRender(), prepareParticlesForRender(), and prepareResourceLoaders().

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

◆ frustumCulling()

qsizetype QSSGLayerRenderData::frustumCulling ( const QSSGClippingFrustum clipFrustum,
const QSSGRenderableObjectList renderables,
QSSGRenderableObjectList visibleRenderables 
)
static

Definition at line 85 of file qssglayerrenderdata.cpp.

References QList< T >::at(), QList< T >::clear(), QSSGClippingFrustum::intersectsWith(), QList< T >::isEmpty(), QList< T >::push_back(), QSSG_ASSERT, QList< T >::reserve(), and QList< T >::size().

Referenced by MainPass::renderPrep().

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

◆ frustumCullingInline()

qsizetype QSSGLayerRenderData::frustumCullingInline ( const QSSGClippingFrustum clipFrustum,
QSSGRenderableObjectList renderables 
)
static

Definition at line 99 of file qssglayerrenderdata.cpp.

References QList< T >::at(), QSSGClippingFrustum::intersectsWith(), QList< T >::size(), and QList< T >::swapItemsAt().

+ Here is the call graph for this function:

◆ generateLightingKey()

◆ getBonemapTexture()

QRhiTexture * QSSGLayerRenderData::getBonemapTexture ( const QSSGModelContext modelContext) const

Definition at line 1044 of file qssglayerrenderdata.cpp.

References QHash< Key, T >::cend(), QHash< Key, T >::constFind(), it, QSSGModelContext::model, ret, and QSSGRenderModel::usesBoneTexture().

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

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

◆ getCameraRenderData() [1/2]

QSSGCameraRenderData QSSGLayerRenderData::getCameraRenderData ( const QSSGRenderCamera camera)

Definition at line 2442 of file qssglayerrenderdata.cpp.

References camera, and getCameraDataImpl().

+ Here is the call graph for this function:

◆ getCameraRenderData() [2/2]

QSSGCameraRenderData QSSGLayerRenderData::getCameraRenderData ( const QSSGRenderCamera camera) const

Definition at line 2453 of file qssglayerrenderdata.cpp.

References camera, cameraData, and getCameraDataImpl().

+ Here is the call graph for this function:

◆ getFrameData()

QSSGFrameData & QSSGLayerRenderData::getFrameData ( )

Definition at line 2392 of file qssglayerrenderdata.cpp.

◆ getLightmapTexture()

QRhiTexture * QSSGLayerRenderData::getLightmapTexture ( const QSSGModelContext modelContext) const

Definition at line 1028 of file qssglayerrenderdata.cpp.

References QHash< Key, T >::cend(), QHash< Key, T >::constFind(), QSSGRenderModel::hasLightmap(), it, QSSGModelContext::model, and ret.

Referenced by QSSGCustomMaterialSystem::updateUniformsForCustomMaterial(), and updateUniformsForDefaultMaterial().

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

◆ getNode()

QSSGRenderableNodeEntry QSSGLayerRenderData::getNode ( QSSGNodeId  id) const

Definition at line 2397 of file qssglayerrenderdata.cpp.

References QList< T >::cbegin(), QList< T >::cend(), e, renderableModels, and ret.

+ Here is the call graph for this function:

◆ getPipelineState()

QSSGRhiGraphicsPipelineState QSSGLayerRenderData::getPipelineState ( ) const
inline

Definition at line 303 of file qssglayerrenderdata_p.h.

◆ getReflectionMapManager()

const QSSGRenderReflectionMapPtr & QSSGLayerRenderData::getReflectionMapManager ( ) const
inline

Definition at line 333 of file qssglayerrenderdata_p.h.

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

+ Here is the caller graph for this function:

◆ getRenderableItem2Ds()

const QSSGLayerRenderData::RenderableItem2DEntries & QSSGLayerRenderData::getRenderableItem2Ds ( )

Definition at line 359 of file qssglayerrenderdata.cpp.

References QList< T >::begin(), camera, QVector3D::dotProduct(), QList< T >::end(), QList< T >::isEmpty(), renderableItem2Ds, and renderedItem2Ds.

+ Here is the call graph for this function:

◆ getResource()

QSSGRenderGraphObject * QSSGLayerRenderData::getResource ( QSSGResourceId  id) const

Definition at line 2433 of file qssglayerrenderdata.cpp.

References ret.

◆ getShaderFeatures()

QSSGShaderFeatures QSSGLayerRenderData::getShaderFeatures ( ) const
inline

Definition at line 302 of file qssglayerrenderdata_p.h.

Referenced by rhiPrepareResourcesForReflectionMap().

+ Here is the caller graph for this function:

◆ getShadowMapManager()

const QSSGRenderShadowMapPtr & QSSGLayerRenderData::getShadowMapManager ( ) const
inline

Definition at line 332 of file qssglayerrenderdata_p.h.

Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), and QQuick3DSceneRenderer::releaseCachedResources().

+ Here is the caller graph for this function:

◆ getSortedBakedLightingModels()

const QVector< QSSGBakedLightingModel > & QSSGLayerRenderData::getSortedBakedLightingModels ( )

Definition at line 345 of file qssglayerrenderdata.cpp.

References bakedLightingModels, camera, QSSGRenderLayer::EnableDepthTest, nearestToFurthestCompare(), and renderedBakedLightingModels.

Referenced by maybeBakeLightmap().

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

◆ getSortedOpaqueRenderableObjects()

const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedOpaqueRenderableObjects ( )

Definition at line 301 of file qssglayerrenderdata.cpp.

References QList< T >::begin(), camera, QList< T >::empty(), QSSGRenderLayer::EnableDepthTest, QList< T >::end(), nearestToFurthestCompare(), opaqueObjects, and renderedOpaqueObjects.

+ Here is the call graph for this function:

◆ getSortedRenderedDepthWriteObjects()

const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedRenderedDepthWriteObjects ( )

Definition at line 435 of file qssglayerrenderdata.cpp.

References renderedDepthWriteObjects.

◆ getSortedrenderedOpaqueDepthPrepassObjects()

const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedrenderedOpaqueDepthPrepassObjects ( )

Definition at line 441 of file qssglayerrenderdata.cpp.

References renderedOpaqueDepthPrepassObjects.

◆ getSortedScreenTextureRenderableObjects()

const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedScreenTextureRenderableObjects ( )

Definition at line 333 of file qssglayerrenderdata.cpp.

References QList< T >::begin(), camera, QList< T >::empty(), QList< T >::end(), furthestToNearestCompare(), renderedScreenTextureObjects, and screenTextureObjects.

+ Here is the call graph for this function:

◆ getSortedTransparentRenderableObjects()

const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedTransparentRenderableObjects ( )

Definition at line 315 of file qssglayerrenderdata.cpp.

References QList< T >::append(), QList< T >::begin(), camera, QList< T >::empty(), QSSGRenderLayer::EnableDepthTest, QList< T >::end(), furthestToNearestCompare(), opaqueObjects, renderedTransparentObjects, and transparentObjects.

+ Here is the call graph for this function:

◆ maybeBakeLightmap()

void QSSGLayerRenderData::maybeBakeLightmap ( )

Definition at line 2344 of file qssglayerrenderdata.cpp.

References QSSGLightmapper::add(), QCoreApplication::arguments(), QSSGLightmapper::bake(), cb, QSSGRhiContext::commandBuffer(), QSSGRenderer::contextInterface(), getSortedBakedLightingModels(), i, interactiveLightmapBakingRequested, QMetaObject::invokeMethod(), lightmapBakingOutputCallback, m_lightmapper, qApp, qDebug, qEnvironmentVariableIntValue(), QStringLiteral, renderer, QSSGLightmapper::reset(), QSSGRenderContextInterface::rhiContext(), QSSGLightmapper::setOptions(), and QSSGLightmapper::setOutputCallback().

Referenced by QSSGRenderer::rhiPrepare().

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

◆ prepareForRender()

void QSSGLayerRenderData::prepareForRender ( )

Definition at line 1734 of file qssglayerrenderdata.cpp.

References QSSGRenderNode::Active, activePasses, QVarLengthArray< T, Prealloc >::at(), QSSGRenderContextInterface::bufferManager(), camera, cameraData, cameras, QVarLengthArray< T, Prealloc >::cbegin(), QVarLengthArray< T, Prealloc >::cend(), QList< T >::clear(), QVarLengthArray< T, Prealloc >::clear(), QSSGRenderer::contextInterface(), QSSGRenderLayer::Count, CUBE, depthMapPass, direction, QSSGRenderCamera::dpr, QSSGRenderContextInterface::dpr(), effectiveMaxLightCount(), UserPass::extensions, QSSGLayerRenderPreparationResult::flags, QSSGRenderNode::getGlobalState(), QSSGRenderNode::getScalingCorrectDirection(), globalLights, QRect::height(), i, QSSGShaderFeatures::IblOrientation, QMatrix4x4::inverted(), QSSGRenderCamera::isDirty(), QVarLengthArray< T, Prealloc >::isEmpty(), QList< T >::isEmpty(), QSSGRenderer::isGlobalPickingEnabled(), QSSGRenderImageTextureFlags::isRgbe8(), it, iter, layerPrepResult, QSSGRenderCamera::levelOfDetailPixelThreshold, QSSGShaderLight::light, QSSGShaderFeatures::LightProbe, lights, QSSGRenderableNodeEntry::lights, QSSGRenderLight::m_castShadow, QSSGCameraGlobalCalculationResult::m_computeFrustumSucceeded, QSSGRenderImageTexture::m_flags, QSSGRenderLight::m_fullyBaked, QSSGRenderLight::m_scope, QSSGRenderLight::m_shadowMapRes, QSSGRenderImageTexture::m_texture, QSSGCameraGlobalCalculationResult::m_wasDirty, mainPass, maybeQueueNodeForRender(), QSSGBufferManager::MipModeBsdf, modelContexts, QSSGRenderLayer::MSAA, QSSGRenderableNodeEntry::node, QSSGRenderLayer::Overlay, prepareItem2DsForRender(), prepareModelsForRender(), prepareParticlesForRender(), prepareReflectionProbesForRender(), prepareResourceLoaders(), QSSGRenderLayer::ProgressiveAA, QSSGRenderCamera::projection, QVarLengthArray< T, Prealloc >::push_back(), QList< T >::push_back(), Q_STATIC_ASSERT, qCCritical, qCDebug, qMin(), QSSG_ASSERT, QSSG_MAX_NUM_LIGHTS, QSSG_MAX_NUM_SHADOW_MAPS, QSSG_REDUCED_MAX_NUM_LIGHTS, qWarning, REDUCED_MAX_LIGHT_COUNT_THRESHOLD_BYTES, QSSGShaderFeatures::ReduceMaxNumLights, reflectionMapPass, reflectionProbes, renderableItem2Ds, renderableModels, renderableParticles, renderedDepthWriteObjects, renderedOpaqueDepthPrepassObjects, renderer, requestShadowMapManager(), QSSGLayerRenderPreparationResultFlags::requiresDepthTexture(), QSSGLayerRenderPreparationResultFlags::requiresScreenTexture(), QSSGLayerRenderPreparationResultFlags::requiresShadowMapPass(), QSSGLayerRenderPreparationResultFlags::requiresSsaoPass(), QList< T >::resize(), QRhiTexture::RGBA16F, QSSGRenderTextureFormat::RGBA16F, QSSGRenderTextureFormat::RGBE8, QSSGShaderFeatures::RGBELightProbe, QSSGRenderContextInterface::rhiContext(), s_ProgressiveAAVertexOffsets, QSSGRhiGraphicsPipelineState::scissor, QSSGRhiGraphicsPipelineState::scissorEnable, scopeLight(), screenMapPass, QSSGShaderFeatures::set(), QSSGLayerRenderPreparationResultFlags::setLayerDataDirty(), QSSGLayerRenderPreparationResultFlags::setRequiresDepthTexture(), QSSGLayerRenderPreparationResultFlags::setRequiresShadowMapPass(), QSSGLayerRenderPreparationResultFlags::setRequiresSsaoPass(), QSSGRenderer::setTonemapFeatures(), QSSGLayerRenderPreparationResult::setupCameraForRender(), QSSGLayerRenderPreparationResultFlags::setWasDirty(), shadowMapPass, QList< T >::size(), QVLABaseBase::size(), QSSGShaderFeatures::Ssao, ssaoMapPass, QSSGShaderFeatures::Ssm, tooManyLightsWarningShown, tooManyShadowLightsWarningShown, QSSGRenderGraphObject::type, QSSGRenderLayer::Underlay, QSSGRenderTextureFormat::Unknown, updateDirtySkeletons(), USERPASSES, userPasses, QSSGRenderContextInterface::viewport(), QSSGRhiGraphicsPipelineState::viewport, VSM, QRect::width(), QRect::x(), QVector2D::x(), QRect::y(), QVector2D::y(), and zPrePassPass.

Referenced by QSSGRenderer::prepareLayerForRender().

+ Here is the caller graph for this function:

◆ prepareImageForRender()

void QSSGLayerRenderData::prepareImageForRender ( QSSGRenderImage inImage,
QSSGRenderableImage::Type  inMapType,
QSSGRenderableImage *&  ioFirstImage,
QSSGRenderableImage *&  ioNextImage,
QSSGRenderableObjectFlags ioFlags,
QSSGShaderDefaultMaterialKey ioGeneratedShaderKey,
quint32  inImageIndex,
QSSGRenderDefaultMaterial inMaterial = nullptr 
)

Definition at line 499 of file qssglayerrenderdata.cpp.

References QSSGRenderDefaultMaterial::A, QSSGRenderDefaultMaterial::B, QSSGRenderContextInterface::bufferManager(), QSSGRenderDefaultMaterial::clearcoatChannel, QSSGShaderDefaultMaterialKeyProperties::ClearcoatMap, QSSGRenderDefaultMaterial::clearcoatRoughnessChannel, QSSGShaderDefaultMaterialKeyProperties::ClearcoatRoughnessMap, QSSGRenderImage::clearDirty(), contextInterface(), QSSGRenderer::contextInterface(), QSSGRenderer::defaultMaterialShaderKeyProperties(), Dirty, QSSGRenderImage::Environment, QSSGRenderDefaultMaterial::G, HasTransparency, QSSGRenderDefaultMaterial::heightChannel, QSSGShaderDefaultMaterialKeyProperties::HeightMap, QSSGRenderImage::isImageTransformIdentity(), QSSGRenderImage::LightProbe, QSSGShaderDefaultMaterialKeyProperties::m_imageMaps, QSSGRenderImage::m_indexUV, QSSGRenderImage::m_mappingMode, QSSGRenderableImage::m_nextImage, QSSGShaderDefaultMaterialKeyProperties::m_textureChannels, QSSGRenderDefaultMaterial::metalnessChannel, QSSGShaderDefaultMaterialKeyProperties::MetalnessMap, QSSGRenderImage::Normal, QSSGRenderDefaultMaterial::occlusionChannel, QSSGShaderDefaultMaterialKeyProperties::OcclusionMap, QSSGRenderDefaultMaterial::opacityChannel, QSSGShaderDefaultMaterialKeyProperties::OpacityMap, QSSGRenderDefaultMaterial::R, QRhiTexture::R8, QRhiTexture::RED_OR_ALPHA8, QRhi::RedOrAlpha8IsRed, renderer, QSSGRenderContextInterface::rhiContext(), QSSGRenderDefaultMaterial::roughnessChannel, QSSGShaderDefaultMaterialKeyProperties::RoughnessMap, QSSGShaderKeyImageMap::setEnabled(), QSSGShaderKeyImageMap::setEnvMap(), QSSGShaderKeyImageMap::setIdentityTransform(), QSSGShaderKeyImageMap::setLightProbe(), QSSGShaderKeyTextureChannel::setTextureChannel(), QSSGShaderKeyImageMap::setUsesUV1(), QSSGShaderDefaultMaterialKeyProperties::SingleChannelImagesFirst, QSSGRenderDefaultMaterial::thicknessChannel, QSSGShaderDefaultMaterialKeyProperties::ThicknessMap, QSSGRenderDefaultMaterial::translucencyChannel, QSSGShaderDefaultMaterialKeyProperties::TranslucencyMap, QSSGRenderDefaultMaterial::transmissionChannel, and QSSGShaderDefaultMaterialKeyProperties::TransmissionMap.

+ Here is the call graph for this function:

◆ prepareItem2DsForRender()

bool QSSGLayerRenderData::prepareItem2DsForRender ( const QSSGRenderContextInterface ctxIfc,
const RenderableItem2DEntries renderableItem2Ds 
)

Definition at line 1580 of file qssglayerrenderdata.cpp.

References cameraData, renderableItem2Ds, and QSSGRenderContextInterface::rhiContext().

Referenced by prepareForRender().

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

◆ prepareModelBoneTextures()

static void QSSGLayerRenderData::prepareModelBoneTextures ( const QSSGRenderContextInterface contextInterface,
const RenderableNodeEntries renderableModels 
)
static

◆ prepareModelMeshes()

void QSSGLayerRenderData::prepareModelMeshes ( const QSSGRenderContextInterface contextInterface,
RenderableNodeEntries renderableModels 
)
static

Definition at line 955 of file qssglayerrenderdata.cpp.

References contextInterface(), and renderableModels.

+ Here is the call graph for this function:

◆ prepareModelsForRender()

bool QSSGLayerRenderData::prepareModelsForRender ( const RenderableNodeEntries renderableModels,
QSSGLayerRenderPreparationResultFlags ioFlags,
const QSSGCameraRenderData cameraData,
RenderableFilter  filter,
float  lodThreshold = 0.0f 
)

Definition at line 1059 of file qssglayerrenderdata.cpp.

References QSSGRhiInputAssemblerState::BinormalSemantic, Qt::blue, QSSGRenderSubset::bounds, QSSGRenderContextInterface::bufferManager(), QSSGRenderableObject::camdistSq, camera, cameraData, QSSGBounds3::center(), QSSGRenderImage::clearDirty(), colors, QSSGRhiInputAssemblerState::ColorSemantic, QSSGMesh::Mesh::IndexBuffer::componentType, QByteArray::constData(), contextInterface(), QSSGRenderer::contextInterface(), QSSGRenderSubset::count, QSSGRenderContextInterface::customMaterialSystem(), Qt::cyan, Qt::darkBlue, Qt::darkCyan, Qt::darkGray, Qt::darkGreen, Qt::darkMagenta, Qt::darkRed, Qt::darkYellow, QSSGMesh::Mesh::VertexBuffer::data, QSSGMesh::Mesh::IndexBuffer::data, QSSGRenderContextInterface::debugDrawSystem(), QSSGRenderer::defaultMaterialShaderKeyProperties(), QSSGDefaultMaterialPreparationResult::dirty, QSSGPlane::distance(), QSSGMesh::Mesh::VertexBuffer::entries, QSSGDefaultMaterialPreparationResult::firstImage, getCameraDistanceSq(), QSSGRenderNode::getGlobalPos(), QSSGRenderCamera::getLevelOfDetailMultiplier(), QSSGMesh::MeshInternal::getNormalAttrName(), QSSGMesh::MeshInternal::getPositionAttrName(), mat44::getScale(), QSSGRenderNode::getScalingCorrectDirection(), QSSGBounds3::getSupport(), Qt::green, QSSGRenderInstanceTable::hasTransparency(), QSSGRenderModel::hasTransparency, HasTransparency, i, QSSGRenderSubset::ia, QSSGMesh::Mesh::indexBuffer(), QSSGRhiInputAssemblerState::inputs, QSSGRenderModel::instanceTable, QRhi::Instancing, QSSGRenderModel::instancing(), QRhi::IntAttributes, QSSGRenderableObjectFlags::isDirty(), QByteArray::isEmpty(), QSSGMesh::Mesh::isValid(), QSSGRhiInputAssemblerState::JointSemantic, lights, QSSGRenderSubset::lodCount(), QSSGRenderSubset::lodOffset(), QSSGRenderSubset::lods, QSSGShaderDefaultMaterialKeyProperties::m_blendParticles, QSSGShaderDefaultMaterialKeyProperties::m_boneCount, QSSGRenderCustomMaterial::m_iblProbe, QSSGShaderDefaultMaterialKeyProperties::m_targetBinormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetColorOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetCount, QSSGShaderDefaultMaterialKeyProperties::m_targetNormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetPositionOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTangentOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord0Offset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord1Offset, QSSGRenderImageTexture::m_texture, QSSGShaderDefaultMaterialKeyProperties::m_usesFloatJointIndices, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, Qt::magenta, QSSGDefaultMaterialPreparationResult::materialKey, model, QSSGModelContext::model, modelContexts, QVector3D::normalized(), QSSGModelContext::normalMatrix, QSSGRhiInputAssemblerState::NormalSemantic, QSSGRenderSubset::offset, QSSGDefaultMaterialPreparationResult::opacity, opaqueObjects, QSSGRenderModel::particleBuffer, QRhiGraphicsPipeline::Points, position(), QSSGRhiInputAssemblerState::PositionSemantic, QList< T >::push_back(), Q_UNLIKELY, qMax(), QSSG_ASSERT_X, Qt::red, QSSGDefaultMaterialPreparationResult::renderableFlags, renderableModels, renderer, QSSGRenderSubset::rhi, QSSGRenderContextInterface::rhiContext(), screenTextureObjects, sem, setBonemapTexture(), QSSGRenderableObjectFlags::setCastsReflections(), QSSGRenderableObjectFlags::setCastsShadows(), QSSGRenderableObjectFlags::setHasAttributeBinormal(), QSSGRenderableObjectFlags::setHasAttributeColor(), QSSGRenderableObjectFlags::setHasAttributeJointAndWeight(), QSSGRenderableObjectFlags::setHasAttributeMorphTarget(), QSSGRenderableObjectFlags::setHasAttributeNormal(), QSSGRenderableObjectFlags::setHasAttributePosition(), QSSGRenderableObjectFlags::setHasAttributeTangent(), QSSGRenderableObjectFlags::setHasAttributeTexCoord0(), QSSGRenderableObjectFlags::setHasAttributeTexCoord1(), QSSGRenderableObjectFlags::setHasAttributeTexCoordLightmap(), setLightmapTexture(), QSSGRenderableObjectFlags::setPointsTopology(), QSSGRenderableObjectFlags::setReceivesReflections(), QSSGRenderableObjectFlags::setReceivesShadows(), QSSGRenderableObjectFlags::setRendersWithLightmap(), QSSGRenderableObjectFlags::setUsedInBakedLighting(), QSSGShaderKeyBoolean::setValue(), QSSGShaderKeyUnsigned< TBitWidth >::setValue(), QSSGDataRef< T >::size(), QSSGMesh::Mesh::VertexBuffer::stride, QSSGRenderMesh::subsets, QSSGModelContext::subsets, QSSGRhiInputAssemblerState::TangentSemantic, QSSGRhiInputAssemblerState::targetCount, QSSGRhiInputAssemblerState::targetOffsets, QSSGRenderSubset::targetsTexture, QSSGRhiInputAssemblerState::TexCoord0Semantic, QSSGRhiInputAssemblerState::TexCoord1Semantic, QSSGRhiInputAssemblerState::TexCoordLightmapSemantic, QSSGRhiInputAssemblerState::topology, mat33::transform(), QSSGBounds3::transform(), mat44::transform(), transparentObjects, QSSGRenderGraphObject::type, QSSGMesh::Mesh::vertexBuffer(), QSSGRhiInputAssemblerState::WeightSemantic, Qt::white, and Qt::yellow.

Referenced by prepareForRender().

+ Here is the caller graph for this function:

◆ prepareParticlesForRender()

bool QSSGLayerRenderData::prepareParticlesForRender ( const RenderableNodeEntries renderableParticles,
const QSSGCameraRenderData cameraData 
)

◆ prepareReflectionProbesForRender()

◆ prepareResourceLoaders()

void QSSGLayerRenderData::prepareResourceLoaders ( )

Definition at line 1600 of file qssglayerrenderdata.cpp.

References QSSGRenderContextInterface::bufferManager(), contextInterface(), QSSGRenderer::contextInterface(), and renderer.

Referenced by prepareForRender().

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

◆ requestReflectionMapManager()

const QSSGRenderReflectionMapPtr & QSSGLayerRenderData::requestReflectionMapManager ( )

Definition at line 2476 of file qssglayerrenderdata.cpp.

References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.

Referenced by prepareReflectionProbesForRender().

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

◆ requestShadowMapManager()

const QSSGRenderShadowMapPtr & QSSGLayerRenderData::requestShadowMapManager ( )

Definition at line 2469 of file qssglayerrenderdata.cpp.

References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.

Referenced by prepareForRender().

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

◆ resetForFrame()

void QSSGLayerRenderData::resetForFrame ( )

Definition at line 2141 of file qssglayerrenderdata.cpp.

References activePasses, bakedLightingModels, camera, cameraData, QList< T >::clear(), QVarLengthArray< T, Prealloc >::clear(), QHash< Key, T >::clear(), clippingFrustum, globalLights, layerPrepResult, modelContexts, opaqueObjects, plainSkyBoxPrepared, renderableItem2Ds, renderedBakedLightingModels, renderedDepthWriteObjects, renderedItem2Ds, renderedOpaqueDepthPrepassObjects, renderedOpaqueObjects, renderedScreenTextureObjects, renderedTransparentObjects, screenTextureObjects, and transparentObjects.

Referenced by QSSGRenderer::prepareLayerForRender().

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

◆ setBonemapTexture()

void QSSGLayerRenderData::setBonemapTexture ( const QSSGModelContext modelContext,
QRhiTexture bonemapTexture 
)

Definition at line 1039 of file qssglayerrenderdata.cpp.

Referenced by prepareModelsForRender().

+ Here is the caller graph for this function:

◆ setLightmapTexture()

void QSSGLayerRenderData::setLightmapTexture ( const QSSGModelContext modelContext,
QRhiTexture lightmapTexture 
)

Definition at line 1023 of file qssglayerrenderdata.cpp.

Referenced by prepareModelsForRender().

+ Here is the caller graph for this function:

◆ setVertexInputPresence()

◆ takeNode()

QSSGRenderableNodeEntry QSSGLayerRenderData::takeNode ( QSSGNodeId  id)

Definition at line 2414 of file qssglayerrenderdata.cpp.

References QList< T >::cbegin(), QList< T >::cend(), e, QList< T >::erase(), renderableModels, and ret.

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QSSGFrameData

friend class QSSGFrameData
friend

Definition at line 337 of file qssglayerrenderdata_p.h.

◆ QSSGModelHelpers

friend class QSSGModelHelpers
friend

Definition at line 338 of file qssglayerrenderdata_p.h.

◆ QSSGRenderer

friend class QSSGRenderer
friend

Definition at line 336 of file qssglayerrenderdata_p.h.

◆ QSSGRenderHelpers

friend class QSSGRenderHelpers
friend

Definition at line 339 of file qssglayerrenderdata_p.h.

Member Data Documentation

◆ activePasses

◆ bakedLightingModels

QVector<QSSGBakedLightingModel> QSSGLayerRenderData::bakedLightingModels

Definition at line 279 of file qssglayerrenderdata_p.h.

Referenced by getSortedBakedLightingModels(), and resetForFrame().

◆ camera

◆ cameraData

◆ cameras

QVector<QSSGRenderCamera *> QSSGLayerRenderData::cameras

Definition at line 269 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ clippingFrustum

std::optional<QSSGClippingFrustum> QSSGLayerRenderData::clippingFrustum

Definition at line 290 of file qssglayerrenderdata_p.h.

Referenced by resetForFrame().

◆ depthMapPass

◆ globalLights

QSSGShaderLightList QSSGLayerRenderData::globalLights

Definition at line 275 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender(), and resetForFrame().

◆ interactiveLightmapBakingRequested

bool QSSGLayerRenderData::interactiveLightmapBakingRequested = false

◆ layer

◆ layerPrepResult

◆ lightmapBakingOutputCallback

QSSGLightmapper::Callback QSSGLayerRenderData::lightmapBakingOutputCallback

◆ lights

◆ m_lightmapper

QSSGLightmapper* QSSGLayerRenderData::m_lightmapper = nullptr

Definition at line 300 of file qssglayerrenderdata_p.h.

Referenced by ~QSSGLayerRenderData(), and maybeBakeLightmap().

◆ mainPass

MainPass QSSGLayerRenderData::mainPass

Definition at line 255 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ modelContexts

TModelContextPtrList QSSGLayerRenderData::modelContexts

◆ opaqueObjects

◆ plainSkyBoxPrepared

bool QSSGLayerRenderData::plainSkyBoxPrepared = false

Definition at line 308 of file qssglayerrenderdata_p.h.

Referenced by resetForFrame().

◆ reflectionMapPass

ReflectionMapPass QSSGLayerRenderData::reflectionMapPass

Definition at line 248 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ reflectionProbes

QVector<QSSGRenderReflectionProbe *> QSSGLayerRenderData::reflectionProbes

Definition at line 271 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender(), and prepareReflectionProbesForRender().

◆ renderableItem2Ds

QVector<QSSGRenderItem2D *> QSSGLayerRenderData::renderableItem2Ds

◆ renderableModels

RenderableNodeEntries QSSGLayerRenderData::renderableModels

◆ renderableParticles

RenderableNodeEntries QSSGLayerRenderData::renderableParticles

Definition at line 267 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender(), and prepareParticlesForRender().

◆ renderedBakedLightingModels

QVector<QSSGBakedLightingModel> QSSGLayerRenderData::renderedBakedLightingModels

Definition at line 287 of file qssglayerrenderdata_p.h.

Referenced by getSortedBakedLightingModels(), and resetForFrame().

◆ renderedDepthWriteObjects

QSSGRenderableObjectList QSSGLayerRenderData::renderedDepthWriteObjects

◆ renderedItem2Ds

RenderableItem2DEntries QSSGLayerRenderData::renderedItem2Ds

Definition at line 288 of file qssglayerrenderdata_p.h.

Referenced by getRenderableItem2Ds(), and resetForFrame().

◆ renderedOpaqueDepthPrepassObjects

QSSGRenderableObjectList QSSGLayerRenderData::renderedOpaqueDepthPrepassObjects

◆ renderedOpaqueObjects

QSSGRenderableObjectList QSSGLayerRenderData::renderedOpaqueObjects

Definition at line 282 of file qssglayerrenderdata_p.h.

Referenced by getSortedOpaqueRenderableObjects(), and resetForFrame().

◆ renderedScreenTextureObjects

QSSGRenderableObjectList QSSGLayerRenderData::renderedScreenTextureObjects

◆ renderedTransparentObjects

QSSGRenderableObjectList QSSGLayerRenderData::renderedTransparentObjects

◆ renderer

◆ screenMapPass

ScreenMapPass QSSGLayerRenderData::screenMapPass

◆ screenTextureObjects

◆ shadowMapPass

ShadowMapPass QSSGLayerRenderData::shadowMapPass

Definition at line 247 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ ssaoMapPass

SSAOMapPass QSSGLayerRenderData::ssaoMapPass

◆ tooManyLightsWarningShown

bool QSSGLayerRenderData::tooManyLightsWarningShown = false

Definition at line 297 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ tooManyShadowLightsWarningShown

bool QSSGLayerRenderData::tooManyShadowLightsWarningShown = false

Definition at line 298 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ transparentObjects

◆ USERPASSES

constexpr size_t QSSGLayerRenderData::USERPASSES = 2
staticconstexpr

Definition at line 253 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ userPasses

UserPass QSSGLayerRenderData::userPasses[USERPASSES]

Definition at line 254 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().

◆ zPrePassPass

ZPrePassPass QSSGLayerRenderData::zPrePassPass

Definition at line 249 of file qssglayerrenderdata_p.h.

Referenced by prepareForRender().


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