Open 3D Engine LyShine Gem API Reference  24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
LyShine::RenderGraph Class Reference

Inherits LyShine::IRenderGraph.

Classes

struct  DynamicQuad
 

Public Member Functions

void ResetGraph ()
 Free up all the memory and clear the lists.
 
void BeginMask (bool isMaskingEnabled, bool useAlphaTest, bool drawBehind, bool drawInFront) override
 Begin the setup of a mask render node, primitives added between this call and StartChildrenForMask define the mask.
 
void StartChildrenForMask () override
 Start defining the children (masked primitives) of a mask.
 
void EndMask () override
 End the setup of a mask render node, this marks the end of adding child primitives.
 
void BeginRenderToTexture (AZ::Data::Instance< AZ::RPI::AttachmentImage > attachmentImage, const AZ::Vector2 &viewportTopLeft, const AZ::Vector2 &viewportSize, const AZ::Color &clearColor) override
 Begin rendering to a texture.
 
void EndRenderToTexture () override
 End rendering to a texture.
 
LyShine::UiPrimitiveGetDynamicQuadPrimitive (const AZ::Vector2 *positions, uint32 packedColor) override
 
bool IsRenderingToMask () const override
 Get flag that indicates we are rendering into a mask. Used to avoid masks on child mask elements.
 
void SetIsRenderingToMask (bool isRenderingToMask) override
 Set flag that we are rendering into a mask. Used to avoid masks on child mask elements.
 
void PushAlphaFade (float alphaFadeValue) override
 Push an alpha fade, this is multiplied with any existing alpha fade from parents.
 
void PushOverrideAlphaFade (float alphaFadeValue) override
 Push a new alpha fade value, this replaces any existing alpha fade.
 
void PopAlphaFade () override
 Pop an alpha fade off the stack.
 
float GetAlphaFade () const override
 Get the current alpha fade value.
 
void AddPrimitive (LyShine::UiPrimitive *primitive, const AZ::Data::Instance< AZ::RPI::Image > &texture, bool isClampTextureMode, bool isTextureSRGB, bool isTexturePremultipliedAlpha, BlendMode blendMode) override
 Add an indexed triangle list primitive to the render graph with given render state.
 
void AddAlphaMaskPrimitive (LyShine::UiPrimitive *primitive, AZ::Data::Instance< AZ::RPI::AttachmentImage > contentAttachmentImage, AZ::Data::Instance< AZ::RPI::AttachmentImage > maskAttachmentImage, bool isClampTextureMode, bool isTextureSRGB, bool isTexturePremultipliedAlpha, BlendMode blendMode) override
 Add an indexed triangle list primitive to the render graph which will use maskTexture as an alpha (gradient) mask.
 
void Render (UiRenderer *uiRenderer, const AZ::Vector2 &viewportSize)
 Render the display graph.
 
void SetDirtyFlag (bool isDirty)
 Set the dirty flag - this also resets the graph.
 
bool GetDirtyFlag ()
 Get the dirty flag.
 
void FinalizeGraph ()
 End the building of the graph.
 
bool IsEmpty ()
 Test whether the render graph contains any render nodes.
 
void GetRenderTargetsAndDependencies (LyShine::AttachmentImagesAndDependencies &attachmentImagesAndDependencies)
 
void ValidateGraph ()
 
void GetDebugInfoRenderGraph (LyShineDebug::DebugInfoRenderGraph &info) const
 
void GetDebugInfoRenderNodeList (const AZStd::vector< RenderNode * > &renderNodeList, LyShineDebug::DebugInfoRenderGraph &info, AZStd::set< AZ::Data::Instance< AZ::RPI::Image >> &uniqueTextures) const
 
void DebugReportDrawCalls (AZ::IO::HandleType fileHandle, LyShineDebug::DebugInfoDrawCallReport &reportInfo, void *context) const
 
void DebugReportDrawCallsRenderNodeList (const AZStd::vector< RenderNode * > &renderNodeList, AZ::IO::HandleType fileHandle, LyShineDebug::DebugInfoDrawCallReport &reportInfo, void *context, const AZStd::string &indent) const
 
- Public Member Functions inherited from LyShine::IRenderGraph
virtual ~IRenderGraph ()
 Virtual destructor.
 

Protected Member Functions

AZ::RHI::TargetBlendState GetBlendModeState (LyShine::BlendMode blendMode, bool isShaderOutputPremultAlpha) const
 Given a blend mode and whether the shader will be outputing premultiplied alpha, return state flags.
 
void SetRttPassesEnabled (UiRenderer *uiRenderer, bool enabled)
 

Protected Attributes

AZStd::vector< RenderNode * > m_renderNodes
 
AZStd::vector< DynamicQuad * > m_dynamicQuads
 
MaskRenderNodem_currentMask = nullptr
 
RenderTargetRenderNodem_currentRenderTarget = nullptr
 
AZStd::stack< AZStd::vector< RenderNode * > * > m_renderNodeListStack
 
bool m_isDirty = true
 
int m_renderToRenderTargetCount = 0
 
bool m_isRenderingToMask = false
 
AZStd::stack< float > m_alphaFadeStack
 
AZStd::vector< RenderTargetRenderNode * > m_renderTargetRenderNodes
 
int m_renderTargetNestLevel = 0
 
bool m_wasBuiltThisFrame = false
 
AZ::u64 m_timeGraphLastBuiltMs = 0
 

Member Function Documentation

◆ GetDynamicQuadPrimitive()

LyShine::UiPrimitive* LyShine::RenderGraph::GetDynamicQuadPrimitive ( const AZ::Vector2 *  positions,
uint32  packedColor 
)
overridevirtual

Get a dynamic quad primitive that can be added as an image primitive to the render graph The graph handles the allocation of this DynUiPrimitive and deletes it when the graph is reset This can be used if the UI component doesn't want to own the storage of the primitive. Used infrequently, e.g. for the selection rect on a text component.

Implements LyShine::IRenderGraph.


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