Raxol.Terminal.Buffer.Manager.Damage (Raxol v0.4.0)

View Source

Handles damage tracking for the terminal buffer. Provides functionality for tracking and managing damaged regions.

Summary

Functions

Clears all damage regions.

Gets all damaged regions.

Marks the entire visible region as damaged.

Marks a column as damaged.

Marks a line as damaged.

Marks a region of the buffer as damaged.

Merges overlapping damage regions.

Functions

clear_regions(state)

Clears all damage regions.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_region(state, 0, 0, 10, 5)
iex> state = Damage.clear_regions(state)
iex> length(Damage.get_regions(state))
0

get_regions(state)

Gets all damaged regions.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_region(state, 0, 0, 10, 5)
iex> regions = Damage.get_regions(state)
iex> length(regions)
1

mark_all(state)

Marks the entire visible region as damaged.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_all(state)
iex> length(Damage.get_regions(state))
1

mark_column(state, x)

Marks a column as damaged.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_column(state, 10)
iex> length(Damage.get_regions(state))
1

mark_line(state, y)

Marks a line as damaged.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_line(state, 5)
iex> length(Damage.get_regions(state))
1

mark_region(state, x1, y1, x2, y2)

Marks a region of the buffer as damaged.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_region(state, 0, 0, 10, 5)
iex> length(Damage.get_regions(state))
1

merge_regions(state)

Merges overlapping damage regions.

Examples

iex> state = State.new(80, 24)
iex> state = Damage.mark_region(state, 0, 0, 10, 5)
iex> state = Damage.mark_region(state, 5, 0, 15, 5)
iex> state = Damage.merge_regions(state)
iex> length(Damage.get_regions(state))
1