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.cpp File Reference

(f9d7a3692bcbf1ce79755b212649dc6c432c88ec)

#include "qquick3dcubemaptexture_p.h"
#include "qquick3dscenerenderer_p.h"
#include "qquick3dsceneenvironment_p.h"
#include "qquick3dobject_p.h"
#include "qquick3dnode_p.h"
#include "qquick3dscenemanager_p.h"
#include "qquick3dtexture_p.h"
#include "qquick3dcamera_p.h"
#include "qquick3dpickresult_p.h"
#include "qquick3dmodel_p.h"
#include "qquick3drenderstats_p.h"
#include "qquick3ddebugsettings_p.h"
#include "extensions/qquick3drenderextensions.h"
#include <QtQuick3DUtils/private/qquick3dprofiler_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendererutil_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrenderer_p.h>
#include <QtQuick/private/qquickwindow_p.h>
#include <QtQuick/private/qsgdefaultrendercontext_p.h>
#include <QtQuick/private/qsgtexture_p.h>
#include <QtQuick/private/qsgplaintexture_p.h>
#include <QtQuick/private/qsgrendernode_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrendereffect_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrhieffectsystem_p.h>
#include <QtQuick3DRuntimeRender/private/qssglayerrenderdata_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrhiquadrenderer_p.h>
#include <QtQuick3DRuntimeRender/private/qssgrhicontext_p.h>
#include <QtQuick3DRuntimeRender/private/qssgcputonemapper_p.h>
#include <QtQuick3DUtils/private/qssgutils_p.h>
#include <QtQuick3DUtils/private/qssgassert_p.h>
#include <qtquick3d_tracepoints_p.h>
#include <QtCore/QObject>
#include <QtCore/qqueue.h>
+ Include dependency graph for qquick3dscenerenderer.cpp:

Go to the source code of this file.

Functions

