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>.
Loading...
Searching...
No Matches
QSSGRendererPrivate Class Reference

#include <qssgrenderer_p.h>

+ Collaboration diagram for QSSGRendererPrivate:

Public Types

using PickResultList = QVarLengthArray<QSSGRenderPickResult, 20>
 

Static Public Member Functions

static QSSGRhiShaderPipelinePtr generateRhiShaderPipelineImpl (QSSGSubsetRenderable &renderable, QSSGShaderLibraryManager &shaderLibraryManager, QSSGShaderCache &shaderCache, QSSGProgramGenerator &shaderProgramGenerator, const QSSGShaderDefaultMaterialKeyProperties &shaderKeyProperties, const QSSGShaderFeatures &featureSet, QByteArray &shaderString)
 
static QSSGRhiShaderPipelinePtr generateRhiShaderPipeline (QSSGRenderer &renderer, QSSGSubsetRenderable &inRenderable, const QSSGShaderFeatures &inFeatureSet)
 
static QSSGRhiShaderPipelinePtr getShaderPipelineForDefaultMaterial (QSSGRenderer &renderer, QSSGSubsetRenderable &inRenderable, const QSSGShaderFeatures &inFeatureSet)
 
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)
 
static PickResultList syncPickAll (const QSSGRenderContextInterface &ctx, const QSSGRenderLayer &layer, const QSSGRenderRay &ray)
 
static PickResultList syncPick (const QSSGRenderContextInterface &ctx, const QSSGRenderLayer &layer, const QSSGRenderRay &ray, QSSGRenderNode *target=nullptr)
 
static PickResultList syncPickSubset (const QSSGRenderLayer &layer, QSSGBufferManager &bufferManager, const QSSGRenderRay &ray, QVarLengthArray< QSSGRenderNode * > subset)
 
static bool isGlobalPickingEnabled (const QSSGRenderer &renderer)
 
static void setGlobalPickingEnabled (QSSGRenderer &renderer, bool isEnabled)
 
static void setRenderContextInterface (QSSGRenderer &renderer, QSSGRenderContextInterface *ctx)
 

Detailed Description

Definition at line 118 of file qssgrenderer_p.h.

Member Typedef Documentation

◆ PickResultList

Member Function Documentation

◆ generateRhiShaderPipeline()

QSSGRhiShaderPipelinePtr QSSGRendererPrivate::generateRhiShaderPipeline ( QSSGRenderer & renderer,
QSSGSubsetRenderable & inRenderable,
const QSSGShaderFeatures & inFeatureSet )
static

Definition at line 266 of file qssgrenderer.cpp.

References generateRhiShaderPipelineImpl(), and renderer.

Referenced by getShaderPipelineForDefaultMaterial().

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

◆ generateRhiShaderPipelineImpl()

QSSGRhiShaderPipelinePtr QSSGRendererPrivate::generateRhiShaderPipelineImpl ( QSSGSubsetRenderable & renderable,
QSSGShaderLibraryManager & shaderLibraryManager,
QSSGShaderCache & shaderCache,
QSSGProgramGenerator & shaderProgramGenerator,
const QSSGShaderDefaultMaterialKeyProperties & shaderKeyProperties,
const QSSGShaderFeatures & featureSet,
QByteArray & shaderString )
static

Definition at line 210 of file qssgrenderer.cpp.

References QSet< T >::constFind(), QSSGMaterialShaderGenerator::generateMaterialRhiShader(), QQsbCollection::EntryDesc::generateSha(), logPrefix(), QSSGShaderLibraryManager::m_preGeneratedShaderEntries, QSSGShaderCache::newPipelineFromPregenerated(), QQsbCollection::toFeatureSet(), QSSGShaderCache::tryGetRhiShaderPipeline(), and QSSGShaderCache::tryNewPipelineFromPersistentCache().

Referenced by generateRhiShaderPipeline().

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

◆ getLayerHitObjectList()

void QSSGRendererPrivate::getLayerHitObjectList ( const QSSGRenderLayer & layer,
QSSGBufferManager & bufferManager,
const QSSGRenderRay & ray,
bool inPickEverything,
PickResultList & outIntersectionResult )
static

Definition at line 415 of file qssgrenderer.cpp.

References dfs(), intersectRayWithSubsetRenderable(), and QSSGRenderNode::Pickable.

Referenced by syncPick(), and syncPickAll().

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

◆ getShaderPipelineForDefaultMaterial()

