Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QSSGRenderOutputProviderExtension Class Reference

\qmltype RenderOutputProvider \inqmlmodule QtQuick3D.Helpers \inherits TextureProviderExtension More...

Inheritance diagram for QSSGRenderOutputProviderExtension:
Collaboration diagram for QSSGRenderOutputProviderExtension:

Public Types

enum class  SourceType { None , BuiltInPass , None , BuiltInPass }
enum class  SourceType { None , BuiltInPass , None , BuiltInPass }
Public Types inherited from QSSGRenderExtension
enum class  RenderMode { Standalone , Main }
 Specifies the render extension mode. More...
enum class  RenderStage { PreColor , PostColor }
 Specifies the order the extension will be called. More...
Public Types inherited from QSSGRenderGraphObject
enum  BaseType : quint32 {
  Node = 0x1000 , Light = 0x2000 , Camera = 0x4000 , Renderable = 0x8000 ,
  Resource = 0x10000 , Material = 0x20000 , Texture = 0x40000 , Extension = 0x80000 ,
  User = 0x80000000
}
enum class  Type : quint32 {
  Unknown = 0 , Node = BaseType::Node , Root , Layer ,
  Joint , Skeleton , ImportScene , ReflectionProbe ,
  DirectionalLight = BaseType::Light | BaseType::Node , PointLight , SpotLight , OrthographicCamera = BaseType::Camera | BaseType::Node ,
  PerspectiveCamera , CustomFrustumCamera , CustomCamera , Model = BaseType::Renderable | BaseType::Node ,
  Item2D , Particles , SceneEnvironment = BaseType::Resource , Effect ,
  Geometry , TextureData , MorphTarget , ModelInstance ,
  ModelBlendParticle , ResourceLoader , DefaultMaterial = BaseType::Material | BaseType::Resource , PrincipledMaterial ,
  CustomMaterial , SpecularGlossyMaterial , Skin , Image2D = BaseType::Texture | BaseType::Resource ,
  ImageCube , RenderExtension = BaseType::Extension , TextureProvider
}
enum class  Flags : quint32 { HasGraphicsResources = 0x1 }
using TypeT = std::underlying_type_t<Type>
using FlagT = std::underlying_type_t<Flags>

Public Member Functions

 QSSGRenderOutputProviderExtension (QQuick3DRenderOutputProvider *ext)
 ~QSSGRenderOutputProviderExtension () override
bool prepareData (QSSGFrameData &data) override
 Called after scene data is collected, but before any render data or rendering in the current frame has been done.
void prepareRender (QSSGFrameData &data) override
 Prepare data for rendering.
void render (QSSGFrameData &data) override
 Record the render pass.
void resetForFrame () override
 Called each time a new frame starts.
 QSSGRenderOutputProviderExtension (QQuick3DRenderOutputProvider *ext)
 ~QSSGRenderOutputProviderExtension () override
bool prepareData (QSSGFrameData &data) override
 Called after scene data is collected, but before any render data or rendering in the current frame has been done.
void prepareRender (QSSGFrameData &data) override
 Prepare data for rendering.
void render (QSSGFrameData &data) override
 Record the render pass.
void resetForFrame () override
 Called each time a new frame starts.
Public Member Functions inherited from QSSGRenderTextureProviderExtension
 QSSGRenderTextureProviderExtension ()
 ~QSSGRenderTextureProviderExtension () override
RenderMode mode () const final
RenderStage stage () const final
Public Member Functions inherited from QSSGRenderExtension
 QSSGRenderExtension ()
virtual ~QSSGRenderExtension ()
Public Member Functions inherited from QSSGRenderGraphObject
bool hasGraphicsResources () const noexcept
virtual Q_QUICK3D_PROFILE_ID_ ~QSSGRenderGraphObject ()

Public Attributes

SourceType m_sourceType = SourceType::BuiltInPass
QSSGFrameData::RenderResult m_builtInPass = QSSGFrameData::RenderResult::DepthTexture
QSSGResourceId userPassId = QSSGResourceId::Invalid
bool m_isDirty = true
QPointer< QQuick3DRenderOutputProviderm_ext
Public Attributes inherited from QSSGRenderGraphObject
const Type type
FlagT flags { 0 }

