![]() |
Qt 6.x
The Qt SDK
|
#include <qssglayerrenderdata_p.h>
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 * > |
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) |
Static Public Attributes | |
static constexpr size_t | USERPASSES = 2 |
Friends | |
class | QSSGRenderer |
class | QSSGFrameData |
class | QSSGModelHelpers |
class | QSSGRenderHelpers |
Definition at line 171 of file qssglayerrenderdata_p.h.
using QSSGLayerRenderData::RenderableFilter = std::function<bool(QSSGModelContext *)> |
Definition at line 179 of file qssglayerrenderdata_p.h.
Definition at line 186 of file qssglayerrenderdata_p.h.
Definition at line 185 of file qssglayerrenderdata_p.h.
Definition at line 184 of file qssglayerrenderdata_p.h.
Enumerator | |
---|---|
MAX_AA_LEVELS | |
MAX_TEMPORAL_AA_LEVELS |
Definition at line 174 of file qssglayerrenderdata_p.h.
QSSGLayerRenderData::QSSGLayerRenderData | ( | QSSGRenderLayer & | inLayer, |
QSSGRenderer & | inRenderer | ||
) |
Definition at line 2206 of file qssglayerrenderdata.cpp.
QSSGLayerRenderData::~QSSGLayerRenderData | ( | ) |
Definition at line 2213 of file qssglayerrenderdata.cpp.
References activePasses, and m_lightmapper.
|
inline |
Definition at line 315 of file qssglayerrenderdata_p.h.
References camera.
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().
|
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().
|
static |
Definition at line 99 of file qssglayerrenderdata.cpp.
References QList< T >::at(), QSSGClippingFrustum::intersectsWith(), QList< T >::size(), and QList< T >::swapItemsAt().
QSSGShaderDefaultMaterialKey QSSGLayerRenderData::generateLightingKey | ( | QSSGRenderDefaultMaterial::MaterialLighting | inLightingType, |
const QSSGShaderLightListView & | lights, | ||
bool | receivesShadows = true |
||
) |
Definition at line 466 of file qssglayerrenderdata.cpp.
References QSSGRenderer::defaultMaterialShaderKeyProperties(), QSSGShaderDefaultMaterialKeyProperties::LightCount, lights, QSSGRenderLight::m_castShadow, QSSGRenderLight::m_fullyBaked, QSSGShaderDefaultMaterialKeyProperties::m_hasIbl, QSSGShaderDefaultMaterialKeyProperties::m_hasLighting, QSSGShaderDefaultMaterialKeyProperties::m_lightCount, QSSGShaderDefaultMaterialKeyProperties::m_lightFlags, QSSGShaderDefaultMaterialKeyProperties::m_lightShadowFlags, QSSGShaderDefaultMaterialKeyProperties::m_lightSpotFlags, QSSGRenderDefaultMaterial::NoLighting, Q_ASSERT, qHash(), QSSG_MAX_NUM_SHADOW_MAPS, renderer, QSSGShaderKeyBoolean::setValue(), QSSGShaderKeyUnsigned< TBitWidth >::setValue(), and QSSGRenderGraphObject::type.
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().
QSSGCameraRenderData QSSGLayerRenderData::getCameraRenderData | ( | const QSSGRenderCamera * | camera | ) |
Definition at line 2442 of file qssglayerrenderdata.cpp.
References camera, and getCameraDataImpl().
QSSGCameraRenderData QSSGLayerRenderData::getCameraRenderData | ( | const QSSGRenderCamera * | camera | ) | const |
Definition at line 2453 of file qssglayerrenderdata.cpp.
References camera, cameraData, and getCameraDataImpl().
QSSGFrameData & QSSGLayerRenderData::getFrameData | ( | ) |
Definition at line 2392 of file qssglayerrenderdata.cpp.
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().
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.
|
inline |
Definition at line 303 of file qssglayerrenderdata_p.h.
|
inline |
Definition at line 333 of file qssglayerrenderdata_p.h.
Referenced by QQuick3DSceneRenderer::releaseCachedResources(), RenderHelpers::rhiPrepareRenderable(), and QSSGCustomMaterialSystem::rhiPrepareRenderable().
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.
QSSGRenderGraphObject * QSSGLayerRenderData::getResource | ( | QSSGResourceId | id | ) | const |
Definition at line 2433 of file qssglayerrenderdata.cpp.
References ret.
|
inline |
Definition at line 302 of file qssglayerrenderdata_p.h.
Referenced by rhiPrepareResourcesForReflectionMap().
|
inline |
Definition at line 332 of file qssglayerrenderdata_p.h.
Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), and QQuick3DSceneRenderer::releaseCachedResources().
const QVector< QSSGBakedLightingModel > & QSSGLayerRenderData::getSortedBakedLightingModels | ( | ) |
Definition at line 345 of file qssglayerrenderdata.cpp.
References bakedLightingModels, camera, QSSGRenderLayer::EnableDepthTest, nearestToFurthestCompare(), and renderedBakedLightingModels.
Referenced by maybeBakeLightmap().
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.
const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedRenderedDepthWriteObjects | ( | ) |
Definition at line 435 of file qssglayerrenderdata.cpp.
References renderedDepthWriteObjects.
const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedrenderedOpaqueDepthPrepassObjects | ( | ) |
Definition at line 441 of file qssglayerrenderdata.cpp.
References renderedOpaqueDepthPrepassObjects.
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.
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.
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().
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().
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.
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().
|
static |
|
static |
Definition at line 955 of file qssglayerrenderdata.cpp.
References contextInterface(), and renderableModels.
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().
bool QSSGLayerRenderData::prepareParticlesForRender | ( | const RenderableNodeEntries & | renderableParticles, |
const QSSGCameraRenderData & | cameraData | ||
) |
Definition at line 1505 of file qssglayerrenderdata.cpp.
References QSSGParticleBuffer::bounds(), QSSGRenderContextInterface::bufferManager(), cameraData, QSSGBounds3::center(), QSSGRenderImage::clearDirty(), contextInterface(), QSSGRenderer::contextInterface(), getCameraDistanceSq(), QSSGRenderNode::globalOpacity, QSSGRenderNode::globalTransform, lights, QSSGRenderParticles::m_castsReflections, QSSGRenderParticles::m_colorTable, QSSGRenderParticles::m_hasTransparency, QSSGRenderParticles::m_particleBuffer, QSSGRenderParticles::m_sprite, opaqueObjects, QSSGParticleBuffer::particleCount(), QList< T >::push_back(), QSSG_ASSERT, renderableParticles, renderer, screenTextureObjects, QSSGRenderableObjectFlags::setCastsReflections(), QSSGRenderableObjectFlags::setCastsShadows(), QSSGRenderableObjectFlags::setHasAttributeColor(), QSSGRenderableObjectFlags::setHasAttributeNormal(), QSSGRenderableObjectFlags::setHasAttributePosition(), QSSGRenderableObjectFlags::setHasAttributeTexCoord0(), QSSGRenderableObjectFlags::setHasTransparency(), QSSGRenderableObjectFlags::setReceivesShadows(), mat44::transform(), and transparentObjects.
Referenced by prepareForRender().
void QSSGLayerRenderData::prepareReflectionProbesForRender | ( | ) |
Definition at line 1609 of file qssglayerrenderdata.cpp.
References QSSGRenderableObject::bounds, QSSGRenderReflectionProbe::boxOffset, QSSGRenderReflectionProbe::boxSize, QSSGBounds3::center(), QSSGBounds3::centerExtents(), QSSGSubsetRenderable::distanceFromReflectionProbe, QVector3D::distanceToPoint(), QSSGShaderReflectionProbe::enabled, QSSGRenderNode::getGlobalPos(), QSSGRenderableObject::globalTransform, i, QSSGBounds3::intersects(), QSSGBounds3::maximum, QSSGBounds3::minimum, opaqueObjects, QSSGRenderReflectionProbe::parallaxCorrection, QSSGShaderReflectionProbe::parallaxCorrection, QSSGShaderReflectionProbe::probeBoxMax, QSSGShaderReflectionProbe::probeBoxMin, QSSGShaderReflectionProbe::probeCubeMapCenter, ReceivesReflections, QSSGSubsetRenderable::reflectionProbe, QSSGSubsetRenderable::reflectionProbeIndex, reflectionProbes, requestReflectionMapManager(), QSSGRenderReflectionProbe::texture, QVector4D::toVector3D(), and transparentObjects.
Referenced by prepareForRender().
void QSSGLayerRenderData::prepareResourceLoaders | ( | ) |
Definition at line 1600 of file qssglayerrenderdata.cpp.
References QSSGRenderContextInterface::bufferManager(), contextInterface(), QSSGRenderer::contextInterface(), and renderer.
Referenced by prepareForRender().
const QSSGRenderReflectionMapPtr & QSSGLayerRenderData::requestReflectionMapManager | ( | ) |
Definition at line 2476 of file qssglayerrenderdata.cpp.
References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.
Referenced by prepareReflectionProbesForRender().
const QSSGRenderShadowMapPtr & QSSGLayerRenderData::requestShadowMapManager | ( | ) |
Definition at line 2469 of file qssglayerrenderdata.cpp.
References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.
Referenced by prepareForRender().
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().
void QSSGLayerRenderData::setBonemapTexture | ( | const QSSGModelContext & | modelContext, |
QRhiTexture * | bonemapTexture | ||
) |
Definition at line 1039 of file qssglayerrenderdata.cpp.
Referenced by prepareModelsForRender().
void QSSGLayerRenderData::setLightmapTexture | ( | const QSSGModelContext & | modelContext, |
QRhiTexture * | lightmapTexture | ||
) |
Definition at line 1023 of file qssglayerrenderdata.cpp.
Referenced by prepareModelsForRender().
void QSSGLayerRenderData::setVertexInputPresence | ( | const QSSGRenderableObjectFlags & | renderableFlags, |
QSSGShaderDefaultMaterialKey & | key, | ||
QSSGRenderer * | renderer | ||
) |
Definition at line 642 of file qssglayerrenderdata.cpp.
References QSSGShaderKeyVertexAttribute::Binormal, QSSGShaderKeyVertexAttribute::Color, QSSGRenderer::defaultMaterialShaderKeyProperties(), QSSGRenderableObjectFlags::hasAttributeBinormal(), QSSGRenderableObjectFlags::hasAttributeColor(), QSSGRenderableObjectFlags::hasAttributeJointAndWeight(), QSSGRenderableObjectFlags::hasAttributeNormal(), QSSGRenderableObjectFlags::hasAttributePosition(), QSSGRenderableObjectFlags::hasAttributeTangent(), QSSGRenderableObjectFlags::hasAttributeTexCoord0(), QSSGRenderableObjectFlags::hasAttributeTexCoord1(), QSSGRenderableObjectFlags::hasAttributeTexCoordLightmap(), QSSGShaderKeyVertexAttribute::JointAndWeight, QSSGShaderDefaultMaterialKeyProperties::m_vertexAttributes, QSSGShaderKeyVertexAttribute::Normal, QSSGShaderKeyVertexAttribute::Position, renderer, QSSGShaderKeyUnsigned< TBitWidth >::setValue(), QSSGShaderKeyVertexAttribute::Tangent, QSSGShaderKeyVertexAttribute::TexCoord0, QSSGShaderKeyVertexAttribute::TexCoord1, and QSSGShaderKeyVertexAttribute::TexCoordLightmap.
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.
|
friend |
Definition at line 337 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 338 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 336 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 339 of file qssglayerrenderdata_p.h.
QVarLengthArray<QSSGRenderPass *, 12> QSSGLayerRenderData::activePasses |
Definition at line 258 of file qssglayerrenderdata_p.h.
Referenced by ~QSSGLayerRenderData(), prepareForRender(), resetForFrame(), QSSGRenderer::rhiPrepare(), and QSSGRenderer::rhiRender().
QVector<QSSGBakedLightingModel> QSSGLayerRenderData::bakedLightingModels |
Definition at line 279 of file qssglayerrenderdata_p.h.
Referenced by getSortedBakedLightingModels(), and resetForFrame().
QSSGRenderCamera* QSSGLayerRenderData::camera = nullptr |
Definition at line 274 of file qssglayerrenderdata_p.h.
Referenced by getCameraRenderData(), getCameraRenderData(), QSSGRenderer::getLayerGlobalRenderProperties(), getRenderableItem2Ds(), QSSGRenderer::getShaderPipelineForDefaultMaterial(), getSortedBakedLightingModels(), getSortedOpaqueRenderableObjects(), getSortedScreenTextureRenderableObjects(), getSortedTransparentRenderableObjects(), prepareForRender(), prepareModelsForRender(), resetForFrame(), QQuick3DSceneRenderer::rhiPrepare(), QSSGRenderer::rhiPrepare(), RenderHelpers::rhiPrepareDepthPass(), RenderHelpers::rhiPrepareRenderable(), QSSGCustomMaterialSystem::rhiPrepareRenderable(), QSSGParticleRenderer::rhiPrepareRenderable(), and QSSGRenderer::rhiRender().
std::optional<QSSGCameraRenderData> QSSGLayerRenderData::cameraData |
Definition at line 292 of file qssglayerrenderdata_p.h.
Referenced by getCameraRenderData(), QSSGRenderer::getLayerGlobalRenderProperties(), QSSGRenderer::getShaderPipelineForDefaultMaterial(), prepareForRender(), prepareItem2DsForRender(), prepareModelsForRender(), prepareParticlesForRender(), resetForFrame(), RenderHelpers::rhiPrepareDepthPass(), RenderHelpers::rhiPrepareRenderable(), QSSGCustomMaterialSystem::rhiPrepareRenderable(), and QSSGParticleRenderer::rhiPrepareRenderable().
QVector<QSSGRenderCamera *> QSSGLayerRenderData::cameras |
Definition at line 269 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
std::optional<QSSGClippingFrustum> QSSGLayerRenderData::clippingFrustum |
Definition at line 290 of file qssglayerrenderdata_p.h.
Referenced by resetForFrame().
DepthMapPass QSSGLayerRenderData::depthMapPass |
Definition at line 251 of file qssglayerrenderdata_p.h.
Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), prepareForRender(), and QQuick3DSceneRenderer::renderToRhiTexture().
QSSGShaderLightList QSSGLayerRenderData::globalLights |
Definition at line 275 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and resetForFrame().
bool QSSGLayerRenderData::interactiveLightmapBakingRequested = false |
Definition at line 305 of file qssglayerrenderdata_p.h.
Referenced by maybeBakeLightmap(), and QQuick3DSceneRenderer::synchronize().
QSSGRenderLayer& QSSGLayerRenderData::layer |
Definition at line 260 of file qssglayerrenderdata_p.h.
Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), RenderHelpers::rhiPrepareRenderable(), rhiPrepareResourcesForReflectionMap(), and RenderHelpers::rhiRenderReflectionMap().
std::optional<QSSGLayerRenderPreparationResult> QSSGLayerRenderData::layerPrepResult |
Definition at line 291 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), QSSGRenderer::prepareLayerForRender(), resetForFrame(), QSSGRenderer::rhiPrepare(), and QSSGRenderer::rhiRender().
QSSGLightmapper::Callback QSSGLayerRenderData::lightmapBakingOutputCallback |
Definition at line 306 of file qssglayerrenderdata_p.h.
Referenced by maybeBakeLightmap(), and QQuick3DSceneRenderer::synchronize().
QVector<QSSGRenderLight *> QSSGLayerRenderData::lights |
Definition at line 270 of file qssglayerrenderdata_p.h.
Referenced by generateLightingKey(), prepareForRender(), prepareModelsForRender(), and prepareParticlesForRender().
QSSGLightmapper* QSSGLayerRenderData::m_lightmapper = nullptr |
Definition at line 300 of file qssglayerrenderdata_p.h.
Referenced by ~QSSGLayerRenderData(), and maybeBakeLightmap().
MainPass QSSGLayerRenderData::mainPass |
Definition at line 255 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
TModelContextPtrList QSSGLayerRenderData::modelContexts |
Definition at line 294 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), prepareModelsForRender(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::opaqueObjects |
Definition at line 276 of file qssglayerrenderdata_p.h.
Referenced by getSortedOpaqueRenderableObjects(), getSortedTransparentRenderableObjects(), prepareModelsForRender(), prepareParticlesForRender(), prepareReflectionProbesForRender(), and resetForFrame().
bool QSSGLayerRenderData::plainSkyBoxPrepared = false |
Definition at line 308 of file qssglayerrenderdata_p.h.
Referenced by resetForFrame().
ReflectionMapPass QSSGLayerRenderData::reflectionMapPass |
Definition at line 248 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
QVector<QSSGRenderReflectionProbe *> QSSGLayerRenderData::reflectionProbes |
Definition at line 271 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and prepareReflectionProbesForRender().
QVector<QSSGRenderItem2D *> QSSGLayerRenderData::renderableItem2Ds |
Definition at line 268 of file qssglayerrenderdata_p.h.
Referenced by getRenderableItem2Ds(), prepareForRender(), prepareItem2DsForRender(), and resetForFrame().
RenderableNodeEntries QSSGLayerRenderData::renderableModels |
Definition at line 266 of file qssglayerrenderdata_p.h.
Referenced by getNode(), prepareForRender(), prepareModelMeshes(), prepareModelsForRender(), and takeNode().
RenderableNodeEntries QSSGLayerRenderData::renderableParticles |
Definition at line 267 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and prepareParticlesForRender().
QVector<QSSGBakedLightingModel> QSSGLayerRenderData::renderedBakedLightingModels |
Definition at line 287 of file qssglayerrenderdata_p.h.
Referenced by getSortedBakedLightingModels(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::renderedDepthWriteObjects |
Definition at line 286 of file qssglayerrenderdata_p.h.
Referenced by getSortedRenderedDepthWriteObjects(), prepareForRender(), and resetForFrame().
RenderableItem2DEntries QSSGLayerRenderData::renderedItem2Ds |
Definition at line 288 of file qssglayerrenderdata_p.h.
Referenced by getRenderableItem2Ds(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::renderedOpaqueDepthPrepassObjects |
Definition at line 285 of file qssglayerrenderdata_p.h.
Referenced by getSortedrenderedOpaqueDepthPrepassObjects(), prepareForRender(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::renderedOpaqueObjects |
Definition at line 282 of file qssglayerrenderdata_p.h.
Referenced by getSortedOpaqueRenderableObjects(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::renderedScreenTextureObjects |
Definition at line 284 of file qssglayerrenderdata_p.h.
Referenced by getSortedScreenTextureRenderableObjects(), and resetForFrame().
QSSGRenderableObjectList QSSGLayerRenderData::renderedTransparentObjects |
Definition at line 283 of file qssglayerrenderdata_p.h.
Referenced by getSortedTransparentRenderableObjects(), and resetForFrame().
QSSGRenderer* QSSGLayerRenderData::renderer = nullptr |
Definition at line 261 of file qssglayerrenderdata_p.h.
Referenced by contextInterface(), generateLightingKey(), maybeBakeLightmap(), prepareForRender(), prepareImageForRender(), prepareModelsForRender(), prepareParticlesForRender(), prepareResourceLoaders(), requestReflectionMapManager(), requestShadowMapManager(), and setVertexInputPresence().
ScreenMapPass QSSGLayerRenderData::screenMapPass |
Definition at line 252 of file qssglayerrenderdata_p.h.
Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), and prepareForRender().
QSSGRenderableObjectList QSSGLayerRenderData::screenTextureObjects |
Definition at line 278 of file qssglayerrenderdata_p.h.
Referenced by getSortedScreenTextureRenderableObjects(), prepareModelsForRender(), prepareParticlesForRender(), and resetForFrame().
ShadowMapPass QSSGLayerRenderData::shadowMapPass |
Definition at line 247 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
SSAOMapPass QSSGLayerRenderData::ssaoMapPass |
Definition at line 250 of file qssglayerrenderdata_p.h.
Referenced by QSSGRenderer::getLayerGlobalRenderProperties(), and prepareForRender().
bool QSSGLayerRenderData::tooManyLightsWarningShown = false |
Definition at line 297 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
bool QSSGLayerRenderData::tooManyShadowLightsWarningShown = false |
Definition at line 298 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
QSSGRenderableObjectList QSSGLayerRenderData::transparentObjects |
Definition at line 277 of file qssglayerrenderdata_p.h.
Referenced by getSortedTransparentRenderableObjects(), prepareModelsForRender(), prepareParticlesForRender(), prepareReflectionProbesForRender(), and resetForFrame().
|
staticconstexpr |
Definition at line 253 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
UserPass QSSGLayerRenderData::userPasses[USERPASSES] |
Definition at line 254 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
ZPrePassPass QSSGLayerRenderData::zPrePassPass |
Definition at line 249 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().