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
QQuick3DSceneRenderer Class Reference

#include <qquick3dscenerenderer_p.h>

+ Collaboration diagram for QQuick3DSceneRenderer:

Public Member Functions

 QQuick3DSceneRenderer (const std::shared_ptr< QSSGRenderContextInterface > &rci)
 
 ~QQuick3DSceneRenderer ()
 

Static Public Member Functions

static QSSGRenderLayer::TonemapMode getTonemapMode (const QQuick3DSceneEnvironment &environment)
 

Protected Member Functions

QRhiTexturerenderToRhiTexture (QQuickWindow *qw)
 
void beginFrame ()
 
void endFrame ()
 
void rhiPrepare (const QRect &viewport, qreal displayPixelRatio)
 
void rhiRender ()
 
void synchronize (QQuick3DViewport *view3D, const QSize &size, float dpr)
 
void invalidateFramebufferObject ()
 
QSize surfaceSize () const
 
void releaseCachedResources ()
 
std::optional< QSSGRenderRaygetRayFromViewportPos (const QPointF &pos)
 
PickResultList syncPick (const QSSGRenderRay &ray)
 
PickResultList syncPickOne (const QSSGRenderRay &ray, QSSGRenderNode *node)
 
PickResultList syncPickSubset (const QSSGRenderRay &ray, QVarLengthArray< QSSGRenderNode * > subset)
 
PickResultList syncPickAll (const QSSGRenderRay &ray)
 
void setGlobalPickingEnabled (bool isEnabled)
 
QQuick3DRenderStatsrenderStats ()
 

Friends

class SGFramebufferObjectNode
 
class QQuick3DSGRenderNode
 
class QQuick3DSGDirectRenderer
 
class QQuick3DViewport
 
struct ViewportTransformHelper
 

Detailed Description

Definition at line 42 of file qquick3dscenerenderer_p.h.

Constructor & Destructor Documentation

◆ QQuick3DSceneRenderer()

QQuick3DSceneRenderer::QQuick3DSceneRenderer ( const std::shared_ptr< QSSGRenderContextInterface > & rci)
explicit

Definition at line 189 of file qquick3dscenerenderer.cpp.

References dumpRenderTimes, and qEnvironmentVariableIntValue().

+ Here is the call graph for this function:

◆ ~QQuick3DSceneRenderer()

QQuick3DSceneRenderer::~QQuick3DSceneRenderer ( )

Definition at line 195 of file qquick3dscenerenderer.cpp.

References QSSGRhiContextStats::get().

+ Here is the call graph for this function:

Member Function Documentation

◆ beginFrame()

void QQuick3DSceneRenderer::beginFrame ( )
protected

Definition at line 500 of file qquick3dscenerenderer.cpp.

Referenced by QQuick3DSGRenderNode::prepare(), and renderToRhiTexture().

+ Here is the caller graph for this function:

◆ endFrame()

void QQuick3DSceneRenderer::endFrame ( )
protected

Definition at line 505 of file qquick3dscenerenderer.cpp.

Referenced by QQuick3DSGRenderNode::render(), and renderToRhiTexture().

+ Here is the caller graph for this function:

◆ getRayFromViewportPos()

std::optional< QSSGRenderRay > QQuick3DSceneRenderer::getRayFromViewportPos ( const QPointF & pos)
protected

Definition at line 1028 of file qquick3dscenerenderer.cpp.

References QSize::height(), QVarLengthArray< T, Prealloc >::isEmpty(), pos, position(), QSSGRenderLayer::renderedCameras, QSSGUtils::rect::toRectRelative(), QSize::width(), QVector2D::x(), and QVector2D::y().

Referenced by ViewportTransformHelper::map().

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

◆ getTonemapMode()

static QSSGRenderLayer::TonemapMode QQuick3DSceneRenderer::getTonemapMode ( const QQuick3DSceneEnvironment & environment)
inlinestatic

Definition at line 49 of file qquick3dscenerenderer_p.h.

References QSSGRenderLayer::Custom, QSSGRenderLayer::None, QQuick3DSceneEnvironment::tonemapMode, QQuick3DSceneEnvironment::TonemapModeNone, and QQuick3DSceneEnvironment::useBuiltinTonemapper().

