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
Inheritance diagram for QSSGRenderOutputProviderExtension:
Collaboration diagram for QSSGRenderOutputProviderExtension:

Public Types

enum class  SourceType {
  None , BuiltInPass , UserPass , None ,
  BuiltInPass , UserPass
}
enum class  SourceType {
  None , BuiltInPass , UserPass , None ,
  BuiltInPass , UserPass
}
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 ,
  SceneRoot , 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 , RenderPass ,
  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 , InternallyReserved = 0xffff0000 }
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
QSSGFrameData::AttachmentSelector attachmentSelector = QSSGFrameData::AttachmentSelector::Attachment0
bool m_isDirty = true
QPointer< QQuick3DRenderOutputProviderm_ext
QSSGExtensionId m_extensionId {}
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

Definition at line 20 of file qquick3drenderoutputprovider.cpp.

Member Enumeration Documentation

◆ SourceType [1/2]

Enumerator
None 
BuiltInPass 
UserPass 
None 
BuiltInPass 
UserPass 

Definition at line 23 of file qquick3drenderoutputprovider.cpp.

◆ SourceType [2/2]

Enumerator
None 
BuiltInPass 
UserPass 
None 
BuiltInPass 
UserPass 

Definition at line 23 of file qquick3drenderoutputprovider.cpp.

Constructor & Destructor Documentation

◆ QSSGRenderOutputProviderExtension() [1/2]

QSSGRenderOutputProviderExtension::QSSGRenderOutputProviderExtension ( QQuick3DRenderOutputProvider * ext)
explicit

Definition at line 46 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 52 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 57 of file qquick3drenderoutputprovider.cpp.

References BuiltInPass, m_isDirty, m_sourceType, None, and UserPass.

◆ 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 111 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 130 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 135 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

◆ attachmentSelector

QSSGFrameData::AttachmentSelector QSSGRenderOutputProviderExtension::attachmentSelector = QSSGFrameData::AttachmentSelector::Attachment0

Definition at line 39 of file qquick3drenderoutputprovider.cpp.

◆ m_builtInPass

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

Definition at line 37 of file qquick3drenderoutputprovider.cpp.

◆ m_ext

QPointer< QQuick3DRenderOutputProvider > QSSGRenderOutputProviderExtension::m_ext

Definition at line 42 of file qquick3drenderoutputprovider.cpp.

◆ m_extensionId

QSSGExtensionId QSSGRenderOutputProviderExtension::m_extensionId {}

Definition at line 43 of file qquick3drenderoutputprovider.cpp.

◆ m_isDirty

bool QSSGRenderOutputProviderExtension::m_isDirty = true

Definition at line 40 of file qquick3drenderoutputprovider.cpp.

Referenced by prepareData(), and prepareRender().

◆ m_sourceType

SourceType QSSGRenderOutputProviderExtension::m_sourceType = SourceType::BuiltInPass

Definition at line 36 of file qquick3drenderoutputprovider.cpp.

Referenced by prepareData(), and prepareRender().

◆ userPassId

QSSGResourceId QSSGRenderOutputProviderExtension::userPassId = QSSGResourceId::Invalid

Definition at line 38 of file qquick3drenderoutputprovider.cpp.


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