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>.
|
#include <qssglayerrenderdata_p.h>
Classes | |
struct | GlobalRenderProperties |
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 Attributes | |
static constexpr size_t | USERPASSES = 2 |
Friends | |
class | QSSGRenderer |
class | QSSGRendererPrivate |
class | QSSGFrameData |
class | QSSGModelHelpers |
class | QSSGRenderHelpers |
Definition at line 167 of file qssglayerrenderdata_p.h.
using QSSGLayerRenderData::RenderableFilter = std::function<bool(QSSGModelContext *)> |
Definition at line 175 of file qssglayerrenderdata_p.h.
Definition at line 182 of file qssglayerrenderdata_p.h.
Definition at line 181 of file qssglayerrenderdata_p.h.
Definition at line 180 of file qssglayerrenderdata_p.h.
Enumerator | |
---|---|
MAX_AA_LEVELS | |
MAX_TEMPORAL_AA_LEVELS |
Definition at line 170 of file qssglayerrenderdata_p.h.
QSSGLayerRenderData::QSSGLayerRenderData | ( | QSSGRenderLayer & | inLayer, |
QSSGRenderer & | inRenderer ) |
Definition at line 2680 of file qssglayerrenderdata.cpp.
QSSGLayerRenderData::~QSSGLayerRenderData | ( | ) |
Definition at line 2687 of file qssglayerrenderdata.cpp.
References activePasses, m_lightmapper, and QSSGLightmapper::reset().
|
inline |
Definition at line 304 of file qssglayerrenderdata_p.h.
References QVarLengthArray< T, Prealloc >::isEmpty().
QSSGRenderContextInterface * QSSGLayerRenderData::contextInterface | ( | ) | const |
Definition at line 2909 of file qssglayerrenderdata.cpp.
References QSSGRenderer::contextInterface(), and renderer.
Referenced by prepareImageForRender(), prepareModelsForRender(), prepareModelsForRender(), prepareParticlesForRender(), and prepareResourceLoaders().
QSSGRenderablesId QSSGLayerRenderData::createRenderables | ( | QSSGPrepContextId | prepId, |
const QList< QSSGNodeId > & | nodes, | ||
QSSGRenderHelpers::CreateFlags | createFlags ) |
Definition at line 537 of file qssglayerrenderdata.cpp.
References QList< T >::cbegin(), QList< T >::cend(), createRenderablesHelper(), QSSGRenderableNodeEntry::Disabled, getPrepContextIndex(), Invalid, it, QSSG_ASSERT, QSSG_ASSERT_X, qWarning, QSSGRenderHelpers::Recurse, renderableModels, renderer, QSSGRenderHelpers::Steal, and verifyPrepContext().
|
static |
Definition at line 80 of file qssglayerrenderdata.cpp.
References QList< T >::at(), QSSG_ASSERT, and QList< T >::size().
|
static |
Definition at line 94 of file qssglayerrenderdata.cpp.
References QList< T >::at(), QList< T >::size(), and QList< T >::swapItemsAt().
Referenced by getSortedOpaqueRenderableObjects(), and getSortedTransparentRenderableObjects().
QSSGShaderDefaultMaterialKey QSSGLayerRenderData::generateLightingKey | ( | QSSGRenderDefaultMaterial::MaterialLighting | inLightingType, |
const QSSGShaderLightListView & | lights, | ||
bool | receivesShadows = true ) |
Definition at line 847 of file qssglayerrenderdata.cpp.
References QSSGShaderDefaultMaterialKeyProperties::LightCount, lights, 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, QSSGShaderKeyBoolean::setValue(), and QSSGShaderKeyUnsigned< TBitWidth >::setValue().
QRhiTexture * QSSGLayerRenderData::getBonemapTexture | ( | const QSSGModelContext & | modelContext | ) | const |
Definition at line 1506 of file qssglayerrenderdata.cpp.
References QHash< Key, T >::cend(), QHash< Key, T >::constFind(), it, QSSGModelContext::model, ret, and QSSGRenderModel::usesBoneTexture().
QSSGRenderGraphObject * QSSGLayerRenderData::getCamera | ( | QSSGCameraId | id | ) | const |
Definition at line 2882 of file qssglayerrenderdata.cpp.
References ret.
QSSGRenderCameraData QSSGLayerRenderData::getCameraRenderData | ( | const QSSGRenderCamera * | camera | ) |
Definition at line 2891 of file qssglayerrenderdata.cpp.
References getCameraDataImpl(), renderedCameraData, and renderedCameras.
Referenced by getSortedOpaqueRenderableObjects(), getSortedTransparentRenderableObjects(), and prepareModelsForRender().
QSSGRenderCameraData QSSGLayerRenderData::getCameraRenderData | ( | const QSSGRenderCamera * | camera | ) | const |
Definition at line 2900 of file qssglayerrenderdata.cpp.
References getCameraDataImpl(), renderedCameraData, and renderedCameras.
|
inlinestatic |
Definition at line 352 of file qssglayerrenderdata_p.h.
References renderer.
Referenced by QSSGFrameData::activeCamera(), QSSGRenderHelpers::commit(), QSSGRenderHelpers::createRenderables(), QSSGModelHelpers::getGlobalOpacity(), QSSGModelHelpers::getGlobalTransform(), QSSGFrameData::getPipelineState(), QSSGFrameData::getRenderResult(), QSSGRenderHelpers::prepareForRender(), QSSGRenderHelpers::prepareRenderables(), ReflectionMapPass::renderPass(), UserPass::renderPass(), QSSGRenderHelpers::renderRenderables(), RenderHelpers::rhiRenderShadowMap(), QSSGModelHelpers::setGlobalOpacity(), QSSGModelHelpers::setGlobalTransform(), QSSGModelHelpers::setModelMaterials(), QSSGModelHelpers::setModelMaterials(), and QSSGMaterialShaderGenerator::setRhiMaterialProperties().
|
inline |
Definition at line 321 of file qssglayerrenderdata_p.h.
QSSGFrameData & QSSGLayerRenderData::getFrameData | ( | ) |
Definition at line 2877 of file qssglayerrenderdata.cpp.
float QSSGLayerRenderData::getGlobalOpacity | ( | QSSGPrepContextId | prepId, |
const QSSGRenderModel & | model ) |
Definition at line 624 of file qssglayerrenderdata.cpp.
References QSet< T >::cend(), getPrepContextIndex(), QSSGRenderableNodeEntry::GlobalOpacity, it, model, QSSG_ASSERT_X, renderer, ret, and verifyPrepContext().
QMatrix4x4 QSSGLayerRenderData::getGlobalTransform | ( | QSSGPrepContextId | prepId, |
const QSSGRenderModel & | model ) |
Definition at line 594 of file qssglayerrenderdata.cpp.
References QSet< T >::cend(), getPrepContextIndex(), QSSGRenderableNodeEntry::GlobalTransform, it, model, QSSG_ASSERT_X, renderer, ret, and verifyPrepContext().
QRhiTexture * QSSGLayerRenderData::getLightmapTexture | ( | const QSSGModelContext & | modelContext | ) | const |
Definition at line 1490 of file qssglayerrenderdata.cpp.
References QHash< Key, T >::cend(), QHash< Key, T >::constFind(), QSSGRenderModel::hasLightmap(), it, QSSGModelContext::model, and ret.
QMatrix4x4 QSSGLayerRenderData::getModelMvp | ( | QSSGPrepContextId | prepId, |
const QSSGRenderModel & | model ) const |
QSSGPrepContextId QSSGLayerRenderData::getOrCreateExtensionContext | ( | const QSSGRenderExtension & | ext, |
QSSGRenderCamera * | camera = nullptr, | ||
quint32 | slot = 0 ) |
Definition at line 482 of file qssglayerrenderdata.cpp.
References camera, createPrepId(), frame, QSSGRenderer::frameCount(), Invalid, it, PREP_CTX_INDEX_MASK, QSSG_ASSERT, QSSG_ASSERT_X, and renderer.
|
inline |
Definition at line 298 of file qssglayerrenderdata_p.h.
|
inline |
Definition at line 340 of file qssglayerrenderdata_p.h.
Referenced by QQuick3DSceneRenderer::releaseCachedResources().
const QSSGLayerRenderData::RenderableItem2DEntries & QSSGLayerRenderData::getRenderableItem2Ds | ( | ) |
Definition at line 385 of file qssglayerrenderdata.cpp.
References QList< T >::begin(), QVector3D::dotProduct(), QList< T >::end(), QVarLengthArray< T, Prealloc >::isEmpty(), QList< T >::isEmpty(), renderableItem2Ds, renderedCameras, and renderedItem2Ds.
|
inline |
Definition at line 349 of file qssglayerrenderdata_p.h.
|
inline |
Definition at line 350 of file qssglayerrenderdata_p.h.
|
inline |
Definition at line 297 of file qssglayerrenderdata_p.h.
Referenced by prepareRenderables().
|
inline |
Definition at line 339 of file qssglayerrenderdata_p.h.
Referenced by QQuick3DSceneRenderer::releaseCachedResources().
const QVector< QSSGBakedLightingModel > & QSSGLayerRenderData::getSortedBakedLightingModels | ( | ) |
Definition at line 371 of file qssglayerrenderdata.cpp.
References bakedLightingModels, QSSGRenderLayer::EnableDepthTest, QVarLengthArray< T, Prealloc >::isEmpty(), nearestToFurthestCompare(), renderedBakedLightingModels, and renderedCameras.
Referenced by maybeBakeLightmap().
const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedOpaqueRenderableObjects | ( | const QSSGRenderCamera & | camera, |
size_t | index = 0 ) |
Definition at line 305 of file qssglayerrenderdata.cpp.
References camera, QSSGRenderCameraData::clippingFrustum, QSSGRenderLayer::EnableDepthTest, frustumCullingInline(), getCameraRenderData(), and nearestToFurthestCompare().
Referenced by prepareRenderables(), and renderRenderables().
const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedRenderedDepthWriteObjects | ( | const QSSGRenderCamera & | camera, |
size_t | index = 0 ) |
Definition at line 816 of file qssglayerrenderdata.cpp.
References camera.
const QSSGRenderableObjectList & QSSGLayerRenderData::getSortedrenderedOpaqueDepthPrepassObjects | ( | const QSSGRenderCamera & | camera, |
size_t | index = 0 ) |
Definition at line 822 of file qssglayerrenderdata.cpp.
References camera.
const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedScreenTextureRenderableObjects | ( | const QSSGRenderCamera & | camera, |
size_t | index = 0 ) |
Definition at line 355 of file qssglayerrenderdata.cpp.
References camera, and furthestToNearestCompare().
const QVector< QSSGRenderableObjectHandle > & QSSGLayerRenderData::getSortedTransparentRenderableObjects | ( | const QSSGRenderCamera & | camera, |
size_t | index = 0 ) |
Definition at line 328 of file qssglayerrenderdata.cpp.
References camera, QSSGRenderCameraData::clippingFrustum, QSSGRenderLayer::EnableDepthTest, frustumCullingInline(), furthestToNearestCompare(), and getCameraRenderData().
Referenced by prepareRenderables(), and renderRenderables().
|
static |
Definition at line 2914 of file qssglayerrenderdata.cpp.
References QRhi::isClipDepthZeroToOne(), QRhi::isYUpInFramebuffer(), and QRhi::isYUpInNDC().
Referenced by QSSGMaterialShaderGenerator::setRhiMaterialProperties().
|
inline |
Definition at line 317 of file qssglayerrenderdata_p.h.
void QSSGLayerRenderData::maybeBakeLightmap | ( | ) |
Definition at line 2829 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().
|
inlinestatic |
Definition at line 472 of file qssglayerrenderdata.cpp.
Referenced by RENDER_FRAME_NEW(), and RENDER_FRAME_NEW_BUFFER().
void QSSGLayerRenderData::prepareForRender | ( | ) |
Definition at line 2137 of file qssglayerrenderdata.cpp.
References QSSGRenderNode::Active, activePasses, QVarLengthArray< T, Prealloc >::append(), QSSGRhiGraphicsPipelineState::BlendEnabled, QSSGRenderContextInterface::bufferManager(), cameras, QVarLengthArray< T, Prealloc >::clear(), QSSGRenderer::contextInterface(), QVarLengthArray< T, Prealloc >::count(), QSSGRenderLayer::Count, CUBE, QSSGRenderLayer::Custom, debugDrawPass, QSSGRenderContextInterface::debugDrawSystem(), QSSGRhiGraphicsPipelineState::depthFunc, depthMapPass, QSSGRhiGraphicsPipelineState::DepthTestEnabled, QSSGRhiGraphicsPipelineState::DepthWriteEnabled, direction, QSSGRenderer::dpr(), effectiveMaxLightCount(), QSSGRenderLayer::EnableDepthPrePass, QSSGRenderLayer::EnableDepthTest, UserPass::extensions, QRhiGraphicsPipeline::Fill, QSSGRhiGraphicsPipelineState::flags, QSSGLayerRenderPreparationResult::flags, QSSGShaderFeatures::ForceIblExposure, globalLights, i, QSSGShaderFeatures::IblOrientation, infiniteGridPass, QVarLengthArray< T, Prealloc >::isEmpty(), QSSGRendererPrivate::isGlobalPickingEnabled(), QSSGLayerRenderPreparationResult::isNull(), QSSGRenderImageTextureFlags::isRgbe8(), QSSGShaderFeatures::isSet(), it, item2DPass, iter, layerPrepResult, QRhiGraphicsPipeline::LessOrEqual, QSSGShaderFeatures::LightProbe, lights, QRhiGraphicsPipeline::Line, QSSGRenderLight::m_castShadow, QSSGRenderImageTexture::m_flags, QSSGRenderImageTexture::m_texture, QSSGCameraGlobalCalculationResult::m_wasDirty, QRhi::MaxUniformBufferRange, maybeQueueNodeForRender(), QSSGBufferManager::MipModeBsdf, modelContexts, QSSGRenderLayer::MSAA, opaquePass, QSSGRenderLayer::Overlay, QSSGRhiGraphicsPipelineState::polygonMode, prepareItem2DsForRender(), prepareModelsForRender(), prepareParticlesForRender(), prepareReflectionProbesForRender(), prepareResourceLoaders(), QSSGRenderLayer::ProgressiveAA, QVarLengthArray< T, Prealloc >::push_back(), QList< T >::push_back(), Q_STATIC_ASSERT, qCCritical, qCDebug, qMin(), QSSG_ASSERT, QSSG_ASSERT_X, QSSG_MAX_NUM_LIGHTS, QSSG_MAX_NUM_SHADOW_MAPS, QSSG_REDUCED_MAX_NUM_LIGHTS, qWarning, REDUCED_MAX_LIGHT_COUNT_THRESHOLD_BYTES, QSSGShaderFeatures::ReduceMaxNumLights, reflectionMapPass, reflectionPass, reflectionProbes, renderableItem2Ds, renderableModels, renderableParticles, renderedCameras, 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, scopeLight(), screenMapPass, QSSGShaderFeatures::set(), QSSGLayerRenderPreparationResultFlags::setLayerDataDirty(), QSSGLayerRenderPreparationResultFlags::setRequiresDepthTexture(), QSSGLayerRenderPreparationResultFlags::setRequiresShadowMapPass(), QSSGLayerRenderPreparationResultFlags::setRequiresSsaoPass(), setTonemapFeatures(), QSSGLayerRenderPreparationResult::setupCameraForRender(), QSSGLayerRenderPreparationResultFlags::setWasDirty(), shadowMapPass, QList< T >::size(), QSSGRenderLayer::SkyBox, QSSGRenderLayer::SkyBoxCubeMap, skyboxCubeMapPass, skyboxPass, QSSGShaderFeatures::Ssao, ssaoMapPass, QSSGShaderFeatures::Ssm, QRhi::TexelFetch, tooManyLightsWarningShown, tooManyShadowLightsWarningShown, transparentPass, QSSGRenderLayer::Underlay, QSSGRenderTextureFormat::Unknown, updateDirtySkeletons(), USERPASSES, userPasses, QSSGRhiGraphicsPipelineState::UsesScissor, QSSGRhiGraphicsPipelineState::viewport, QSSGRenderer::viewport(), VSM, and zPrePassPass.
void QSSGLayerRenderData::prepareImageForRender | ( | QSSGRenderImage & | inImage, |
QSSGRenderableImage::Type | inMapType, | ||
QSSGRenderableImage *& | ioFirstImage, | ||
QSSGRenderableImage *& | ioNextImage, | ||
QSSGRenderableObjectFlags & | ioFlags, | ||
QSSGShaderDefaultMaterialKey & | ioGeneratedShaderKey, | ||
quint32 | inImageIndex, | ||
QSSGRenderDefaultMaterial * | inMaterial = nullptr ) |
Definition at line 880 of file qssglayerrenderdata.cpp.
References QSSGRenderDefaultMaterial::A, QSSGRenderDefaultMaterial::B, QSSGShaderDefaultMaterialKeyProperties::BaseColorMap, QSSGRenderContextInterface::bufferManager(), QSSGShaderDefaultMaterialKeyProperties::ClearcoatMap, QSSGShaderDefaultMaterialKeyProperties::ClearcoatRoughnessMap, contextInterface(), QSSGRenderer::contextInterface(), Dirty, QSSGShaderDefaultMaterialKeyProperties::EmissiveMap, QSSGRenderImage::Environment, QSSGRenderDefaultMaterial::G, HasTransparency, QSSGShaderDefaultMaterialKeyProperties::HeightMap, QSSGRenderImage::LightProbe, QSSGShaderDefaultMaterialKeyProperties::m_imageMaps, QSSGShaderDefaultMaterialKeyProperties::m_textureChannels, QSSGShaderDefaultMaterialKeyProperties::MetalnessMap, QSSGRenderImage::Normal, QSSGShaderDefaultMaterialKeyProperties::OcclusionMap, QSSGShaderDefaultMaterialKeyProperties::OpacityMap, QSSGRenderDefaultMaterial::R, QRhiTexture::R8, QRhiTexture::RED_OR_ALPHA8, QRhi::RedOrAlpha8IsRed, renderer, QSSGRenderContextInterface::rhiContext(), QSSGShaderDefaultMaterialKeyProperties::RoughnessMap, QSSGShaderKeyImageMap::setEnabled(), QSSGShaderKeyTextureChannel::setTextureChannel(), QSSGShaderDefaultMaterialKeyProperties::SingleChannelImagesFirst, QSSGShaderDefaultMaterialKeyProperties::SpecularAmountMap, QSSGShaderDefaultMaterialKeyProperties::ThicknessMap, QSSGShaderDefaultMaterialKeyProperties::TranslucencyMap, and QSSGShaderDefaultMaterialKeyProperties::TransmissionMap.
|
static |
Definition at line 2745 of file qssglayerrenderdata.cpp.
References QSSGRhiContext::commandBuffer(), QRhiBuffer::create(), cullLodInstances(), QRhiBuffer::Dynamic, QSSGRhiContextPrivate::get(), QMatrix4x4::inverted(), QRhi::newBuffer(), QRhi::nextResourceUpdateBatch(), qFuzzyCompare(), qWarning, QRhiCommandBuffer::resourceUpdate(), QSSGRhiContext::rhi(), QSSGRhiInstanceBufferData::sorting, sortInstances(), QRhiResourceUpdateBatch::updateDynamicBuffer(), and QRhiBuffer::VertexBuffer.
Referenced by QSSGCustomMaterialSystem::rhiPrepareRenderable(), and setupInstancing().
bool QSSGLayerRenderData::prepareItem2DsForRender | ( | const QSSGRenderContextInterface & | ctxIfc, |
const RenderableItem2DEntries & | renderableItem2Ds ) |
Definition at line 1972 of file qssglayerrenderdata.cpp.
References renderableItem2Ds.
Referenced by prepareForRender().
|
static |
QSSGPrepResultId QSSGLayerRenderData::prepareModelsForRender | ( | QSSGRenderContextInterface & | contextInterface, |
QSSGPrepContextId | prepId, | ||
QSSGRenderablesId | renderablesId, | ||
float | lodThreshold ) |
Definition at line 676 of file qssglayerrenderdata.cpp.
References camera, QList< T >::clear(), contextInterface(), QSSGLayerRenderPreparationResult::flags, getCameraRenderData(), getPrepContextIndex(), Invalid, QList< T >::isEmpty(), layerPrepResult, modelContexts, prepareModelsForRender(), QSSG_ASSERT, QSSG_ASSERT_X, QSSGRenderContextInterface::renderer(), renderer, verifyPrepContext(), and void.
bool QSSGLayerRenderData::prepareModelsForRender | ( | QSSGRenderContextInterface & | ctx, |
const RenderableNodeEntries & | renderableModels, | ||
QSSGLayerRenderPreparationResultFlags & | ioFlags, | ||
const QSSGRenderCameraList & | allCameras, | ||
const QSSGRenderCameraDataList & | allCameraData, | ||
TModelContextPtrList & | modelContexts, | ||
QSSGRenderableObjectList & | opaqueObjects, | ||
QSSGRenderableObjectList & | transparentObjects, | ||
QSSGRenderableObjectList & | screenTextureObjects, | ||
float | lodThreshold = 0.0f ) |
Definition at line 1521 of file qssglayerrenderdata.cpp.
References Always, bakedLightingModels, QSSGRenderContextInterface::bufferManager(), QSSGRenderableObject::camdistSq, cameras, contextInterface(), QSSGRenderContextInterface::customMaterialSystem(), QSSGRenderContextInterface::debugDrawSystem(), QSSGRenderableNodeEntry::Disabled, QRhiVertexInputAttribute::Float, QRhiVertexInputAttribute::Float2, QRhiVertexInputAttribute::Float3, QRhiVertexInputAttribute::Float4, getCameraDistanceSq(), QSSGUtils::mat44::getScale(), QSSGBounds3::getSupport(), QSSGRenderableNodeEntry::GlobalOpacity, QSSGRenderableNodeEntry::GlobalTransform, HasTransparency, i, QRhi::Instancing, QRhi::IntAttributes, QSSGRenderableObjectFlags::isDirty(), lights, QSSGShaderDefaultMaterialKeyProperties::m_blendParticles, QSSGShaderDefaultMaterialKeyProperties::m_boneCount, QSSGShaderDefaultMaterialKeyProperties::m_targetBinormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetColorOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetCount, QSSGShaderDefaultMaterialKeyProperties::m_targetNormalOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetPositionOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTangentOffset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord0Offset, QSSGShaderDefaultMaterialKeyProperties::m_targetTexCoord1Offset, QSSGShaderDefaultMaterialKeyProperties::m_usesFloatJointIndices, QSSGShaderDefaultMaterialKeyProperties::m_usesInstancing, model, modelContexts, OpaqueOnly, OpaquePrePass, QRhiGraphicsPipeline::Points, QList< T >::push_back(), Q_UNLIKELY, qMax(), QSSG_ASSERT_X, qWarning, Qt::red, renderableModels, renderer, QSSGRenderContextInterface::rhiContext(), ScreenTexture, sem, setBonemapTexture(), setLightmapTexture(), QSSGRenderableObjectFlags::setPointsTopology(), QSSGShaderKeyBoolean::setValue(), QSSGShaderKeyUnsigned< TBitWidth >::setValue(), QSSGBounds3::transform(), and QSSGUtils::mat44::transform().
Referenced by prepareForRender(), and prepareModelsForRender().
bool QSSGLayerRenderData::prepareParticlesForRender | ( | const RenderableNodeEntries & | renderableParticles, |
const QSSGRenderCameraData & | cameraData ) |
Definition at line 1892 of file qssglayerrenderdata.cpp.
References QSSGParticleBuffer::bounds(), QSSGRenderContextInterface::bufferManager(), 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, QSSGParticleBuffer::particleCount(), QSSG_ASSERT, renderableParticles, renderer, QSSGRenderableObjectFlags::setCastsReflections(), QSSGRenderableObjectFlags::setCastsShadows(), QSSGRenderableObjectFlags::setHasAttributeColor(), QSSGRenderableObjectFlags::setHasAttributeNormal(), QSSGRenderableObjectFlags::setHasAttributePosition(), QSSGRenderableObjectFlags::setHasAttributeTexCoord0(), QSSGRenderableObjectFlags::setHasTransparency(), QSSGRenderableObjectFlags::setReceivesShadows(), and QSSGUtils::mat44::transform().
Referenced by prepareForRender().
void QSSGLayerRenderData::prepareReflectionProbesForRender | ( | ) |
Definition at line 2005 of file qssglayerrenderdata.cpp.
References QSSGRenderReflectionProbe::boxOffset, QSSGRenderReflectionProbe::boxSize, QSSGBounds3::centerExtents(), QVector3D::distanceToPoint(), QSSGRenderNode::getGlobalPos(), i, QSSGRenderReflectionProbe::parallaxCorrection, ReceivesReflections, reflectionProbes, requestReflectionMapManager(), and QSSGRenderReflectionProbe::texture.
Referenced by prepareForRender().
void QSSGLayerRenderData::prepareRenderables | ( | QSSGRenderContextInterface & | ctx, |
QSSGPrepResultId | prepId, | ||
QRhiRenderPassDescriptor * | renderPassDescriptor, | ||
const QSSGRhiGraphicsPipelineState & | ps, | ||
QSSGRenderablesFilters | filter ) |
Definition at line 748 of file qssglayerrenderdata.cpp.
References All, QSSGRhiGraphicsPipelineState::BlendEnabled, QSSGRhiGraphicsPipelineState::depthFunc, QSSGRhiGraphicsPipelineState::DepthWriteEnabled, QSSGRhiGraphicsPipelineState::flags, getPrepContextIndex(), getShaderFeatures(), getSortedOpaqueRenderableObjects(), getSortedTransparentRenderableObjects(), QRhiGraphicsPipeline::LessOrEqual, Opaque, pipelineStateIndex(), OpaquePass::prep(), TransparentPass::prep(), QSSG_ASSERT, QSSG_ASSERT_X, renderer, Transparent, and verifyPrepContext().
void QSSGLayerRenderData::prepareResourceLoaders | ( | ) |
Definition at line 1996 of file qssglayerrenderdata.cpp.
References QSSGRenderContextInterface::bufferManager(), contextInterface(), QSSGRenderer::contextInterface(), and renderer.
Referenced by prepareForRender().
void QSSGLayerRenderData::renderRenderables | ( | QSSGRenderContextInterface & | ctx, |
QSSGPrepResultId | prepId ) |
Definition at line 792 of file qssglayerrenderdata.cpp.
References getPrepContextIndex(), getSortedOpaqueRenderableObjects(), getSortedTransparentRenderableObjects(), Opaque, pipelineStateIndex(), QSSG_ASSERT, QSSG_ASSERT_X, OpaquePass::render(), TransparentPass::render(), renderer, Transparent, and verifyPrepContext().
const QSSGRenderReflectionMapPtr & QSSGLayerRenderData::requestReflectionMapManager | ( | ) |
Definition at line 2934 of file qssglayerrenderdata.cpp.
References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.
Referenced by prepareReflectionProbesForRender().
const QSSGRenderShadowMapPtr & QSSGLayerRenderData::requestShadowMapManager | ( | ) |
Definition at line 2927 of file qssglayerrenderdata.cpp.
References QSSGRenderer::contextInterface(), QSSG_GUARD, and renderer.
Referenced by prepareForRender().
void QSSGLayerRenderData::resetForFrame | ( | ) |
Definition at line 2611 of file qssglayerrenderdata.cpp.
References activePasses, bakedLightingModels, QList< T >::clear(), QVarLengthArray< T, Prealloc >::clear(), QHash< Key, T >::clear(), clearTable(), globalLights, layerPrepResult, modelContexts, renderableItem2Ds, renderedBakedLightingModels, renderedCameraData, renderedCameras, and renderedItem2Ds.
void QSSGLayerRenderData::setBonemapTexture | ( | const QSSGModelContext & | modelContext, |
QRhiTexture * | bonemapTexture ) |
Definition at line 1501 of file qssglayerrenderdata.cpp.
Referenced by prepareModelsForRender().
void QSSGLayerRenderData::setGlobalOpacity | ( | QSSGRenderablesId | renderablesId, |
const QSSGRenderModel & | model, | ||
float | opacity ) |
Definition at line 609 of file qssglayerrenderdata.cpp.
References QSet< T >::cend(), getPrepContextIndex(), QSSGRenderableNodeEntry::GlobalOpacity, it, model, QSSG_ASSERT_X, renderer, and verifyPrepContext().
void QSSGLayerRenderData::setGlobalTransform | ( | QSSGRenderablesId | renderablesId, |
const QSSGRenderModel & | model, | ||
const QMatrix4x4 & | mvp ) |
Definition at line 579 of file qssglayerrenderdata.cpp.
References QSet< T >::cend(), getPrepContextIndex(), QSSGRenderableNodeEntry::GlobalTransform, it, model, QSSG_ASSERT_X, renderer, and verifyPrepContext().
void QSSGLayerRenderData::setLightmapTexture | ( | const QSSGModelContext & | modelContext, |
QRhiTexture * | lightmapTexture ) |
Definition at line 1485 of file qssglayerrenderdata.cpp.
Referenced by prepareModelsForRender().
void QSSGLayerRenderData::setModelMaterials | ( | const QSSGRenderablesId | renderablesId, |
const QList< QSSGResourceId > & | materials ) |
Definition at line 659 of file qssglayerrenderdata.cpp.
References getPrepContextIndex(), QSSGRenderableNodeEntry::Materials, QSSG_ASSERT, QSSG_ASSERT_X, renderer, and verifyPrepContext().
void QSSGLayerRenderData::setModelMaterials | ( | QSSGRenderablesId | renderablesId, |
const QSSGRenderModel & | model, | ||
const QList< QSSGResourceId > & | materials ) |
Definition at line 639 of file qssglayerrenderdata.cpp.
References QSet< T >::cend(), getPrepContextIndex(), QSSGRenderGraphObjectUtils::getResource(), QSSGRenderGraphObject::isMaterial(), it, QSSGRenderableNodeEntry::Materials, model, QSSG_ASSERT, QSSG_ASSERT_X, QSSG_GUARD, renderer, QSet< T >::size(), and verifyPrepContext().
|
inlinestatic |
Definition at line 354 of file qssglayerrenderdata_p.h.
References QSSGRenderLayer::Aces, QSSGShaderFeatures::AcesTonemapping, QSSGRenderLayer::Custom, QSSGRenderLayer::Filmic, QSSGShaderFeatures::FilmicTonemapping, QSSGShaderFeatures::ForceIblExposure, QSSGRenderLayer::HejlDawson, QSSGShaderFeatures::HejlDawsonTonemapping, QSSGRenderLayer::Linear, QSSGShaderFeatures::LinearTonemapping, and QSSGShaderFeatures::set().
Referenced by QSSGRenderEffect::finalizeShaders(), and prepareForRender().
void QSSGLayerRenderData::setVertexInputPresence | ( | const QSSGRenderableObjectFlags & | renderableFlags, |
QSSGShaderDefaultMaterialKey & | key ) |
Definition at line 1035 of file qssglayerrenderdata.cpp.
References QSSGShaderKeyVertexAttribute::Binormal, QSSGShaderKeyVertexAttribute::Color, 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, QSSGShaderKeyUnsigned< TBitWidth >::setValue(), QSSGShaderKeyVertexAttribute::Tangent, QSSGShaderKeyVertexAttribute::TexCoord0, QSSGShaderKeyVertexAttribute::TexCoord1, and QSSGShaderKeyVertexAttribute::TexCoordLightmap.
|
inline |
Definition at line 318 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 399 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 400 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 397 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 398 of file qssglayerrenderdata_p.h.
|
friend |
Definition at line 401 of file qssglayerrenderdata_p.h.
QVarLengthArray<QSSGRenderPass *, 16> QSSGLayerRenderData::activePasses |
Definition at line 261 of file qssglayerrenderdata_p.h.
Referenced by ~QSSGLayerRenderData(), prepareForRender(), and resetForFrame().
QVector<QSSGBakedLightingModel> QSSGLayerRenderData::bakedLightingModels |
Definition at line 280 of file qssglayerrenderdata_p.h.
Referenced by getSortedBakedLightingModels(), prepareModelsForRender(), and resetForFrame().
QVector<QSSGRenderCamera *> QSSGLayerRenderData::cameras |
Definition at line 272 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and prepareModelsForRender().
DebugDrawPass QSSGLayerRenderData::debugDrawPass |
Definition at line 258 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
DepthMapPass QSSGLayerRenderData::depthMapPass |
Definition at line 247 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
QSSGShaderLightList QSSGLayerRenderData::globalLights |
Definition at line 278 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and resetForFrame().
InfiniteGridPass QSSGLayerRenderData::infiniteGridPass |
Definition at line 257 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
bool QSSGLayerRenderData::interactiveLightmapBakingRequested = false |
Definition at line 300 of file qssglayerrenderdata_p.h.
Referenced by maybeBakeLightmap(), and QQuick3DSceneRenderer::synchronize().
Item2DPass QSSGLayerRenderData::item2DPass |
Definition at line 250 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
QSSGRenderLayer& QSSGLayerRenderData::layer |
Definition at line 263 of file qssglayerrenderdata_p.h.
QSSGLayerRenderPreparationResult QSSGLayerRenderData::layerPrepResult |
Definition at line 286 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), prepareModelsForRender(), and resetForFrame().
QSSGLightmapper::Callback QSSGLayerRenderData::lightmapBakingOutputCallback |
Definition at line 301 of file qssglayerrenderdata_p.h.
Referenced by maybeBakeLightmap(), and QQuick3DSceneRenderer::synchronize().
QVector<QSSGRenderLight *> QSSGLayerRenderData::lights |
Definition at line 273 of file qssglayerrenderdata_p.h.
Referenced by generateLightingKey(), prepareForRender(), prepareModelsForRender(), and prepareParticlesForRender().
QSSGLightmapper* QSSGLayerRenderData::m_lightmapper = nullptr |
Definition at line 295 of file qssglayerrenderdata_p.h.
Referenced by ~QSSGLayerRenderData(), and maybeBakeLightmap().
TModelContextPtrList QSSGLayerRenderData::modelContexts |
Definition at line 289 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), prepareModelsForRender(), prepareModelsForRender(), and resetForFrame().
OpaquePass QSSGLayerRenderData::opaquePass |
Definition at line 255 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
ReflectionMapPass QSSGLayerRenderData::reflectionMapPass |
Definition at line 244 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
ScreenReflectionPass QSSGLayerRenderData::reflectionPass |
Definition at line 249 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
QVector<QSSGRenderReflectionProbe *> QSSGLayerRenderData::reflectionProbes |
Definition at line 274 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and prepareReflectionProbesForRender().
QVector<QSSGRenderItem2D *> QSSGLayerRenderData::renderableItem2Ds |
Definition at line 271 of file qssglayerrenderdata_p.h.
Referenced by getRenderableItem2Ds(), prepareForRender(), prepareItem2DsForRender(), and resetForFrame().
RenderableNodeEntries QSSGLayerRenderData::renderableModels |
Definition at line 269 of file qssglayerrenderdata_p.h.
Referenced by createRenderables(), prepareForRender(), and prepareModelsForRender().
RenderableNodeEntries QSSGLayerRenderData::renderableParticles |
Definition at line 270 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender(), and prepareParticlesForRender().
QVector<QSSGBakedLightingModel> QSSGLayerRenderData::renderedBakedLightingModels |
Definition at line 283 of file qssglayerrenderdata_p.h.
Referenced by getSortedBakedLightingModels(), and resetForFrame().
std::optional<QSSGRenderCameraDataList> QSSGLayerRenderData::renderedCameraData |
Definition at line 287 of file qssglayerrenderdata_p.h.
Referenced by getCameraRenderData(), getCameraRenderData(), and resetForFrame().
QSSGRenderCameraList QSSGLayerRenderData::renderedCameras |
Definition at line 277 of file qssglayerrenderdata_p.h.
Referenced by getCameraRenderData(), getCameraRenderData(), getRenderableItem2Ds(), getSortedBakedLightingModels(), prepareForRender(), resetForFrame(), and QQuick3DSceneRenderer::rhiPrepare().
RenderableItem2DEntries QSSGLayerRenderData::renderedItem2Ds |
Definition at line 284 of file qssglayerrenderdata_p.h.
Referenced by getRenderableItem2Ds(), and resetForFrame().
QSSGRenderer* QSSGLayerRenderData::renderer = nullptr |
Definition at line 264 of file qssglayerrenderdata_p.h.
Referenced by contextInterface(), createRenderables(), getGlobalOpacity(), getGlobalTransform(), getOrCreateExtensionContext(), maybeBakeLightmap(), prepareForRender(), prepareImageForRender(), prepareModelsForRender(), prepareModelsForRender(), prepareParticlesForRender(), prepareRenderables(), prepareResourceLoaders(), renderRenderables(), requestReflectionMapManager(), requestShadowMapManager(), setGlobalOpacity(), setGlobalTransform(), setModelMaterials(), and setModelMaterials().
ScreenMapPass QSSGLayerRenderData::screenMapPass |
Definition at line 248 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
ShadowMapPass QSSGLayerRenderData::shadowMapPass |
Definition at line 243 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
SkyboxCubeMapPass QSSGLayerRenderData::skyboxCubeMapPass |
Definition at line 252 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
SkyboxPass QSSGLayerRenderData::skyboxPass |
Definition at line 251 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
SSAOMapPass QSSGLayerRenderData::ssaoMapPass |
Definition at line 246 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
bool QSSGLayerRenderData::tooManyLightsWarningShown = false |
Definition at line 292 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
bool QSSGLayerRenderData::tooManyShadowLightsWarningShown = false |
Definition at line 293 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
TransparentPass QSSGLayerRenderData::transparentPass |
Definition at line 256 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().
|
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 245 of file qssglayerrenderdata_p.h.
Referenced by prepareForRender().