Referenced by QQuick3DRenderLayerHelpers::updateLayerNodeHelper().

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

◆ invalidateFramebufferObject()

void QQuick3DSceneRenderer::invalidateFramebufferObject ( )
protected

Definition at line 1012 of file qquick3dscenerenderer.cpp.

References SGFramebufferObjectNode::invalidatePending.

Referenced by SGFramebufferObjectNode::handleScreenChange().

+ Here is the caller graph for this function:

◆ releaseCachedResources()

void QQuick3DSceneRenderer::releaseCachedResources ( )
protected

Definition at line 1018 of file qquick3dscenerenderer.cpp.

References QSSGLayerRenderData::getReflectionMapManager(), QSSGLayerRenderData::getShadowMapManager(), and QSSGRenderLayer::renderData.

+ Here is the call graph for this function:

◆ renderStats()

QQuick3DRenderStats * QQuick3DSceneRenderer::renderStats ( )
protected

Definition at line 1096 of file qquick3dscenerenderer.cpp.

Referenced by SGFramebufferObjectNode::render().

+ Here is the caller graph for this function:

◆ renderToRhiTexture()

QRhiTexture * QQuick3DSceneRenderer::renderToRhiTexture ( QQuickWindow * qw)
protected

Definition at line 260 of file qquick3dscenerenderer.cpp.

References QSSGRhiShaderResourceBindingList::addTexture(), QSSGRhiShaderResourceBindingList::addUniformBuffer(), QSSGRenderLayer::antialiasingMode, QSSGRenderLayer::antialiasingQuality, beginFrame(), cb, QRhiSampler::ClampToEdge, QSSGRenderLayer::Color, QSSGRhiContext::commandBuffer(), QSSGRhiContext::commonPassFlags(), QRhiResourceUpdateBatch::copyTexture(), QRhiBuffer::create(), QRhiSwapChain::currentFrameCommandBuffer(), QSSGFrameData::DepthTexture, dpr(), QRhiBuffer::Dynamic, endFrame(), QQuick3DRenderStats::endRenderPrepare(), QSSGRenderLayer::firstEffect, QRhiShaderResourceBinding::FragmentStage, QSSGRhiContextStats::get(), QSSGRhiContextPrivate::get(), QSize::height(), QVarLengthArray< T, Prealloc >::isEmpty(), QSSGRenderLayer::lightProbe, QRhiSampler::Linear, QRhi::newBuffer(), QRhi::nextResourceUpdateBatch(), QRhiSampler::None, QSSGRhiEffectSystem::process(), QSSGRenderLayer::progAAPassIndex, QSSGRenderLayer::progressiveAAIsActive, Q_ASSERT, Q_QUICK3D_PROFILE_END_WITH_ID, Q_QUICK3D_PROFILE_END_WITH_STRING, Q_QUICK3D_PROFILE_START, Q_TRACE, Q_TRACE_SCOPE, QByteArrayLiteral, QSSG_prepareFrame_entry, QSSGRHICTX_STAT, QStringLiteral, qWarning, QSSGRenderLayer::renderedCameras, renderer, QRhiSampler::Repeat, QSSGRhiContext::rhi(), rhiPrepare(), QSGRendererInterface::RhiRedirectCommandBuffer, rhiRender(), s_ProgressiveAABlendFactors, s_TemporalAABlendFactors, QRhiRenderBuffer::sampleCount(), QSSGRhiContext::sampler(), QSSGRhiGraphicsPipelineStatePrivate::setShaderPipeline(), QSSGRenderLayer::SkyBox, QSSGRenderLayer::SkyBoxCubeMap, QSSGRenderLayer::skyBoxCubeMap, QSSGRenderLayer::SSAA, QQuick3DRenderStats::startRenderPrepare(), QSSGRenderLayer::tempAAPassIndex, QSSGRenderLayer::temporalAAIsActive, Qt::transparent, QRhiBuffer::UniformBuffer, QSSGRhiQuadRenderer::UvCoords, QSSGRhiGraphicsPipelineState::viewport, and QSize::width().

Referenced by SGFramebufferObjectNode::render().

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

◆ rhiPrepare()