QSSGRhiShaderPipelinePtr QSSGRendererPrivate::getShaderPipelineForDefaultMaterial ( QSSGRenderer & renderer,
QSSGSubsetRenderable & inRenderable,
const QSSGShaderFeatures & inFeatureSet )
static

Definition at line 561 of file qssgrenderer.cpp.

References QSet< T >::end(), QSet< T >::find(), generateRhiShaderPipeline(), QSSGRhiContextStats::get(), it, Q_QUICK3D_PROFILE_END_WITH_ID, Q_QUICK3D_PROFILE_START, Q_TRACE_SCOPE, QByteArray(), QSSG_ASSERT, renderer, QTimer::start(), and timer.

Referenced by shadersForDefaultMaterial().

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

◆ intersectRayWithItem2D()

void QSSGRendererPrivate::intersectRayWithItem2D ( const QSSGRenderRay & inRay,
const QSSGRenderItem2D & item2D,
PickResultList & outIntersectionResultList )
static

Definition at line 534 of file qssgrenderer.cpp.

References d, QVector3D::dotProduct(), QMatrix4x4::inverted(), and QSSGUtils::mat44::transform().

Referenced by intersectRayWithSubsetRenderable().

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

◆ intersectRayWithSubsetRenderable()

void QSSGRendererPrivate::intersectRayWithSubsetRenderable ( QSSGBufferManager & bufferManager,
const QSSGRenderRay & inRay,
const QSSGRenderNode & node,
PickResultList & outIntersectionResultList )
static

Definition at line 432 of file qssgrenderer.cpp.

References QList< T >::clear(), QAbstractItemModel::count, QSSGRenderRay::createIntersectionResult(), QSSGRenderRay::createRayData(), QSSGBufferManager::getMeshForPicking(), QSSGBounds3::include(), instanceCount, intersectRayWithItem2D(), QSSGRenderRay::intersectWithAABBv2(), QSSGBufferManager::meshUpdateMutex(), model, results, QSSGRenderMesh::subsets, and QSSGRenderGraphObject::type.

Referenced by getLayerHitObjectList(), syncPick(), and syncPickSubset().

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

◆ isGlobalPickingEnabled()

static bool QSSGRendererPrivate::isGlobalPickingEnabled ( const QSSGRenderer & renderer)
inlinestatic

Definition at line 168 of file qssgrenderer_p.h.

References renderer.

Referenced by QSSGLayerRenderData::prepareForRender(), syncPick(), and syncPickAll().

+ Here is the caller graph for this function:

◆ setGlobalPickingEnabled()

void QSSGRendererPrivate::setGlobalPickingEnabled ( QSSGRenderer & renderer,
bool isEnabled )
static

Definition at line 369 of file qssgrenderer.cpp.

References renderer.

Referenced by QQuick3DSceneRenderer::setGlobalPickingEnabled().

+ Here is the caller graph for this function:

◆ setRenderContextInterface()

void QSSGRendererPrivate::setRenderContextInterface ( QSSGRenderer & renderer,
QSSGRenderContextInterface * ctx )
static

Definition at line 374 of file qssgrenderer.cpp.

References renderer.

◆ syncPick()

QSSGRendererPrivate::PickResultList QSSGRendererPrivate::syncPick ( const QSSGRenderContextInterface & ctx,
const QSSGRenderLayer & layer,
const QSSGRenderRay & ray,
QSSGRenderNode * target = nullptr )
static

Definition at line 331 of file qssgrenderer.cpp.

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

Referenced by QQuick3DSceneRenderer::syncPick(), and QQuick3DSceneRenderer::syncPickOne().

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

◆ syncPickAll()

QSSGRendererPrivate::PickResultList QSSGRendererPrivate::syncPickAll ( const QSSGRenderContextInterface & ctx,
const QSSGRenderLayer & layer,
const QSSGRenderRay & ray )
static

Definition at line 315 of file qssgrenderer.cpp.

References QSSGRenderNode::Active, getLayerHitObjectList(), isGlobalPickingEnabled(), and Q_ASSERT.

Referenced by QQuick3DSceneRenderer::syncPickAll().

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

◆ syncPickSubset()

QSSGRendererPrivate::PickResultList QSSGRendererPrivate::syncPickSubset ( const QSSGRenderLayer & layer,
QSSGBufferManager & bufferManager,
const QSSGRenderRay & ray,
QVarLengthArray< QSSGRenderNode * > subset )
static

Definition at line 352 of file qssgrenderer.cpp.

References QSSGRenderNode::Active, intersectRayWithSubsetRenderable(), and Q_ASSERT.

Referenced by QQuick3DSceneRenderer::syncPickSubset().

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

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