Qt 6.x
The Qt SDK
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)
 
QSSGRenderPickResult syncPick (const QSSGRenderRay &ray)
 
QSSGRenderPickResult syncPickOne (const QSSGRenderRay &ray, QSSGRenderNode *node)
 
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 40 of file qquick3dscenerenderer_p.h.

Constructor & Destructor Documentation

◆ QQuick3DSceneRenderer()

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

Definition at line 191 of file qquick3dscenerenderer.cpp.

References dumpRenderTimes, and qEnvironmentVariableIntValue().

+ Here is the call graph for this function:

◆ ~QQuick3DSceneRenderer()

QQuick3DSceneRenderer::~QQuick3DSceneRenderer ( )

Definition at line 197 of file qquick3dscenerenderer.cpp.

References QSSGRhiContextStats::cleanupLayerInfo(), and QSSGRhiContext::stats().

+ Here is the call graph for this function:

Member Function Documentation

◆ beginFrame()

void QQuick3DSceneRenderer::beginFrame ( )
protected

Definition at line 498 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 503 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 1022 of file qquick3dscenerenderer.cpp.

References QSize::height(), pos, position(), QSSGRenderLayer::renderedCamera, toRectRelative(), QSSGRenderCamera::unproject(), 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 47 of file qquick3dscenerenderer_p.h.

References QSSGRenderLayer::None, QQuick3DSceneEnvironment::tonemapMode, 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 1006 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 1012 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 1078 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 261 of file qquick3dscenerenderer.cpp.

References QSSGRhiShaderResourceBindingList::addTexture(), QSSGRhiShaderResourceBindingList::addUniformBuffer(), QSSGRenderLayer::antialiasingMode, QSSGRenderLayer::antialiasingQuality, beginFrame(), cb, QRhiSampler::ClampToEdge, QSSGRenderCamera::clipFar, QSSGRenderCamera::clipNear, QSSGRenderLayer::Color, QSSGRhiContext::commandBuffer(), QSSGRhiContext::commonPassFlags(), QRhiResourceUpdateBatch::copyTexture(), QRhiBuffer::create(), QRhiSwapChain::currentFrameCommandBuffer(), QSSGLayerRenderData::depthMapPass, dpr(), QSSGRhiContext::drawCallData(), QRhiBuffer::Dynamic, endFrame(), QQuick3DRenderStats::endRenderPrepare(), QSSGRenderLayer::firstEffect, QRhiShaderResourceBinding::FragmentStage, QSGRendererInterface::getResource(), QSize::height(), QSSGRenderLayer::lightProbe, QRhiSampler::Linear, QRhi::newBuffer(), QRhi::nextResourceUpdateBatch(), QRhiSampler::None, QRhiTexture::pixelSize(), 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::renderedCamera, renderer, QRhiSampler::Repeat, QSSGRhiContext::rhi(), DepthMapPass::rhiDepthTexture, rhiPrepare(), QSGRendererInterface::RhiRedirectCommandBuffer, rhiRender(), s_ProgressiveAABlendFactors, s_TemporalAABlendFactors, QRhiRenderBuffer::sampleCount(), QSSGRhiContext::sampler(), QSSGRhiContext::setCommandBuffer(), QSSGRhiContext::setMainPassSampleCount(), QSSGRhiContext::setMainRenderPassDescriptor(), QSSGRhiContext::setRenderTarget(), QSSGRhiGraphicsPipelineState::shaderPipeline, QSSGRenderLayer::SkyBox, QSSGRenderLayer::SkyBoxCubeMap, QSSGRenderLayer::skyBoxCubeMap, QSSGRhiContext::srb(), QSSGRenderLayer::SSAA, QQuick3DRenderStats::startRenderPrepare(), QSSGRenderLayer::tempAAPassIndex, QSSGRenderLayer::temporalAAIsActive, QSSGRhiRenderableTexture::texture, Qt::transparent, QSSGRhiDrawCallData::ubuf, QRhiBuffer::UniformBuffer, QRhiResourceUpdateBatch::updateDynamicBuffer(), 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 508 of file qquick3dscenerenderer.cpp.

References Qt::black, QSSGLayerRenderData::camera, QSSGRenderLayer::renderData, 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 530 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 1073 of file qquick3dscenerenderer.cpp.

◆ surfaceSize()

QSize QQuick3DSceneRenderer::surfaceSize ( ) const
inlineprotected

Definition at line 61 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 573 of file qquick3dscenerenderer.cpp.