void QQuick3DSceneRenderer::rhiPrepare ( const QRect & viewport,
qreal displayPixelRatio )
protected

Definition at line 510 of file qquick3dscenerenderer.cpp.

References QVarLengthArray< T, Prealloc >::isEmpty(), QSSGRenderLayer::renderData, QSSGLayerRenderData::renderedCameras, renderer, and viewport().

Referenced by QQuick3DSGRenderNode::prepare(), and renderToRhiTexture().

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

◆ rhiRender()

void QQuick3DSceneRenderer::rhiRender ( )
protected

Definition at line 532 of file qquick3dscenerenderer.cpp.

Referenced by QQuick3DSGRenderNode::render(), and renderToRhiTexture().

+ Here is the caller graph for this function:

◆ setGlobalPickingEnabled()

void QQuick3DSceneRenderer::setGlobalPickingEnabled ( bool isEnabled)
protected

Definition at line 1091 of file qquick3dscenerenderer.cpp.

References QSSGRendererPrivate::setGlobalPickingEnabled().

+ Here is the call graph for this function:

◆ surfaceSize()

QSize QQuick3DSceneRenderer::surfaceSize ( ) const
inlineprotected

Definition at line 67 of file qquick3dscenerenderer_p.h.

Referenced by QQuick3DSGRenderNode::prepare(), and SGFramebufferObjectNode::render().

+ Here is the caller graph for this function:

◆ synchronize()

void QQuick3DSceneRenderer::synchronize ( QQuick3DViewport * view3D,
const QSize & size,
float dpr )
protected

Definition at line 575 of file qquick3dscenerenderer.cpp.

References QColor::alphaF(), QSSGRenderLayer::antialiasingMode, QSSGRenderLayer::antialiasingQuality, QRhi::backend(), QQuick3DSceneEnvironment::backgroundMode, bfs(), QColor::blueF(), QQuick3DLightmapBaker::Cancelled, QSSGLightmapper::Cancelled, QList< T >::clear(), QQuick3DSceneEnvironment::clearColor, QQuick3DViewport::clearExtensionListDirty(), QRhiRenderBuffer::Color, QQuick3DLightmapBaker::Complete, QSSGLightmapper::Complete, QSSGRenderLayer::Count, QRhiTexture::create(), QRhiRenderBuffer::create(), QRhiTextureRenderTarget::create(), QRhiRenderBuffer::DepthStencil, dpr(), dumpRenderTimes, QQuick3DRenderStats::endSync(), QQuick3DViewport::environment, QQuick3DLightmapBaker::Error, QSSGLightmapper::Error, QQuick3DViewport::extensionList(), QQuick3DViewport::extensionListDirty(), QSSGRenderLayer::firstEffect, QRhiTexture::format(), QColor::fromRgbF(), QQuick3DObjectPrivate::get(), QQuick3DSceneManager::getOrSetWindowAttachment(), QColor::greenF(), QSize::height(), i, QQuick3DViewport::importScene, QSSGLayerRenderData::interactiveLightmapBakingRequested, isEmbedded(), QSSGRenderGraphObject::isExtension(), QRhi::isFeatureSupported(), QSSGRhiContext::isValid(), QRhi::isYUpInFramebuffer(), it, QSSGLayerRenderData::lightmapBakingOutputCallback, list, QSSGRenderEffect::m_nextEffect, QQuick3DViewport::maybeLightmapBaker(), QRhi::Metal, QSSGRenderLayer::MSAA, QRhi::MultisampleRenderBuffer, QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor(), QRhi::newRenderBuffer(), QRhi::newTexture(), QRhi::newTextureRenderTarget(), QSSGRenderLayer::NoAA, QQuick3DLightmapBaker::None, QSSGLightmapper::None, QQuick3DViewport::Offscreen, QQuick3DViewport::Overlay, QSSGRhiEffectSystem::overriddenOutputFormat(), QQuick3DObject::parent, QSSGRenderLayer::progAAPassIndex, QQuick3DLightmapBaker::Progress, QSSGLightmapper::Progress, QSSGRenderLayer::ProgressiveAA, Q_ASSERT, Q_QUICK3D_PROFILE_END_WITH_ID, Q_QUICK3D_PROFILE_START, Q_TRACE_SCOPE, QByteArrayLiteral, qMax(), QSSG_ASSERT, qWarning, QQuick3DWindowAttachment::rci(), QColor::redF(), QSSGRenderLayer::removeImportScene(), QSSGRenderLayer::renderData, QSSGRenderLayer::renderExtensions, QQuick3DViewport::renderFormat, QQuick3DViewport::renderMode, QQuick3DViewport::renderStats, QRhiTexture::RenderTarget, QQuick3DWindowAttachment::requestUpdate(), QRhiTexture::RGBA16F, QRhiTexture::RGBA8, QSSGRhiContext::rhi(), QQuick3DViewport::scene, QQuick3DSceneEnvironment::scissorRect, QSSGRenderLayer::scissorRect, QRhiTexture::setFormat(), QSSGRenderLayer::setImportScene(), QRhiResource::setName(), QRhiTexture::setPixelSize(), QRhiRenderBuffer::setPixelSize(), QQuick3DWindowAttachment::setRci(), QRhiColorAttachment::setRenderBuffer(), QRhiRenderTarget::setRenderPassDescriptor(), QRhiColorAttachment::setResolveTexture(), QQuick3DRenderStats::setRhiContext(), QSSGRhiEffectSystem::setup(), QRect::size(), QSSGRenderLayer::SSAA, QQuick3DRenderStats::startSync(), QRhi::supportedSampleCounts(), QQuick3DWindowAttachment::synchronize(), QSSGRenderLayer::tempAAPassIndex, QSSGRenderLayer::temporalAAEnabled, QQuick3DSceneEnvironment::tonemapMode, tonemapRgb(), QRect::topLeft(), QSSGBufferManager::toRhiFormat(), toRhiTextureFormat(), QQuick3DViewport::Underlay, QSSGRenderTextureFormat::Unknown, QRhiTexture::UsedAsTransferSource, QQuick3DLightmapBaker::Warning, QSSGLightmapper::Warning, QSize::width(), window(), QQuickItem::window(), and QQuick3DWindowAttachment::window().

