UCohCompositor
Inherits from UActorComponent, ICompositorInterfaceUnreal
Public Functions
Name | |
---|---|
UCohCompositor() | |
virtual void | InitializeComponent() override |
virtual void | OnComponentDestroyed(bool bDestroyingHierarchy) override |
virtual void | SetViewSize(int32_t Width, int32_t Height) override Helper method for compositors that care about size. |
virtual void | OnDrawSubLayer(const renoir::ISubLayerCompositor::DrawData & DrawData) override Should be called on the layout thread. Since we cannot create/update textures there, we just save them for processing on the GameThread. |
virtual void | OnCompositionAdded(unsigned ViewId, const char * CompositionId, void * Metadata) override Called on GameThread whenever a new composition is found in the HTML. Should initialize the relevant materials that the texture will be drawn into. |
virtual void | OnCompositionVisibility(unsigned , const char * , void * , bool ) override Called on Game Thread whenever the visibility of the composition has changed. |
virtual void | OnCompositionRemoved(unsigned ViewId, const char * CompositionId, void * Metadata) override Called on GameThread whenever a new composition is found in the HTML. Should destroy the relevant materials that the texture will be drawn into. |
virtual void | ProcessDrawData(const FDrawData & DrawData, int32_t IndexToProcess) override Called on the GameThread, used to create/update textures based on the draw data received for them. Should be overridden by child classes depending on where/how they want to draw the textures. |
virtual bool | HasCompositions() override Helper method to save on computation when there are no compositions. |
virtual bool | IsValidObject() override Helper method to catch some invalid creation/destruction edge cases. |
Additional inherited members
Public Classes inherited from ICompositorInterfaceUnreal
Name | |
---|---|
struct | FFrameState |
Public Types inherited from ICompositorInterfaceUnreal
Name | |
---|---|
using uint32_t | FrameId |
Public Functions inherited from ICompositorInterfaceUnreal
Name | |
---|---|
virtual uint32_t | PrepareForAdvance() Should be called once per frame, before the View gets advanced. Will update the current frame. |
void | SignalFrameComplete(uint32_t FrameId) Should be called when the view’s advance/layout is finished, so we can start processing the composited elements of the page we’ve received during the layout/advance. |
virtual void | EnqueueRenderingCommands(uint32_t FrameId) Usually called at the end of the frame during paint. |
virtual void | OnCompositionTransform(unsigned , const char * , void * , const renoir::float4x4 & ) Called on GameThread whenever the transform of the composition has changed. |
void | AdvanceCompositor() Will block until the view’s advance/layout is finished, then start processing the DrawData(s) collected during (likely done by child classes) |
virtual void | PrepareAllMeshMaterial(uint32_t FrameId) |
virtual void | ProcessRenderData(const FRenderData & RenderData) |
virtual void | CreateCompositions() Executed during AdvanceCompositor after we have waited for cohtml::View::Advance and Layout. |
virtual void | DiscardCurrentFrameState() Helper method to discard the current compositor frame. |
virtual bool | ShouldSkipFrame() Helper method to combine multiple conditions to determine if the current compositor frame should be skipped. |
virtual void | CompleteFrameState(uint32_t CompositorFrame) Should be called when the cohtml::View::Advance and Layout is completed, so that work can be done on the Game Thread. |
virtual FrameId | GetCurrentCompositorFrameId() |
virtual FFrameState * | GetCurrentFrameState() |
virtual FCriticalSection & | GetCriticalSectionFrameStates() |
virtual const TMap< FString, FDrawData > & | GetDrawDataInfoMap() const |
Protected Functions inherited from ICompositorInterfaceUnreal
Name | |
---|---|
UTexture2D * | CreateTexture(const FDrawData & DrawData, IRenderingBackend * InterfaceBackend, int32_t IndexToProcess) |
Protected Attributes inherited from ICompositorInterfaceUnreal
Name | |
---|---|
FCriticalSection | CriticalSectionFrameStates |
FrameId | CompositorFrameId |
TMap< FrameId, FFrameState > | FrameStates |
TMap< FrameId, TArray< FRenderData > > | RenderDataInfosMap |
TMap< FString, FDrawData > | DrawDataInfoMap |
Public Functions Documentation
function UCohCompositor
UCohCompositor()
function InitializeComponent
virtual void InitializeComponent() override
function OnComponentDestroyed
virtual void OnComponentDestroyed(
bool bDestroyingHierarchy
) override
function SetViewSize
virtual void SetViewSize(
int32_t Width,
int32_t Height
) override
Helper method for compositors that care about size.
Reimplements: ICompositorInterfaceUnreal::SetViewSize
function OnDrawSubLayer
virtual void OnDrawSubLayer(
const renoir::ISubLayerCompositor::DrawData & DrawData
) override
Should be called on the layout thread. Since we cannot create/update textures there, we just save them for processing on the GameThread.
Reimplements: ICompositorInterfaceUnreal::OnDrawSubLayer
function OnCompositionAdded
virtual void OnCompositionAdded(
unsigned ViewId,
const char * CompositionId,
void * Metadata
) override
Called on GameThread whenever a new composition is found in the HTML. Should initialize the relevant materials that the texture will be drawn into.
Reimplements: ICompositorInterfaceUnreal::OnCompositionAdded
function OnCompositionVisibility
virtual void OnCompositionVisibility(
unsigned ,
const char * ,
void * ,
bool
) override
Called on Game Thread whenever the visibility of the composition has changed.
Reimplements: ICompositorInterfaceUnreal::OnCompositionVisibility
function OnCompositionRemoved
virtual void OnCompositionRemoved(
unsigned ViewId,
const char * CompositionId,
void * Metadata
) override
Called on GameThread whenever a new composition is found in the HTML. Should destroy the relevant materials that the texture will be drawn into.
Reimplements: ICompositorInterfaceUnreal::OnCompositionRemoved
function ProcessDrawData
virtual void ProcessDrawData(
const FDrawData & DrawData,
int32_t IndexToProcess
) override
Called on the GameThread, used to create/update textures based on the draw data received for them. Should be overridden by child classes depending on where/how they want to draw the textures.
Reimplements: ICompositorInterfaceUnreal::ProcessDrawData
function HasCompositions
inline virtual bool HasCompositions() override
Helper method to save on computation when there are no compositions.
Reimplements: ICompositorInterfaceUnreal::HasCompositions
function IsValidObject
inline virtual bool IsValidObject() override
Helper method to catch some invalid creation/destruction edge cases.
Reimplements: ICompositorInterfaceUnreal::IsValidObject