Raxol.Terminal.Buffer.DamageTracker (Raxol v0.2.0)

View Source

Manages damage tracking for terminal buffers.

Handles marking regions as damaged and merging overlapping regions for efficient redrawing.

Summary

Functions

Clears all tracked damage regions.

Gets the list of distinct damaged regions.

Marks a rectangular region as damaged.

Creates a new, empty damage tracker.

Types

region()

t()

@type t() :: %Raxol.Terminal.Buffer.DamageTracker{regions: [region()]}

Functions

clear_regions(tracker)

@spec clear_regions(t()) :: t()

Clears all tracked damage regions.

get_regions(tracker)

@spec get_regions(t()) :: [region()]

Gets the list of distinct damaged regions.

mark_damaged(tracker, x1, y1, x2, y2)

@spec mark_damaged(
  t(),
  non_neg_integer(),
  non_neg_integer(),
  non_neg_integer(),
  non_neg_integer()
) ::
  t()

Marks a rectangular region as damaged.

Merges the new region with any existing overlapping regions.

new()

@spec new() :: t()

Creates a new, empty damage tracker.