◆ syncPick()

QQuick3DSceneRenderer::PickResultList QQuick3DSceneRenderer::syncPick ( const QSSGRenderRay & ray)
protected

Definition at line 1048 of file qquick3dscenerenderer.cpp.

References QSSGRendererPrivate::syncPick().

+ Here is the call graph for this function:

◆ syncPickAll()

QQuick3DSceneRenderer::PickResultList QQuick3DSceneRenderer::syncPickAll ( const QSSGRenderRay & ray)
protected

Definition at line 1081 of file qquick3dscenerenderer.cpp.

References QSSGRendererPrivate::syncPickAll().

+ Here is the call graph for this function:

◆ syncPickOne()

QQuick3DSceneRenderer::PickResultList QQuick3DSceneRenderer::syncPickOne ( const QSSGRenderRay & ray,
QSSGRenderNode * node )
protected

Definition at line 1058 of file qquick3dscenerenderer.cpp.

References QSSGRendererPrivate::syncPick().

Referenced by ViewportTransformHelper::map().

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

◆ syncPickSubset()

QQuick3DSceneRenderer::PickResultList QQuick3DSceneRenderer::syncPickSubset ( const QSSGRenderRay & ray,
QVarLengthArray< QSSGRenderNode * > subset )
protected

Definition at line 1069 of file qquick3dscenerenderer.cpp.

References QSSGRendererPrivate::syncPickSubset().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ QQuick3DSGDirectRenderer

friend class QQuick3DSGDirectRenderer
friend

Definition at line 130 of file qquick3dscenerenderer_p.h.

◆ QQuick3DSGRenderNode

friend class QQuick3DSGRenderNode
friend

Definition at line 129 of file qquick3dscenerenderer_p.h.

◆ QQuick3DViewport

friend class QQuick3DViewport
friend

Definition at line 131 of file qquick3dscenerenderer_p.h.

◆ SGFramebufferObjectNode

friend class SGFramebufferObjectNode
friend

Definition at line 128 of file qquick3dscenerenderer_p.h.

◆ ViewportTransformHelper

friend struct ViewportTransformHelper
friend

Definition at line 132 of file qquick3dscenerenderer_p.h.


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