ICompositorInterfaceUnreal
Inherits from IRenoirSublayerCompositor
Inherited by UCohCompositor, UHUDSurfacePartitioningCompositor, UMultithreadAwareCompositorWrapper, UWidgetSurfacePartitioningCompositor
Public Functions
Section titled “Public Functions”| Name | |
|---|---|
| virtual void | PrepareForAdvance(uint32 ViewFrameId) Called on the Game Thread after a View gets advanced. |
| virtual void | ProcessDrawData(const FRenoirDrawData & DrawData, uint32 ViewFrameId) Called on the Game Thread, 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 void | ProcessFrame_RT(uint32_t ViewFrameId) Called on the Render Thread at the end of the frame after a View paint. |
| virtual void | OnDrawSubLayer(const renoir::ISubLayerCompositor::DrawData & DrawData) Called on a Worker Thread (task created by the View Layout) Since we cannot create/update textures there, we just save them for processing on the Game Thread. |
| virtual void | OnCompositionAdded(unsigned ViewId, const char * CompositionId, void * Metadata) =0 Called on the Game Thread whenever a new composition is found in HTML Should initialize the relevant materials that the texture will be drawn into. |
| virtual void | OnCompositionVisibility(unsigned , const char * , void * , bool ) =0 Called on the Game Thread whenever the visibility of the composition has changed. |
| virtual void | OnCompositionTransform(unsigned , const char * , void * , const renoir::float4x4 & ) Called on the Game Thread whenever the transform of the composition has changed. |
| virtual void | OnCompositionRemoved(unsigned ViewId, const char * CompositionId, void * Metadata) =0 Called on the Game Thread whenever a new composition is removed from HTML Should destroy the relevant materials that the texture will be drawn into. |
| virtual void | SetViewSize(int32_t Width, int32_t Height) Helper method for Compositors that care about size. |
| void | AdvanceCompositor(uint32 ViewFrameId) Must be called after ensuring that View Layout tasks are completed. |
| virtual void | PrepareAllMeshMaterial(uint32_t ViewFrameId) |
| virtual void | ProcessRenderData(const FRenderData & RenderData) |
| virtual void | CreateCompositions(uint32 ViewFrameId) Executed during AdvanceCompositor after we have waited for cohtml::View::Advance and Layout. |
| virtual bool | HasCompositions() =0 Helper method to save on computation when there are no compositions. |
| virtual bool | IsValidObject() =0 Helper method to catch some invalid creation/destruction edge cases. |
| virtual bool | ShouldSkipFrame() Helper method to combine multiple conditions to determine if the current Compositor frame should be skipped. |
| virtual FCriticalSection & | GetCriticalSectionFrames() |
| virtual const TMap< FString, FRenoirDrawData > & | GetRenoirDrawDataMap() const |
Protected Functions
Section titled “Protected Functions”| Name | |
|---|---|
| void | UpdateRenderData(const FRenoirDrawData & DrawData, UTextureRenderTarget2D * Texture, IRenderingBackend * InterfaceBackend, uint32 ViewFrameId) |
Protected Attributes
Section titled “Protected Attributes”| Name | |
|---|---|
| FCriticalSection | CriticalSectionFrames |
| uint32 | CurrentCompositorFrameId |
| TSet< uint32 > | Frames |
| TMap< uint32, TArray< FRenderData > > | RenderDataInfosMap |
| TMap< FString, FRenoirDrawData > | RenoirDrawDataMap |
| bool | bNewCompositionsReceived |
Public Functions Documentation
Section titled “Public Functions Documentation”function PrepareForAdvance
Section titled “function PrepareForAdvance”virtual void PrepareForAdvance( uint32 ViewFrameId)Called on the Game Thread after a View gets advanced.
Reimplemented by: UMultithreadAwareCompositorWrapper::PrepareForAdvance
function ProcessDrawData
Section titled “function ProcessDrawData”inline virtual void ProcessDrawData( const FRenoirDrawData & DrawData, uint32 ViewFrameId)Called on the Game Thread, 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.
Reimplemented by: UMultithreadAwareCompositorWrapper::ProcessDrawData, UCohCompositor::ProcessDrawData, UHUDSurfacePartitioningCompositor::ProcessDrawData, UWidgetSurfacePartitioningCompositor::ProcessDrawData
function ProcessFrame_RT
Section titled “function ProcessFrame_RT”virtual void ProcessFrame_RT( uint32_t ViewFrameId)Called on the Render Thread at the end of the frame after a View paint.
Reimplemented by: UMultithreadAwareCompositorWrapper::ProcessFrame_RT
function OnDrawSubLayer
Section titled “function OnDrawSubLayer”virtual void OnDrawSubLayer( const renoir::ISubLayerCompositor::DrawData & DrawData)Called on a Worker Thread (task created by the View Layout) Since we cannot create/update textures there, we just save them for processing on the Game Thread.
Reimplemented by: UMultithreadAwareCompositorWrapper::OnDrawSubLayer, UCohCompositor::OnDrawSubLayer
function OnCompositionAdded
Section titled “function OnCompositionAdded”virtual void OnCompositionAdded( unsigned ViewId, const char * CompositionId, void * Metadata) =0Called on the Game Thread whenever a new composition is found in HTML Should initialize the relevant materials that the texture will be drawn into.
Reimplemented by: UMultithreadAwareCompositorWrapper::OnCompositionAdded, UCohCompositor::OnCompositionAdded, UHUDSurfacePartitioningCompositor::OnCompositionAdded, UWidgetSurfacePartitioningCompositor::OnCompositionAdded
function OnCompositionVisibility
Section titled “function OnCompositionVisibility”virtual void OnCompositionVisibility( unsigned , const char * , void * , bool) =0Called on the Game Thread whenever the visibility of the composition has changed.
Reimplemented by: UMultithreadAwareCompositorWrapper::OnCompositionVisibility, UCohCompositor::OnCompositionVisibility, UHUDSurfacePartitioningCompositor::OnCompositionVisibility, UWidgetSurfacePartitioningCompositor::OnCompositionVisibility
function OnCompositionTransform
Section titled “function OnCompositionTransform”virtual void OnCompositionTransform( unsigned , const char * , void * , const renoir::float4x4 &)Called on the Game Thread whenever the transform of the composition has changed.
Reimplemented by: UMultithreadAwareCompositorWrapper::OnCompositionTransform
function OnCompositionRemoved
Section titled “function OnCompositionRemoved”virtual void OnCompositionRemoved( unsigned ViewId, const char * CompositionId, void * Metadata) =0Called on the Game Thread whenever a new composition is removed from HTML Should destroy the relevant materials that the texture will be drawn into.
Reimplemented by: UMultithreadAwareCompositorWrapper::OnCompositionRemoved, UCohCompositor::OnCompositionRemoved, UHUDSurfacePartitioningCompositor::OnCompositionRemoved, UWidgetSurfacePartitioningCompositor::OnCompositionRemoved
function SetViewSize
Section titled “function SetViewSize”inline virtual void SetViewSize( int32_t Width, int32_t Height)Helper method for Compositors that care about size.
Reimplemented by: UMultithreadAwareCompositorWrapper::SetViewSize, UCohCompositor::SetViewSize
function AdvanceCompositor
Section titled “function AdvanceCompositor”void AdvanceCompositor( uint32 ViewFrameId)Must be called after ensuring that View Layout tasks are completed.
function PrepareAllMeshMaterial
Section titled “function PrepareAllMeshMaterial”virtual void PrepareAllMeshMaterial( uint32_t ViewFrameId)function ProcessRenderData
Section titled “function ProcessRenderData”virtual void ProcessRenderData( const FRenderData & RenderData)function CreateCompositions
Section titled “function CreateCompositions”virtual void CreateCompositions( uint32 ViewFrameId)Executed during AdvanceCompositor after we have waited for cohtml::View::Advance and Layout.
Reimplemented by: UMultithreadAwareCompositorWrapper::CreateCompositions
function HasCompositions
Section titled “function HasCompositions”virtual bool HasCompositions() =0Helper method to save on computation when there are no compositions.
Reimplemented by: UMultithreadAwareCompositorWrapper::HasCompositions, UCohCompositor::HasCompositions, UHUDSurfacePartitioningCompositor::HasCompositions, UWidgetSurfacePartitioningCompositor::HasCompositions
function IsValidObject
Section titled “function IsValidObject”virtual bool IsValidObject() =0Helper method to catch some invalid creation/destruction edge cases.
Reimplemented by: UMultithreadAwareCompositorWrapper::IsValidObject, UCohCompositor::IsValidObject, UHUDSurfacePartitioningCompositor::IsValidObject, UWidgetSurfacePartitioningCompositor::IsValidObject
function ShouldSkipFrame
Section titled “function ShouldSkipFrame”virtual bool ShouldSkipFrame()Helper method to combine multiple conditions to determine if the current Compositor frame should be skipped.
Reimplemented by: UMultithreadAwareCompositorWrapper::ShouldSkipFrame
function GetCriticalSectionFrames
Section titled “function GetCriticalSectionFrames”virtual FCriticalSection & GetCriticalSectionFrames()Reimplemented by: UMultithreadAwareCompositorWrapper::GetCriticalSectionFrames
function GetRenoirDrawDataMap
Section titled “function GetRenoirDrawDataMap”virtual const TMap< FString, FRenoirDrawData > & GetRenoirDrawDataMap() constReimplemented by: UMultithreadAwareCompositorWrapper::GetRenoirDrawDataMap
Protected Functions Documentation
Section titled “Protected Functions Documentation”function UpdateRenderData
Section titled “function UpdateRenderData”void UpdateRenderData( const FRenoirDrawData & DrawData, UTextureRenderTarget2D * Texture, IRenderingBackend * InterfaceBackend, uint32 ViewFrameId)Protected Attributes Documentation
Section titled “Protected Attributes Documentation”variable CriticalSectionFrames
Section titled “variable CriticalSectionFrames”FCriticalSection CriticalSectionFrames;variable CurrentCompositorFrameId
Section titled “variable CurrentCompositorFrameId”uint32 CurrentCompositorFrameId = 0u;variable Frames
Section titled “variable Frames”TSet< uint32 > Frames;variable RenderDataInfosMap
Section titled “variable RenderDataInfosMap”TMap< uint32, TArray< FRenderData > > RenderDataInfosMap;variable RenoirDrawDataMap
Section titled “variable RenoirDrawDataMap”TMap< FString, FRenoirDrawData > RenoirDrawDataMap;variable bNewCompositionsReceived
Section titled “variable bNewCompositionsReceived”bool bNewCompositionsReceived = false;© 2026 Coherent Labs. All rights reserved.