|
| | 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) |
| 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.
|
| | QQmlParserStatus () |
| virtual | ~QQmlParserStatus () |
| template<typename T> |
| | QQuick3DPropertyChangedTracker (QQuick3DObject *owner, QQuick3DSuperClassInfo< T > info) |
| virtual | ~QQuick3DPropertyChangedTracker () |
|
| void | update () |
| void | setParentItem (QQuick3DObject *parentItem) |
| void | deleteLater () |
| | \threadsafe
|
| 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 &) |
| | Disconnects connection and resets it to \l{QMetaObject::Connection::operator bool()}{invalid}.
|
| static bool | disconnect (QMetaObject::Connection &) |
| static bool | disconnect (QMetaObject::Connection &&conn) |
| | 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) |
| QScopedPointer< QObjectData > | d_ptr |
| QHash< int, Tracked > | m_trackedProperties |
| QQuick3DObject * | m_owner = nullptr |
| const char * | m_superClassName = nullptr |
| QList< UniformProperty > | m_propertyList |
| 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 35 of file qquick3drenderpass_p.h.
\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, or of another RenderPass.
\section1 Render order
Nesting a RenderPass inside another RenderPass expresses ordering:
nested passes render \e before their parent, so a pass that produces a
texture consumed by another pass is declared as a child of its
consumer, and results merge towards the top of the pass hierarchy.
Only RenderPass ancestors count towards the nesting depth; other
ancestors, such as \l Node items used for grouping, do not affect the
order. The relative render order of passes at the same nesting depth
is not defined; use nesting to express an ordering requirement.
Nesting affects ordering only; a nested pass still renders into its
own render target. To render into the parent pass's render target,
reference the pass from a \l SubRenderPass command instead. A pass
referenced by a SubRenderPass command is invoked by its parent and
never renders on its own.
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 103 of file qquick3drenderpass.cpp.
\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 485 of file qquick3drenderpass.cpp.