![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qquick3drenderpass_p.h>
Public Types | |
| enum | MaterialModes { OriginalMaterial , AugmentMaterial , OverrideMaterial } |
| enum | PassMode { UserPass , SkyboxPass , Item2DPass } |
| enum class | RenderTargetFlag { None = 0 , PreserveColorContents = 1 << 0 , PreserveDepthStencilContents = 1 << 1 , DoNotStoreDepthStencilContents = 1 << 2 } |
| Public Types inherited from QQuick3DPropertyChangedTracker | |
| enum class | DirtyPropertyHint { Value , Reference } |
| using | UniformProperty = QSSGUserShaderAugmentation::Property |
| using | UniformPropertyList = QVector<UniformProperty> |
Signals | |
| void | outputChanged () |
| void | materialModeChanged () |
| void | clearColorChanged () |
| void | overrideMaterialChanged () |
| void | augmentShaderChanged () |
| void | passModeChanged () |
| void | depthClearValueChanged () |
| void | stencilClearValueChanged () |
| void | renderTargetFlagsChanged () |
| Signals inherited from QQuick3DObject | |
| void | parentChanged () |
| void | childrenChanged () |
| void | stateChanged () |
| Signals inherited from QObject | |
| void | destroyed (QObject *=nullptr) |
| This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
| void | objectNameChanged (const QString &objectName, QPrivateSignal) |
| This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
| QQuick3DRenderPass (QQuick3DObject *parent=nullptr) | |
| QQmlListProperty< QQuick3DShaderUtilsRenderCommand > | commands () |
| QColor | clearColor () const |
| \qmlproperty color RenderPass::clearColor This property holds the clear color for the render pass. | |
| void | setClearColor (const QColor &newClearColor) |
| MaterialModes | materialMode () const |
| \qmlproperty RenderPass::MaterialModes RenderPass::materialMode Controls how object materials are handled when rendering into this pass. | |
| void | setMaterialMode (MaterialModes newMaterialMode) |
| QQuick3DMaterial * | overrideMaterial () const |
\qmlproperty Material RenderPass::overrideMaterial This property holds the override material for the render pass when \l{RenderPass::materialMode}{materialMode} is set to OverrideMaterial. | |
| void | setOverrideMaterial (QQuick3DMaterial *newOverrideMaterial) |
| QUrl | augmentShader () const |
| void | setAugmentShader (const QUrl &newAugmentShader) |
| PassMode | passMode () const |
| \qmlproperty RenderPass::PassMode RenderPass::passMode This property holds the pass mode for the render pass. | |
| void | setPassMode (PassMode newPassMode) |
| float | depthClearValue () const |
| \qmlproperty real RenderPass::depthClearValue This property holds the depth clear value for the render pass. | |
| void | setDepthClearValue (float newDepthClearValue) |
| quint32 | stencilClearValue () const |
| \qmlproperty int RenderPass::stencilClearValue This property holds the stencil clear value for the render pass. | |
| void | setStencilClearValue (quint32 newStencilClearValue) |
| void | markAllDirty () override |
| RenderTargetFlags | renderTargetFlags () const |
| \qmlproperty RenderPass::RenderTargetFlags RenderPass::renderTargetFlags This property holds the render target flags for the render pass. | |
| void | setRenderTargetFlags (RenderTargetFlags newRenderTargetFlags) |
| Public Member Functions inherited from QObject | |
| Q_INVOKABLE | QObject (QObject *parent=nullptr) |
| Constructs an object with parent object parent. | |
| virtual | ~QObject () |
| Destroys the object, deleting all its child objects. | |
| virtual bool | event (QEvent *event) |
| This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
| virtual bool | eventFilter (QObject *watched, QEvent *event) |
| Filters events if this object has been installed as an event filter for the watched object. | |
| QString | objectName () const |
| Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
| Sets the object's name to name. | |
| void | setObjectName (QAnyStringView name) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| QBindable< QString > | bindableObjectName () |
| bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false. | |
| bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false. | |
| bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false. | |
| bool | isQmlExposed () const noexcept |
| Returns whether the object has been created by the QML engine or ownership has been explicitly set via QJSEngine::setObjectOwnership(). | |
| bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false. | |
| bool | blockSignals (bool b) noexcept |
| If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
| QThread * | thread () const |
| Returns the thread in which the object lives. | |
| bool | moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL) |
Changes the thread affinity for this object and its children and returns true on success. | |
| int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
| This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
| int | startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
| void | killTimer (int id) |
| Kills the timer with timer identifier, id. | |
| void | killTimer (Qt::TimerId id) |
| template<typename T> | |
| T | findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
| Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
| template<typename T> | |
| QList< T > | findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
| Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
| template<typename T> | |
| T | findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| template<typename T> | |
| QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
| const QObjectList & | children () const |
| Returns a list of child objects. | |
| void | setParent (QObject *parent) |
| Makes the object a child of parent. | |
| void | installEventFilter (QObject *filterObj) |
| Installs an event filter filterObj on this object. | |
| void | removeEventFilter (QObject *obj) |
| Removes an event filter object obj from this object. | |
| QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
| bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
| bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
| void | dumpObjectTree () const |
| Dumps a tree of children to the debug output. | |
| void | dumpObjectInfo () const |
| Dumps information about signal connections, etc. | |
| bool | setProperty (const char *name, const QVariant &value) |
| Sets the value of the object's name property to value. | |
| bool | setProperty (const char *name, QVariant &&value) |
| QVariant | property (const char *name) const |
| Returns the value of the object's name property. | |
| QList< QByteArray > | dynamicPropertyNames () const |
| QBindingStorage * | bindingStorage () |
| const QBindingStorage * | bindingStorage () const |
| QObject * | parent () const |
| Returns a pointer to the parent object. | |
| bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. | |
| Public Member Functions inherited from QQmlParserStatus | |
| QQmlParserStatus () | |
| virtual | ~QQmlParserStatus () |
| Public Member Functions inherited from QQuick3DPropertyChangedTracker | |
| template<typename T> | |
| QQuick3DPropertyChangedTracker (QQuick3DObject *owner, QQuick3DSuperClassInfo< T > info) | |
| virtual | ~QQuick3DPropertyChangedTracker () |
Protected Member Functions | |
| QSSGRenderGraphObject * | updateSpatialNode (QSSGRenderGraphObject *node) override |
| void | itemChange (QQuick3DObject::ItemChange, const QQuick3DObject::ItemChangeData &) override |
| void | markTrackedPropertyDirty (QMetaProperty property, QQuick3DPropertyChangedTracker::DirtyPropertyHint hint) override |
| Protected Member Functions inherited from QQuick3DObject | |
| virtual void | itemChange (ItemChange, const ItemChangeData &) |
| QQuick3DObject (QQuick3DObjectPrivate &dd, QQuick3DObject *parent=nullptr) | |
| void | classBegin () override |
| Invoked after class creation, but before any properties have been set. | |
| void | componentComplete () override |
| Invoked after the root component that caused this instantiation has completed construction. | |
| bool | isComponentComplete () const |
| virtual void | preSync () |
| Protected Member Functions inherited from QObject | |
| QObject * | sender () const |
| Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
| int | senderSignalIndex () const |
| int | receivers (const char *signal) const |
| Returns the number of receivers connected to the signal. | |
| bool | isSignalConnected (const QMetaMethod &signal) const |
| virtual void | timerEvent (QTimerEvent *event) |
| This event handler can be reimplemented in a subclass to receive timer events for the object. | |
| virtual void | childEvent (QChildEvent *event) |
| This event handler can be reimplemented in a subclass to receive child events. | |
| virtual void | customEvent (QEvent *event) |
| This event handler can be reimplemented in a subclass to receive custom events. | |
| virtual void | connectNotify (const QMetaMethod &signal) |
| virtual void | disconnectNotify (const QMetaMethod &signal) |
| QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
| Protected Member Functions inherited from QQuick3DPropertyChangedTracker | |
| void | extractProperties (UniformPropertyList &outUniforms) |
| void | addPropertyWatcher (QMetaProperty property, DirtyPropertyHint hint, QQuick3DObject *object=nullptr) |
Properties | |
| QQmlListProperty< QQuick3DShaderUtilsRenderCommand > | commands |
| \qmlproperty list<RenderCommand> RenderPass::commands This property holds the list of render commands for the render pass. | |
| MaterialModes | materialMode |
| QColor | clearColor |
| float | depthClearValue |
| quint32 | stencilClearValue |
| QQuick3DMaterial * | overrideMaterial |
| QUrl | augmentShader |
| PassMode | passMode |
| RenderTargetFlags | renderTargetFlags |
| Properties inherited from QQuick3DObject | |
| QQuick3DObject * | parent |
| \qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a 3D scene. | |
| Properties inherited from QObject | |
| QString | objectName |
| the name of this object | |
Additional Inherited Members | |
| Public Slots inherited from QQuick3DObject | |
| void | update () |
| void | setParentItem (QQuick3DObject *parentItem) |
| Public Slots inherited from QObject | |
| void | deleteLater () |
| \threadsafe | |
| Static Public Member Functions inherited from QObject | |
| static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
| \threadsafe | |
| static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
| template<typename Func1, typename Func2> | |
| static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
| template<typename Func1, typename Func2> | |
| static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
| static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
| \threadsafe | |
| static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
| static bool | disconnect (const QMetaObject::Connection &) |
| Disconnect a connection. | |
| template<typename Func1, typename Func2> | |
| static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
| template<typename Func1> | |
| static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
| Protected Types inherited from QQuick3DPropertyChangedTracker | |
| using | TrackedProperties = std::vector<Tracked> |
| Protected Attributes inherited from QObject | |
| QScopedPointer< QObjectData > | d_ptr |
| Protected Attributes inherited from QQuick3DPropertyChangedTracker | |
| TrackedProperties | m_trackedProperties |
| QQuick3DObject * | m_owner = nullptr |
| const char * | m_superClassName = nullptr |
| Related Symbols inherited from QObject | |
| template< class T > T | qobject_cast (const QObject *object) |
| Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
| template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
| template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
| QObjectList | |
| \macro Q_CLASSINFO(Name, Value) | |
Definition at line 26 of file qquick3drenderpass_p.h.
| Enumerator | |
|---|---|
| OriginalMaterial | |
| AugmentMaterial | |
| OverrideMaterial | |
Definition at line 41 of file qquick3drenderpass_p.h.
| Enumerator | |
|---|---|
| UserPass | |
| SkyboxPass | |
| Item2DPass | |
Definition at line 48 of file qquick3drenderpass_p.h.
|
strong |
| Enumerator | |
|---|---|
| None | |
| PreserveColorContents | |
| PreserveDepthStencilContents | |
| DoNotStoreDepthStencilContents | |
Definition at line 55 of file qquick3drenderpass_p.h.
|
explicit |
\qmltype RenderPass
\inherits Object3D
\inqmlmodule QtQuick3D
\brief Defines a custom render pass for rendering 3D content.
\since 6.11
A RenderPass defines a rendering step and the render target it writes
into. It is the combination of three concerns:
\list
\li \b {Where to render} — one or more output textures declared as
\l ColorAttachment or \l DepthTextureAttachment commands in
\l {RenderPass::commands}{commands}.
\li \b {What to render} — which scene objects the pass draws,
controlled by \l RenderablesFilter commands. Sub-divisions of
work within the same render target are described using
\l SubRenderPass commands.
\li \b {How to render} — the \l materialMode and any
\l PipelineStateOverride commands.
\endlist
A RenderPass becomes active for a scene when it is placed as a child
of a \l View3D or a \l Node.
The following example sets up a simple off-screen pass that renders
all scene objects into a custom texture, which can then be consumed
by a material or a \l SimpleQuadRenderer:
\qml
import QtQuick3D
View3D {
Declare the off-screen color buffer RenderPassTexture { id: myColorTexture format: RenderPassTexture.RGBA8 }
The render pass: where + what + how RenderPass { id: myRenderPass commands: [ Where: attach the texture as the color output ColorAttachment { name: "color0" target: myColorTexture }, What: render all objects into it RenderablesFilter { renderableTypes: RenderablesFilter.Opaque | RenderablesFilter.Transparent } ] } } \endqml
Definition at line 84 of file qquick3drenderpass.cpp.
| QUrl QQuick3DRenderPass::augmentShader | ( | ) | const |
\qmlproperty url RenderPass::augmentShader
This property holds the augment shader URL for the render pass when
\l{RenderPass::materialMode}{materialMode} is set to \c AugmentMaterial.
The shader file should contain a function with the following signature:
\badcode
void MAIN_FRAGMENT_AUGMENT() {
Custom shader code here }
This function will be combined with the existing fragment shader of the material being used by the object being rendered in this render pass. Allowing users to augment the existing material shader with custom code.
Definition at line 507 of file qquick3drenderpass.cpp.
|
signal |
| QColor QQuick3DRenderPass::clearColor | ( | ) | const |
\qmlproperty color RenderPass::clearColor This property holds the clear color for the render pass.
\default Qt.black
Definition at line 384 of file qquick3drenderpass.cpp.
|
signal |
| QQmlListProperty< QQuick3DShaderUtilsRenderCommand > QQuick3DRenderPass::commands | ( | ) |
| float QQuick3DRenderPass::depthClearValue | ( | ) | const |
\qmlproperty real RenderPass::depthClearValue This property holds the depth clear value for the render pass.
\default 1.0
Definition at line 555 of file qquick3drenderpass.cpp.
|
signal |
|
overrideprotected |
Definition at line 251 of file qquick3drenderpass.cpp.
|
inlineoverridevirtual |
Reimplemented from QQuick3DObject.
Definition at line 89 of file qquick3drenderpass_p.h.
|
overrideprotectedvirtual |
Implements QQuick3DPropertyChangedTracker.
Definition at line 257 of file qquick3drenderpass.cpp.
| QQuick3DRenderPass::MaterialModes QQuick3DRenderPass::materialMode | ( | ) | const |
\qmlproperty RenderPass::MaterialModes RenderPass::materialMode Controls how object materials are handled when rendering into this pass.
\value RenderPass.OriginalMaterial Objects are rendered using their own assigned materials, with full lighting, textures, and material properties applied normally. This is the standard mode for rendering a faithful copy of the scene into a custom render target — for example, a secondary viewpoint for a reflection probe, a rear-view camera, or a picture-in-picture effect. The overrideMaterial, augmentShader, and shaders properties are not used in this mode.
\value RenderPass.AugmentMaterial Each object is rendered with its own material, but the contents of the {MAIN_FRAGMENT_AUGMENT()} function defined in \l augmentShader are injected after the original material's output definition. This allows the augment code to read the material's computed color and write to additional color outputs defined by \l ColorAttachment commands in the pass. This is useful for multi-render-target (MRT) passes that need per-material shading, such as writing the lit color to one attachment and a world-space normal to another in a single draw call.
\value RenderPass.OverrideMaterial All objects rendered by this pass use the single \l overrideMaterial instead of their own. This is useful for depth-only passes, shadow maps, silhouette or outline effects, and any other case where you want all geometry to be shaded identically regardless of what material is assigned to it. The augmentShader property is not used in this mode.
\default RenderPass.OriginalMaterial
Definition at line 430 of file qquick3drenderpass.cpp.
|
signal |
|
signal |
| QQuick3DMaterial * QQuick3DRenderPass::overrideMaterial | ( | ) | const |
\qmlproperty Material RenderPass::overrideMaterial This property holds the override material for the render pass when \l{RenderPass::materialMode}{materialMode} is set to OverrideMaterial.
Definition at line 449 of file qquick3drenderpass.cpp.
|
signal |
| QQuick3DRenderPass::PassMode QQuick3DRenderPass::passMode | ( | ) | const |
\qmlproperty RenderPass::PassMode RenderPass::passMode This property holds the pass mode for the render pass.
In addition to standard user render passes, Qt Quick 3D supports users to manually triggering internal render passes for rendering the skybox and 2D items.
\value RenderPass.UserPass A user specified render pass. \value RenderPass.SkyboxPass Qt Quick 3D's built-in skybox render pass. \value RenderPass.Item2DPass Qt Quick 3D's built-in 2D item render pass. \default RenderPass.UserPass
Definition at line 535 of file qquick3drenderpass.cpp.
|
signal |
| QQuick3DRenderPass::RenderTargetFlags QQuick3DRenderPass::renderTargetFlags | ( | ) | const |
\qmlproperty RenderPass::RenderTargetFlags RenderPass::renderTargetFlags This property holds the render target flags for the render pass.
These flags affect how the render target contents are handled at the beginning and end of each frame.
\value RenderPass.None No special behavior. Color and depth/stencil contents are cleared at the start of each frame. \value RenderPass.PreserveColorContents Preserve the color contents of the render target between frames, so the previous frame's output remains until explicitly overwritten. \value RenderPass.PreserveDepthStencilContents Preserve the depth and stencil contents of the render target between frames. \value RenderPass.DoNotStoreDepthStencilContents Do not store the depth and stencil contents of the render target after rendering (may improve performance on tiled GPUs).
\default RenderPass.None
Definition at line 604 of file qquick3drenderpass.cpp.
|
signal |
Definition at line 512 of file qquick3drenderpass.cpp.
Definition at line 389 of file qquick3drenderpass.cpp.
| void QQuick3DRenderPass::setDepthClearValue | ( | float | newDepthClearValue | ) |
Definition at line 560 of file qquick3drenderpass.cpp.
| void QQuick3DRenderPass::setMaterialMode | ( | MaterialModes | newMaterialMode | ) |
Definition at line 435 of file qquick3drenderpass.cpp.
| void QQuick3DRenderPass::setOverrideMaterial | ( | QQuick3DMaterial * | newOverrideMaterial | ) |
Definition at line 454 of file qquick3drenderpass.cpp.
Definition at line 540 of file qquick3drenderpass.cpp.
| void QQuick3DRenderPass::setRenderTargetFlags | ( | RenderTargetFlags | newRenderTargetFlags | ) |
Definition at line 609 of file qquick3drenderpass.cpp.
Definition at line 580 of file qquick3drenderpass.cpp.
| quint32 QQuick3DRenderPass::stencilClearValue | ( | ) | const |
\qmlproperty int RenderPass::stencilClearValue This property holds the stencil clear value for the render pass.
\default 0
Definition at line 575 of file qquick3drenderpass.cpp.
|
signal |
|
overrideprotectedvirtual |
Reimplemented from QQuick3DObject.
Definition at line 90 of file qquick3drenderpass.cpp.
|
readwrite |
Definition at line 35 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 31 of file qquick3drenderpass_p.h.
|
read |
\qmlproperty list<RenderCommand> RenderPass::commands This property holds the list of render commands for the render pass.
The commands in the list are executed in the order they appear in the list.
Definition at line 29 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 32 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 30 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 34 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 36 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 37 of file qquick3drenderpass_p.h.
|
readwrite |
Definition at line 33 of file qquick3drenderpass_p.h.