unreal.RetainerBox

class unreal.RetainerBox(outer: Optional[Object] = None, name: Union[Name, str] = 'None')

Bases: ContentWidget

The Retainer Box renders children widgets to a render target first before later rendering that render target to the screen. This allows both frequency and phase to be controlled so that the UI can actually render less often than the frequency of the main game render. It also has the side benefit of allow materials to be applied to the render target after drawing the widgets to apply a simple post process.

  • Single Child

  • Caching / Performance

C++ Source:

  • Module: UMG

  • File: RetainerBox.h

Editor Properties: (see get_editor_property/set_editor_property)

  • accessible_behavior (SlateAccessibleBehavior): [Read-Write] Accessible Behavior: Whether or not the widget is accessible, and how to describe it. If set to custom, additional customization options will appear.

  • accessible_summary_behavior (SlateAccessibleBehavior): [Read-Write] Accessible Summary Behavior: How to describe this widget when it’s being presented through a summary of a parent widget. If set to custom, additional customization options will appear.

  • accessible_summary_text (Text): [Read-Write] Accessible Summary Text: When AccessibleSummaryBehavior is set to Custom, this is the text that will be used to describe the widget.

  • accessible_text (Text): [Read-Write] Accessible Text: When AccessibleBehavior is set to Custom, this is the text that will be used to describe the widget.

  • can_children_be_accessible (bool): [Read-Write] Can Children be Accessible: Whether or not children of this widget can appear as distinct accessible widgets.

  • clipping (WidgetClipping): [Read-Write] Clipping

  • cursor (MouseCursor): [Read-Write] Cursor

  • effect_material (MaterialInterface): [Read-Write] Effect Material: The effect to optionally apply to the render target. We will set the texture sampler based on the name set in the TextureParameter: property. If you want to adjust transparency of the final image, make sure you set Blend Mode to AlphaComposite (Pre-Multiplied Alpha) and make sure to multiply the alpha you’re apply across the surface to the color and the alpha of the render target, otherwise you won’t see the expected color.

  • flow_direction_preference (FlowDirectionPreference): [Read-Write] Flow Direction Preference

  • is_enabled (bool): [Read-Write] Is Enabled

  • is_volatile (bool): [Read-Write] Is Volatile: If true prevents the widget or its child’s geometry or layout information from being cached. If this widget changes every frame, but you want it to still be in an invalidation panel you should make it as volatile instead of invalidating it every frame, which would prevent the invalidation panel from actually ever caching anything.

  • navigation (WidgetNavigation): [Read-Write] Navigation: The navigation object for this widget is optionally created if the user has configured custom navigation rules for this widget in the widget designer. Those rules determine how navigation transitions can occur between widgets.

  • override_accessible_defaults (bool): [Read-Write] Override Accessible Defaults: Override all of the default accessibility behavior and text for this widget.

  • override_cursor (bool): [Read-Write] Override Cursor

  • phase (int32): [Read-Write] Phase: The Phase this widget will draw on.

    If the Phase is 0, and the PhaseCount is 1, the widget will be drawn fresh every frame. If the Phase were 0, and the PhaseCount were 2, this retainer would draw a fresh frame every other frame. So in a 60Hz game, the UI would render at 30Hz.

  • phase_count (int32): [Read-Write] Phase Count: The PhaseCount controls how many phases are possible know what to modulus the current frame count by to determine if this is the current frame to draw the widget on.

    If the Phase is 0, and the PhaseCount is 1, the widget will be drawn fresh every frame. If the Phase were 0, and the PhaseCount were 2, this retainer would draw a fresh frame every other frame. So in a 60Hz game, the UI would render at 30Hz.

  • render_on_invalidation (bool): [Read-Write] Render on Invalidation: Should this widget redraw the contents it has every time it receives an invalidation request from it’s children, similar to the invalidation panel.

  • render_on_phase (bool): [Read-Write] Render on Phase: Should this widget redraw the contents it has every time the phase occurs.

  • render_opacity (float): [Read-Write] Render Opacity

  • render_transform (WidgetTransform): [Read-Write] Render Transform

  • render_transform_pivot (Vector2D): [Read-Write] Render Transform Pivot

  • retain_render (bool): [Read-Write] Retain Render

  • slot (PanelSlot): [Read-Write] Slot: The parent slot of the UWidget. Allows us to easily inline edit the layout controlling this widget.

  • texture_parameter (Name): [Read-Write] Texture Parameter: The texture sampler parameter of the EffectMaterial,: that we’ll set to the render target.

  • tool_tip_text (Text): [Read-Write] Tool Tip Text

  • tool_tip_widget (Widget): [Read-Only] Tool Tip Widget

  • visibility (SlateVisibility): [Read-Write] Visibility

property effect_material: MaterialInterface

[Read-Only] Effect Material: The effect to optionally apply to the render target. We will set the texture sampler based on the name set in the TextureParameter: property. If you want to adjust transparency of the final image, make sure you set Blend Mode to AlphaComposite (Pre-Multiplied Alpha) and make sure to multiply the alpha you’re apply across the surface to the color and the alpha of the render target, otherwise you won’t see the expected color.

Type:

(MaterialInterface)

get_effect_material() MaterialInstanceDynamic

Get the current dynamic effect material applied to the retainer box.

Return type:

MaterialInstanceDynamic

property phase: int

[Read-Only] Phase: The Phase this widget will draw on.

If the Phase is 0, and the PhaseCount is 1, the widget will be drawn fresh every frame. If the Phase were 0, and the PhaseCount were 2, this retainer would draw a fresh frame every other frame. So in a 60Hz game, the UI would render at 30Hz.

Type:

(int32)

property phase_count: int

[Read-Only] Phase Count: The PhaseCount controls how many phases are possible know what to modulus the current frame count by to determine if this is the current frame to draw the widget on.

If the Phase is 0, and the PhaseCount is 1, the widget will be drawn fresh every frame. If the Phase were 0, and the PhaseCount were 2, this retainer would draw a fresh frame every other frame. So in a 60Hz game, the UI would render at 30Hz.

Type:

(int32)

property render_on_invalidation: bool

[Read-Only] Render on Invalidation: Should this widget redraw the contents it has every time it receives an invalidation request from it’s children, similar to the invalidation panel.

Type:

(bool)

property render_on_phase: bool

[Read-Only] Render on Phase: Should this widget redraw the contents it has every time the phase occurs.

Type:

(bool)

request_render() None

Requests the retainer redrawn the contents it has.

set_effect_material(effect_material) None

Set a new effect material to the retainer widget.

Parameters:

effect_material (MaterialInterface) –

set_rendering_phase(render_phase, total_phases) None

Requests the retainer redrawn the contents it has.

Parameters:
  • render_phase (int32) –

  • total_phases (int32) –

set_retain_rendering(retain_rendering) None

Set the flag for if we retain the render or pass-through

Parameters:

retain_rendering (bool) –

set_texture_parameter(texture_parameter) None

Sets the name of the texture parameter to set the render target to on the material.

Parameters:

texture_parameter (Name) –

property texture_parameter: Name

[Read-Only] Texture Parameter: The texture sampler parameter of the EffectMaterial,: that we’ll set to the render target.

Type:

(Name)