Additional Inherited Members

Static Public Member Functions inherited from QSSGRenderGraphObject
static constexpr bool isNodeType (Type type) noexcept
static constexpr bool isLight (Type type) noexcept
static constexpr bool isCamera (Type type) noexcept
static constexpr bool isMaterial (Type type) noexcept
static constexpr bool isTexture (Type type) noexcept
static constexpr bool isRenderable (Type type) noexcept
static constexpr bool isResource (Type type) noexcept
static constexpr bool isExtension (Type type) noexcept
static constexpr bool isUserType (Type type) noexcept
Protected Member Functions inherited from QSSGRenderExtension
 QSSGRenderExtension (Type inType, FlagT inFlags)
 Constructor that allows users to specifying a user-type and flags for an extension.
Protected Member Functions inherited from QSSGRenderGraphObject
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType)
 QSSGRenderGraphObject (QSSGRenderGraphObject::Type inType, FlagT inFlags)

Detailed Description

\qmltype RenderOutputProvider \inqmlmodule QtQuick3D.Helpers \inherits TextureProviderExtension

Since
6.11

Used as a bridge to use access textures provided by passes.

This type is used to provide textures that are the results of passes in the rendering pipeline. Some example of when this is useful is when you want to access the depth texture result of the ZPrePass, or the ambient occlusion texture result of the SSAO pass. This type can be used to access these results textures and use them in materials or effects.

textureProvider: RenderOutputProvider {
// Specify the built-in buffer texture you want to access
textureSource: RenderOutputProvider.DepthTexture
}
}

\qmlproperty RenderOutputProvider::TextureSource textureSource This property holds which pass buffer texture to use.

\value RenderOutputProvider.AoTexture The ambient occlusion texture created by the SSAO pass. \value RenderOutputProvider.DepthTexture The depth texture created by the ZPrePass. \value RenderOutputProvider.ScreenTexture The texture containing the rendered scene. \value RenderOutputProvider.UserPassTexture A user defined pass. If this is used to access a user defined pass.

Definition at line 47 of file qquick3drenderoutputprovider.cpp.

Member Enumeration Documentation

◆ SourceType [1/2]

Enumerator
None 
BuiltInPass 
None 
BuiltInPass 

Definition at line 50 of file qquick3drenderoutputprovider.cpp.

◆ SourceType [2/2]

Enumerator
None 
BuiltInPass 
None 
BuiltInPass 

Definition at line 50 of file qquick3drenderoutputprovider.cpp.

Constructor & Destructor Documentation

◆ QSSGRenderOutputProviderExtension() [1/2]

QSSGRenderOutputProviderExtension::QSSGRenderOutputProviderExtension ( QQuick3DRenderOutputProvider * ext)
explicit

Definition at line 72 of file qquick3drenderoutputprovider.cpp.

References QSSGRenderOutputProviderExtension().

Referenced by QSSGRenderOutputProviderExtension().

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

◆ ~QSSGRenderOutputProviderExtension() [1/2]

QSSGRenderOutputProviderExtension::~QSSGRenderOutputProviderExtension ( )
override

Definition at line 78 of file qquick3drenderoutputprovider.cpp.

◆ QSSGRenderOutputProviderExtension() [2/2]

QSSGRenderOutputProviderExtension::QSSGRenderOutputProviderExtension ( QQuick3DRenderOutputProvider * ext)
explicit

◆ ~QSSGRenderOutputProviderExtension() [2/2]

QSSGRenderOutputProviderExtension::~QSSGRenderOutputProviderExtension ( )
override

Member Function Documentation

◆ prepareData() [1/2]

bool QSSGRenderOutputProviderExtension::prepareData ( QSSGFrameData & data)
overridevirtual

Called after scene data is collected, but before any render data or rendering in the current frame has been done.

Returns
Dirty state. Return true if the there are dirty data that needs to be rendered.
Note
Much of the data created/collected from the engine during the prepare and render phases is per-frame and should be released or assumed released at the start of the next frame
See also
QSSGFrameData

Implements QSSGRenderExtension.

Definition at line 83 of file qquick3drenderoutputprovider.cpp.

References BuiltInPass, m_isDirty, m_sourceType, and None.

◆ prepareData() [2/2]