References QColor::alphaF(), QSSGRenderLayer::antialiasingMode, QSSGRenderLayer::antialiasingQuality, QRhi::backend(), QQuick3DSceneEnvironment::backgroundMode, bfs(), QColor::blueF(), QQuick3DLightmapBaker::Cancelled, QSSGLightmapper::Cancelled, QList< T >::cbegin(), QList< T >::cend(), QQuick3DSceneEnvironment::clearColor, QQuick3DViewport::clearExtensionListDirty(), QRhiRenderBuffer::Color, QQuick3DLightmapBaker::Complete, QSSGLightmapper::Complete, QListSpecialMethodsBase< T >::contains(), QRhiTexture::create(), QRhiRenderBuffer::create(), QRhiTextureRenderTarget::create(), QRhiRenderBuffer::DepthStencil, dpr(), dumpRenderTimes, QQuick3DRenderStats::endSync(), QQuick3DViewport::environment, QQuick3DLightmapBaker::Error, QSSGLightmapper::Error, ext, QQuick3DViewport::extensionList(), QQuick3DViewport::extensionListDirty(), QSSGRenderLayer::firstEffect, QRhiTexture::format(), QColor::fromRgbF(), QQuick3DObjectPrivate::get(), QQuick3DSceneManager::getOrSetWindowAttachment(), QColor::greenF(), QSize::height(), QQuick3DViewport::importScene, QSSGLayerRenderData::interactiveLightmapBakingRequested, QQuick3DLightmapBaker::BakingControl::isCancelled(), isEmbedded(), QList< T >::isEmpty(), QSSGRenderGraphObject::isExtension(), QRhi::isFeatureSupported(), QSSGRhiContext::isValid(), QRhi::isYUpInFramebuffer(), it, QList< T >::last(), 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(), QObject::parent(), 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, QQuick3DObjectPrivate::sceneManager, QQuick3DSceneEnvironment::scissorRect, QSSGRenderLayer::scissorRect, QRhiTextureRenderTargetDescription::setColorAttachments(), QRhiTextureRenderTargetDescription::setDepthStencilBuffer(), QRhiTexture::setFormat(), QSSGRenderLayer::setImportScene(), QRhiResource::setName(), QRhiTexture::setPixelSize(), QRhiRenderBuffer::setPixelSize(), QQuick3DWindowAttachment::setRci(), QRhiColorAttachment::setRenderBuffer(), QRhiRenderTarget::setRenderPassDescriptor(), QRhiColorAttachment::setResolveTexture(), QQuick3DRenderStats::setRhiContext(), QSSGRhiEffectSystem::setup(), QRect::size(), QQuick3DObjectPrivate::spatialNode, QSSGRenderLayer::SSAA, QQuick3DRenderStats::startSync(), QRhi::supportedSampleCounts(), QQuick3DWindowAttachment::synchronize(), QSSGRenderLayer::tempAAPassIndex, QSSGRenderLayer::temporalAAEnabled, QQuick3DSceneEnvironment::tonemapMode, tonemapRgb(), QRect::topLeft(), QSSGBufferManager::toRhiFormat(), toRhiTextureFormat(), QQuick3DObjectPrivate::type, QQuick3DViewport::Underlay, QSSGRenderTextureFormat::Unknown, QRhiTexture::UsedAsTransferSource, QSet< T >::values(), QQuick3DLightmapBaker::Warning, QSSGLightmapper::Warning, QQuick3DSceneManager::wattached, QSize::width(), QQuick3DSceneManager::window(), window(), QQuickItem::window(), and QQuick3DWindowAttachment::window().

◆ syncPick()

QSSGRenderPickResult QQuick3DSceneRenderer::syncPick ( const QSSGRenderRay ray)
protected

Definition at line 1042 of file qquick3dscenerenderer.cpp.

◆ syncPickAll()

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

Definition at line 1063 of file qquick3dscenerenderer.cpp.

◆ syncPickOne()

QSSGRenderPickResult QQuick3DSceneRenderer::syncPickOne ( const QSSGRenderRay ray,
QSSGRenderNode node 
)
protected

Definition at line 1052 of file qquick3dscenerenderer.cpp.

Referenced by ViewportTransformHelper::map().

+ Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ QQuick3DSGDirectRenderer

friend class QQuick3DSGDirectRenderer
friend

Definition at line 123 of file qquick3dscenerenderer_p.h.

◆ QQuick3DSGRenderNode

friend class QQuick3DSGRenderNode
friend

Definition at line 122 of file qquick3dscenerenderer_p.h.

◆ QQuick3DViewport

friend class QQuick3DViewport
friend

Definition at line 124 of file qquick3dscenerenderer_p.h.

◆ SGFramebufferObjectNode

friend class SGFramebufferObjectNode
friend

Definition at line 121 of file qquick3dscenerenderer_p.h.

◆ ViewportTransformHelper

friend struct ViewportTransformHelper
friend

Definition at line 125 of file qquick3dscenerenderer_p.h.


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