![]() |
Qt 6.x
The Qt SDK
|
#include <qssgrenderer_p.h>
Public Types | |
enum class | LightmapUVRasterizationShaderMode { Default , Uv , UvTangent } |
Static Public Member Functions | |
static QSSGRhiShaderPipelinePtr | generateRhiShaderPipelineImpl (QSSGSubsetRenderable &renderable, QSSGShaderLibraryManager &shaderLibraryManager, QSSGShaderCache &shaderCache, QSSGProgramGenerator &shaderProgramGenerator, QSSGShaderDefaultMaterialKeyProperties &shaderKeyProperties, const QSSGShaderFeatures &featureSet, QByteArray &shaderString) |
static void | setTonemapFeatures (QSSGShaderFeatures &features, QSSGRenderLayer::TonemapMode tonemapMode) |
Static Protected Member Functions | |
static void | getLayerHitObjectList (const QSSGRenderLayer &layer, QSSGBufferManager &bufferManager, const QSSGRenderRay &ray, bool inPickEverything, PickResultList &outIntersectionResult) |
static void | intersectRayWithSubsetRenderable (QSSGBufferManager &bufferManager, const QSSGRenderRay &inRay, const QSSGRenderNode &node, PickResultList &outIntersectionResultList) |
static void | intersectRayWithItem2D (const QSSGRenderRay &inRay, const QSSGRenderItem2D &item2D, PickResultList &outIntersectionResultList) |
Friends | |
class | QSSGRenderContextInterface |
class | QSSGLayerRenderData |
Definition at line 46 of file qssgrenderer_p.h.
|
strong |
Enumerator | |
---|---|
Default | |
Uv | |
UvTangent |
Definition at line 116 of file qssgrenderer_p.h.
|
default |
QSSGRenderer::~QSSGRenderer | ( | ) |
Definition at line 127 of file qssgrenderer.cpp.
void QSSGRenderer::addMaterialDirtyClear | ( | QSSGRenderGraphObject * | material | ) |
Definition at line 241 of file qssgrenderer.cpp.
References QSet< T >::insert().
void QSSGRenderer::beginFrame | ( | QSSGRenderLayer * | layer | ) |
Definition at line 313 of file qssgrenderer.cpp.
References QSSGRHICTX_STAT, and QSSGRenderContextInterface::rhiContext().
void QSSGRenderer::beginLayerRender | ( | QSSGLayerRenderData & | inLayer | ) |
Definition at line 413 of file qssgrenderer.cpp.
Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().
void QSSGRenderer::cleanupResources | ( | QList< QSSGRenderGraphObject * > & | resources | ) |
Definition at line 221 of file qssgrenderer.cpp.
References cleanupResourcesImpl(), and QList< T >::clear().
void QSSGRenderer::cleanupResources | ( | QSet< QSSGRenderGraphObject * > & | resources | ) |
Definition at line 227 of file qssgrenderer.cpp.
References cleanupResourcesImpl(), and QSet< T >::clear().
|
inline |
Definition at line 110 of file qssgrenderer_p.h.
Referenced by QSSGLayerRenderData::contextInterface(), QSSGLayerRenderData::maybeBakeLightmap(), QSSGLayerRenderData::prepareForRender(), QSSGLayerRenderData::prepareImageForRender(), QSSGLayerRenderData::prepareModelsForRender(), QSSGLayerRenderData::prepareParticlesForRender(), QSSGLayerRenderData::prepareResourceLoaders(), QSSGLayerRenderData::requestReflectionMapManager(), QSSGLayerRenderData::requestShadowMapManager(), rhiPrepare(), RenderHelpers::rhiPrepareDepthPass(), RenderHelpers::rhiPrepareRenderable(), rhiPrepareResourcesForShadowMap(), and RenderHelpers::rhiRenderRenderable().
|
inline |
Definition at line 54 of file qssgrenderer_p.h.
Referenced by QSSGLayerRenderData::generateLightingKey(), QSSGLayerRenderData::prepareImageForRender(), QSSGLayerRenderData::prepareModelsForRender(), RenderHelpers::rhiPrepareRenderable(), QSSGCustomMaterialSystem::rhiPrepareRenderable(), rhiPrepareResourcesForShadowMap(), and QSSGLayerRenderData::setVertexInputPresence().
void QSSGRenderer::endFrame | ( | QSSGRenderLayer * | layer | ) |
Definition at line 318 of file qssgrenderer.cpp.
References QSet< T >::clear(), QSSGRHICTX_STAT, and QSSGRenderContextInterface::rhiContext().
void QSSGRenderer::endLayerRender | ( | ) |
Definition at line 417 of file qssgrenderer.cpp.
Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().
|
static |
Definition at line 249 of file qssgrenderer.cpp.
References QSSGRenderDefaultMaterial::adapter, QSet< T >::cend(), QSet< T >::constFind(), QSSGSubsetRenderable::defaultMaterial(), QSSGSubsetRenderable::firstImage, QSSGMaterialShaderGenerator::generateMaterialRhiShader(), QQsbCollection::EntryDesc::generateSha(), QSet< T >::isEmpty(), QSSGSubsetRenderable::lights, logPrefix(), QSSGShaderLibraryManager::m_preGeneratedShaderEntries, QSSGSubsetRenderable::material, QSSGShaderCache::newPipelineFromPregenerated(), QSSGSubsetRenderable::shaderDescription, QQsbCollection::toFeatureSet(), QSSGShaderDefaultMaterialKey::toString(), QSSGShaderCache::tryGetRhiShaderPipeline(), and QSSGShaderCache::tryNewPipelineFromPersistentCache().
QSSGLayerGlobalRenderProperties QSSGRenderer::getLayerGlobalRenderProperties | ( | ) |
Definition at line 635 of file qssgrenderer.cpp.
References QSSGLayerRenderData::camera, QSSGLayerRenderData::cameraData, QSSGLayerRenderData::depthMapPass, QSSGLayerRenderData::getShadowMapManager(), QRhi::isClipDepthZeroToOne(), QRhi::isYUpInFramebuffer(), QRhi::isYUpInNDC(), QSSGLayerRenderData::layer, QSSGRenderLayer::lightProbe, QSSGRenderLayer::probeExposure, QSSGRenderLayer::probeHorizon, QSSGRenderLayer::probeOrientation, SSAOMapPass::rhiAoTexture, QSSGRenderContextInterface::rhiContext(), DepthMapPass::rhiDepthTexture, ScreenMapPass::rhiScreenTexture, QSSGLayerRenderData::screenMapPass, QSSGLayerRenderData::ssaoMapPass, and QSSGRhiRenderableTexture::texture.
Referenced by QSSGCustomMaterialSystem::updateUniformsForCustomMaterial().
|
staticprotected |
Definition at line 437 of file qssgrenderer.cpp.
References QVarLengthArray< T, Prealloc >::at(), dfs(), intersectRayWithSubsetRenderable(), QSSGRenderNode::Pickable, and QVLABaseBase::size().
Referenced by syncPick(), and syncPickAll().
QSSGLayerRenderData * QSSGRenderer::getOrCreateLayerRenderData | ( | QSSGRenderLayer & | layer | ) |
Definition at line 233 of file qssgrenderer.cpp.
References QSSGLayerRenderData.
Referenced by prepareLayerForRender(), rhiPrepare(), and rhiRender().
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiCubemapShadowBlurXShader | ( | ) |
Definition at line 30 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiCubemapShadowBlurYShader | ( | ) |
Definition at line 35 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiDebugObjectShader | ( | ) |
Definition at line 184 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiGridShader | ( | ) |
Definition at line 40 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiLightmapDilateShader | ( | ) |
Definition at line 179 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiLightmapUVRasterizationShader | ( | LightmapUVRasterizationShaderMode | mode | ) |
Definition at line 166 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral, Uv, and UvTangent.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiOrthographicShadowBlurXShader | ( | ) |
Definition at line 45 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiOrthographicShadowBlurYShader | ( | ) |
Definition at line 50 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiParticleShader | ( | QSSGRenderParticles::FeatureLevel | featureLevel | ) |
Definition at line 118 of file qssgrendererimplshaders_rhi.cpp.
References QSSGRenderParticles::Animated, QSSGRenderParticles::AnimatedVLight, QSSGRenderParticles::Line, QSSGRenderParticles::LineAnimated, QSSGRenderParticles::LineAnimatedVLight, QSSGRenderParticles::LineMapped, QSSGRenderParticles::LineMappedVLight, QSSGRenderParticles::LineVLight, QSSGRenderParticles::Mapped, QSSGRenderParticles::MappedVLight, QByteArrayLiteral, QSSGRenderParticles::Simple, and QSSGRenderParticles::SimpleVLight.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiProgressiveAAShader | ( | ) |
Definition at line 108 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSimpleQuadShader | ( | ) |
Definition at line 161 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSkyBoxCubeShader | ( | ) |
Definition at line 60 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSkyBoxShader | ( | QSSGRenderLayer::TonemapMode | tonemapMode, |
bool | isRGBE | ||
) |
Definition at line 65 of file qssgrendererimplshaders_rhi.cpp.
References QSSGRenderLayer::Aces, QSSGRenderLayer::Filmic, QSSGRenderLayer::HejlDawson, QSSGRenderLayer::Linear, QSSGRenderLayer::None, QByteArrayLiteral, and QSSGRenderContextInterface::shaderCache().
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSsaoShader | ( | ) |
Definition at line 55 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiSupersampleResolveShader | ( | ) |
Definition at line 103 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getRhiTexturedQuadShader | ( | ) |
Definition at line 113 of file qssgrendererimplshaders_rhi.cpp.
References QByteArrayLiteral.
QSSGRhiShaderPipelinePtr QSSGRenderer::getShaderPipelineForDefaultMaterial | ( | QSSGSubsetRenderable & | inRenderable, |
const QSSGShaderFeatures & | inFeatureSet | ||
) |
Definition at line 583 of file qssgrenderer.cpp.
References QSSGLayerRenderData::camera, QSSGLayerRenderData::cameraData, QSSGShaderMapKey::detach(), QHash< Key, T >::end(), QHash< Key, T >::find(), QHash< Key, T >::insert(), it, QSSGSubsetRenderable::material, Q_ASSERT, Q_QUICK3D_PROFILE_END_WITH_ID, Q_QUICK3D_PROFILE_START, Q_TRACE_SCOPE, Q_UNLIKELY, QSSGRenderContextInterface::rhiContext(), QSSGSubsetRenderable::shaderDescription, QTimer::start(), and timer.
|
staticprotected |
Definition at line 556 of file qssgrenderer.cpp.
References d, QSSGRenderRay::direction, QVector3D::dotProduct(), QSSGRenderNode::getDirection(), QSSGRenderNode::getGlobalPos(), QSSGRenderNode::globalTransform, QMatrix4x4::inverted(), QSSGRenderRay::origin, QVarLengthArray< T, Prealloc >::push_back(), mat44::transform(), QVector3D::x(), and QVector3D::y().
Referenced by intersectRayWithSubsetRenderable().
|
staticprotected |
Definition at line 454 of file qssgrenderer.cpp.
References QList< T >::clear(), QAbstractItemModel::count, QSSGRenderRay::createIntersectionResult(), QSSGRenderRay::createRayData(), QSSGRenderRay::IntersectionResult::faceNormal, QSSGBufferManager::getMeshForPicking(), QSSGBounds3::include(), instanceCount, intersectRayWithItem2D(), QSSGRenderRay::IntersectionResult::intersects, QSSGRenderRay::intersectWithAABBv2(), QSSGRenderRay::intersectWithBVH(), QSSGBounds3::isEmpty(), QSSGRenderRay::IntersectionResult::localPosition, QSSGBufferManager::meshUpdateMutex(), model, QVarLengthArray< T, Prealloc >::push_back(), QSSGRenderRay::IntersectionResult::rayLengthSquared, QSSGRenderRay::IntersectionResult::relXY, results, QSSGRenderRay::IntersectionResult::scenePosition, QSSGRenderMesh::subsets, and QSSGRenderGraphObject::type.
Referenced by getLayerHitObjectList(), and syncPick().
bool QSSGRenderer::isGlobalPickingEnabled | ( | ) | const |
Definition at line 380 of file qssgrenderer.cpp.
Referenced by QSSGLayerRenderData::prepareForRender().
bool QSSGRenderer::prepareLayerForRender | ( | QSSGRenderLayer & | inLayer | ) |
Definition at line 138 of file qssgrenderer.cpp.
References beginLayerRender(), endLayerRender(), getOrCreateLayerRenderData(), QSSGLayerRenderData::layerPrepResult, QSSGLayerRenderData::prepareForRender(), Q_ASSERT, and QSSGLayerRenderData::resetForFrame().
bool QSSGRenderer::rendererRequestsFrames | ( | ) | const |
Definition at line 422 of file qssgrenderer.cpp.
QSSGRhiCubeRenderer * QSSGRenderer::rhiCubeRenderer | ( | ) |
Definition at line 401 of file qssgrenderer.cpp.
References QSSGRenderContextInterface::rhiContext().
void QSSGRenderer::rhiPrepare | ( | QSSGRenderLayer & | inLayer | ) |
Definition at line 150 of file qssgrenderer.cpp.
References QSSGLayerRenderData::activePasses, beginLayerRender(), QSSGLayerRenderData::camera, contextInterface(), endLayerRender(), getOrCreateLayerRenderData(), QRhi::isRecordingFrame(), QSSGRhiContext::isValid(), QSSGLayerRenderData::layerPrepResult, QSSGLayerRenderData::maybeBakeLightmap(), QSSG_ASSERT, QSSGRhiContext::rhi(), and QSSGRenderContextInterface::rhiContext().
QSSGRhiQuadRenderer * QSSGRenderer::rhiQuadRenderer | ( | ) |
Definition at line 390 of file qssgrenderer.cpp.
References QSSGRenderContextInterface::rhiContext().
void QSSGRenderer::rhiRender | ( | QSSGRenderLayer & | inLayer | ) |
Definition at line 178 of file qssgrenderer.cpp.
References QSSGLayerRenderData::activePasses, beginLayerRender(), QSSGLayerRenderData::camera, endLayerRender(), getOrCreateLayerRenderData(), QSSGLayerRenderData::layerPrepResult, and QSSG_ASSERT.
void QSSGRenderer::setGlobalPickingEnabled | ( | bool | isEnabled | ) |
Definition at line 385 of file qssgrenderer.cpp.
void QSSGRenderer::setRenderContextInterface | ( | QSSGRenderContextInterface * | ctx | ) |
Definition at line 133 of file qssgrenderer.cpp.
|
static |
Definition at line 668 of file qssgrenderer.cpp.
References QSSGRenderLayer::Aces, QSSGShaderFeatures::AcesTonemapping, QSSGRenderLayer::Filmic, QSSGShaderFeatures::FilmicTonemapping, QSSGRenderLayer::HejlDawson, QSSGShaderFeatures::HejlDawsonTonemapping, QSSGRenderLayer::Linear, QSSGShaderFeatures::LinearTonemapping, and QSSGShaderFeatures::set().
Referenced by QSSGRenderEffect::finalizeShaders(), and QSSGLayerRenderData::prepareForRender().
QSSGRenderPickResult QSSGRenderer::syncPick | ( | const QSSGRenderLayer & | layer, |
QSSGBufferManager & | bufferManager, | ||
const QSSGRenderRay & | ray, | ||
QSSGRenderNode * | target = nullptr |
||
) |
Definition at line 349 of file qssgrenderer.cpp.
References QSSGRenderNode::Active, getLayerHitObjectList(), intersectRayWithSubsetRenderable(), QSSGPickResultProcessResult::m_wasPickConsumed, and Q_ASSERT.
QSSGRenderer::PickResultList QSSGRenderer::syncPickAll | ( | const QSSGRenderLayer & | layer, |
QSSGBufferManager & | bufferManager, | ||
const QSSGRenderRay & | ray | ||
) |
Definition at line 335 of file qssgrenderer.cpp.
References QSSGRenderNode::Active, QVarLengthArray< T, Prealloc >::begin(), QVarLengthArray< T, Prealloc >::end(), getLayerHitObjectList(), and Q_ASSERT.
|
friend |
Definition at line 156 of file qssgrenderer_p.h.
Referenced by getOrCreateLayerRenderData().
|
friend |
Definition at line 155 of file qssgrenderer_p.h.