bool QSSGRenderOutputProviderExtension::prepareData ( QSSGFrameData & data)
overridevirtual

Called after scene data is collected, but before any render data or rendering in the current frame has been done.

Returns
Dirty state. Return true if the there are dirty data that needs to be rendered.
Note
Much of the data created/collected from the engine during the prepare and render phases is per-frame and should be released or assumed released at the start of the next frame
See also
QSSGFrameData

Implements QSSGRenderExtension.

◆ prepareRender() [1/2]

void QSSGRenderOutputProviderExtension::prepareRender ( QSSGFrameData & data)
overridevirtual

Prepare data for rendering.

Build and collect data needed for rendering. Any render extension scheduled before this one has been processed. In addition; any render extension of mode \l RenderMode::Standalone will, if successful, have been completed in full.

Note
Much of the data created/collected from the engine during the prepare and render phases is per-frame and should be released or assumed released at the start of the next frame
See also
QSSGFrameData

Implements QSSGRenderExtension.

Definition at line 114 of file qquick3drenderoutputprovider.cpp.

References BuiltInPass, m_isDirty, and m_sourceType.

◆ prepareRender() [2/2]

void QSSGRenderOutputProviderExtension::prepareRender ( QSSGFrameData & data)
overridevirtual

Prepare data for rendering.

Build and collect data needed for rendering. Any render extension scheduled before this one has been processed. In addition; any render extension of mode \l RenderMode::Standalone will, if successful, have been completed in full.

Note
Much of the data created/collected from the engine during the prepare and render phases is per-frame and should be released or assumed released at the start of the next frame
See also
QSSGFrameData

Implements QSSGRenderExtension.

◆ render() [1/2]

void QSSGRenderOutputProviderExtension::render ( QSSGFrameData & data)
overridevirtual

Record the render pass.

Depending on the extensions \l {RenderMode}{mode} this function will be called during the frame's prepare or render phase.

Use data to gain access to the render context from which the active QRhi object can be queried.

See also
QSSGRenderExtension::RenderMode

Implements QSSGRenderExtension.

Definition at line 131 of file qquick3drenderoutputprovider.cpp.

◆ render() [2/2]

void QSSGRenderOutputProviderExtension::render ( QSSGFrameData & data)
overridevirtual

Record the render pass.

Depending on the extensions \l {RenderMode}{mode} this function will be called during the frame's prepare or render phase.

Use data to gain access to the render context from which the active QRhi object can be queried.

See also
QSSGRenderExtension::RenderMode

Implements QSSGRenderExtension.

◆ resetForFrame() [1/2]

void QSSGRenderOutputProviderExtension::resetForFrame ( )
overridevirtual

Called each time a new frame starts.

Any data from the previous frame should be cleared at this point.

Implements QSSGRenderExtension.

Definition at line 136 of file qquick3drenderoutputprovider.cpp.

◆ resetForFrame() [2/2]

void QSSGRenderOutputProviderExtension::resetForFrame ( )
overridevirtual

Called each time a new frame starts.

Any data from the previous frame should be cleared at this point.

Implements QSSGRenderExtension.

Member Data Documentation

◆ m_builtInPass

QSSGFrameData::RenderResult QSSGRenderOutputProviderExtension::m_builtInPass = QSSGFrameData::RenderResult::DepthTexture

Definition at line 63 of file qquick3drenderoutputprovider.cpp.

◆ m_ext

QPointer< QQuick3DRenderOutputProvider > QSSGRenderOutputProviderExtension::m_ext

Definition at line 67 of file qquick3drenderoutputprovider.cpp.

◆ m_isDirty

bool QSSGRenderOutputProviderExtension::m_isDirty = true

Definition at line 65 of file qquick3drenderoutputprovider.cpp.

Referenced by prepareData(), and prepareRender().

◆ m_sourceType

SourceType QSSGRenderOutputProviderExtension::m_sourceType = SourceType::BuiltInPass

Definition at line 62 of file qquick3drenderoutputprovider.cpp.

Referenced by prepareData(), and prepareRender().

◆ userPassId

QSSGResourceId QSSGRenderOutputProviderExtension::userPassId = QSSGResourceId::Invalid

Definition at line 64 of file qquick3drenderoutputprovider.cpp.


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