Process-dictionary cache for incremental rendering.
Tracks per-widget strip fingerprints and the last composited output so the renderer can skip recompositing rows where nothing changed.
Summary
Functions
Absolute screen rows that changed between two per-row cache-key lists.
Functions
@spec changed_rows([term()] | nil, [term()], non_neg_integer()) :: MapSet.t(non_neg_integer())
Absolute screen rows that changed between two per-row cache-key lists.
bounds_y offsets the row index to a screen row. A nil previous list
(the widget's first frame) marks every row dirty.
@spec compute_directional_dirty_rows(atom(), map(), map()) :: MapSet.t(non_neg_integer())
@spec get_app_state_hash() :: non_neg_integer() | nil
@spec get_composited() :: [Drafter.Draw.Strip.t()] | nil
@spec get_layer_count() :: non_neg_integer() | nil
@spec invalidate() :: :ok
@spec put_app_state_hash(non_neg_integer()) :: :ok
@spec put_composited([Drafter.Draw.Strip.t()]) :: :ok
@spec put_layer_count(non_neg_integer()) :: :ok
@spec strips_fingerprint([Drafter.Draw.Strip.t()]) :: non_neg_integer()