QT_BEGIN_NAMESPACE Q_TRACE_PREFIX (qtquick3d, "QT_BEGIN_NAMESPACE" "class QQuick3DViewport;" "QT_END_NAMESPACE") Q_TRACE_POINT(qtquick3d
 
 Q_TRACE_POINT (qtquick3d, QSSG_prepareFrame_exit)
 
 Q_TRACE_POINT (qtquick3d, QSSG_renderFrame_entry, int width, int height)
 
 Q_TRACE_POINT (qtquick3d, QSSG_renderFrame_exit)
 
 Q_TRACE_POINT (qtquick3d, QSSG_synchronize_entry, QQuick3DViewport *view3D, const QSize &size, float dpr)
 
 Q_TRACE_POINT (qtquick3d, QSSG_synchronize_exit)
 
 Q_TRACE_POINT (qtquick3d, QSSG_renderPass_entry, const QString &renderPass)
 
 Q_TRACE_POINT (qtquick3d, QSSG_renderPass_exit)
 
template<typename In , typename Out >
static void bfs (In *inExtension, QList< Out * > &outList)
 
static void requestFullUpdate (QQuickWindow *window)
 
static QRhiTexture::Format toRhiTextureFormat (QQuickShaderEffectSource::Format format)
 
static QVector3D tonemapRgb (const QVector3D &c, QQuick3DSceneEnvironment::QQuick3DEnvironmentTonemapModes tonemapMode)
 

Variables

QT_BEGIN_NAMESPACE QSSG_prepareFrame_entry
 
QT_BEGIN_NAMESPACE int width
 
QT_BEGIN_NAMESPACE int int height
 
static bool dumpRenderTimes = false
 
static const QVector2D s_ProgressiveAABlendFactors [QSSGLayerRenderData::MAX_AA_LEVELS]
 
static const QVector2D s_TemporalAABlendFactors = { 0.5f, 0.5f }
 

Function Documentation

◆ bfs()

template<typename In , typename Out >
static void bfs ( In * inExtension,
QList< Out * > & outList )
static

Definition at line 80 of file qquick3dscenerenderer.cpp.

References QQuick3DObjectPrivate::get(), QSSG_ASSERT, and queue.

Referenced by QQuick3DSceneRenderer::synchronize().

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

◆ Q_TRACE_POINT() [1/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_prepareFrame_exit  )

◆ Q_TRACE_POINT() [2/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_renderFrame_entry ,
int width,
int height )

◆ Q_TRACE_POINT() [3/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_renderFrame_exit  )

◆ Q_TRACE_POINT() [4/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_renderPass_entry ,
const QString & renderPass )

◆ Q_TRACE_POINT() [5/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_renderPass_exit  )

◆ Q_TRACE_POINT() [6/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_synchronize_entry ,
QQuick3DViewport * view3D,
const QSize & size,
float dpr )

◆ Q_TRACE_POINT() [7/7]

Q_TRACE_POINT ( qtquick3d ,
QSSG_synchronize_exit  )

◆ Q_TRACE_PREFIX()

QT_BEGIN_NAMESPACE Q_TRACE_PREFIX ( qtquick3d ,
"QT_BEGIN_NAMESPACE" "class QQuick3DViewport;" "QT_END_NAMESPACE"  )

◆ requestFullUpdate()

static void requestFullUpdate ( QQuickWindow * window)
static

Definition at line 131 of file qquick3dscenerenderer.cpp.

References QThread::currentThread(), QQuickWindowPrivate::FullUpdateRequest, QCoreApplication::instance(), QCoreApplication::postEvent(), and window().

Referenced by SGFramebufferObjectNode::render(), and QQuick3DSGDirectRenderer::requestRender().

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

◆ tonemapRgb()

static QVector3D tonemapRgb ( const QVector3D & c,
QQuick3DSceneEnvironment::QQuick3DEnvironmentTonemapModes tonemapMode )
static

Definition at line 566 of file qquick3dscenerenderer.cpp.

References QSSGTonemapper::tonemapAces(), QSSGTonemapper::tonemapFilmic(), QSSGTonemapper::tonemapHejlDawson(), QSSGTonemapper::tonemapLinearToSrgb(), QQuick3DSceneEnvironment::TonemapModeAces, QQuick3DSceneEnvironment::TonemapModeFilmic, QQuick3DSceneEnvironment::TonemapModeHejlDawson, and QQuick3DSceneEnvironment::TonemapModeLinear.

Referenced by QQuick3DSceneRenderer::synchronize().

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

◆ toRhiTextureFormat()

static QRhiTexture::Format toRhiTextureFormat ( QQuickShaderEffectSource::Format format)
static

Definition at line 552 of file qquick3dscenerenderer.cpp.

References QRhiTexture::RGBA16F, QQuickShaderEffectSource::RGBA16F, QRhiTexture::RGBA32F, QQuickShaderEffectSource::RGBA32F, QRhiTexture::RGBA8, and QQuickShaderEffectSource::RGBA8.

Referenced by QQuick3DSceneRenderer::synchronize().

+ Here is the caller graph for this function:

Variable Documentation

◆ dumpRenderTimes

◆ height

Definition at line 51 of file qquick3dscenerenderer.cpp.

◆ QSSG_prepareFrame_entry

QT_BEGIN_NAMESPACE QSSG_prepareFrame_entry

Definition at line 51 of file qquick3dscenerenderer.cpp.

Referenced by QQuick3DSceneRenderer::renderToRhiTexture().

◆ s_ProgressiveAABlendFactors

const QVector2D s_ProgressiveAABlendFactors[QSSGLayerRenderData::MAX_AA_LEVELS]
static
Initial value:
= {
QVector2D(0.500000f, 0.500000f),
QVector2D(0.333333f, 0.666667f),
QVector2D(0.250000f, 0.750000f),
QVector2D(0.200000f, 0.800000f),
QVector2D(0.166667f, 0.833333f),
QVector2D(0.142857f, 0.857143f),
QVector2D(0.125000f, 0.875000f),
QVector2D(0.111111f, 0.888889f),
}
The QVector2D class represents a vector or vertex in 2D space.
Definition qvectornd.h:31

Definition at line 253 of file qquick3dscenerenderer.cpp.

Referenced by QQuick3DSceneRenderer::renderToRhiTexture().

◆ s_TemporalAABlendFactors

const QVector2D s_TemporalAABlendFactors = { 0.5f, 0.5f }
static

◆ width

Definition at line 51 of file qquick3dscenerenderer.cpp.