Class ZonedRenderer
Manages multiple rendering zones to enable efficient partial screen updates. Coordinates zone dependencies and handles cascading layout invalidation.
public class ZonedRenderer
- Inheritance
-
ZonedRenderer
- Inherited Members
Constructors
ZonedRenderer(ThreadSafeConsoleManager)
Creates a new zoned renderer for the specified console
public ZonedRenderer(ThreadSafeConsoleManager console)
Parameters
consoleThreadSafeConsoleManagerThe console manager for output operations
Methods
AddDependency(string, string)
Adds a layout dependency between two zones
public void AddDependency(string dependentZone, string dependsOnZone)
Parameters
dependentZonestringZone that depends on another's layout
dependsOnZonestringZone that the dependent zone relies on
ClearZone(string)
Clears a specific zone's content area
public void ClearZone(string zoneId)
Parameters
zoneIdstringThe zone to clear
GetZoneBounds(string)
Gets the current boundaries of a zone
public Region? GetZoneBounds(string zoneId)
Parameters
zoneIdstringThe zone identifier
Returns
- Region
The zone's current bounds, or null if not found
GetZoneIds()
Gets all registered zone identifiers
public IEnumerable<string> GetZoneIds()
Returns
- IEnumerable<string>
Collection of zone IDs
InvalidateAll()
Marks all zones as needing redraw
public void InvalidateAll()
InvalidateZone(string)
Marks a specific zone as needing redraw
public void InvalidateZone(string zoneId)
Parameters
zoneIdstringThe zone to invalidate
IsZoneDirty(string)
Checks if a zone exists and is dirty
public bool IsZoneDirty(string zoneId)
Parameters
zoneIdstringThe zone to check
Returns
- bool
True if the zone exists and needs rendering
RegisterZone(string, Region, Action<RenderZone, object?>, int)
Registers a new rendering zone with its render callback
public void RegisterZone(string zoneId, Region bounds, Action<RenderZone, object?> renderer, int renderPriority = 100)
Parameters
zoneIdstringUnique identifier for the zone
boundsRegionInitial spatial boundaries
rendererAction<RenderZone, object>Callback function to render this zone's content
renderPriorityintRender order priority (lower renders first)
RenderDirtyZones(object?)
Renders all dirty zones in priority order
public void RenderDirtyZones(object? renderData = null)
Parameters
renderDataobjectOptional data to pass to zone renderers
RenderZones(IEnumerable<string>, object?)
Renders specific zones regardless of dirty state
public void RenderZones(IEnumerable<string> zoneIds, object? renderData = null)
Parameters
zoneIdsIEnumerable<string>The zones to render
renderDataobjectOptional data to pass to zone renderers
UpdateZoneBounds(string, Region)
Updates a zone's boundaries and triggers dependency cascades
public void UpdateZoneBounds(string zoneId, Region newBounds)
Parameters
Events
ZoneLayoutChanged
Event fired when a zone's layout changes and affects other zones
public event Action<string, Region, Region>? ZoneLayoutChanged