visible-glyph-regions ( line left right -- regions )


Vocabulary
core-text

Inputs
linean object
leftan object
rightan object


Outputs
regionsan object


Definition


:: visible-glyph-regions ( line left right -- regions )
line line-render-index :> regions 0 :> lo! regions length
:> hi!
[ lo hi < ] [
lo hi + 2 /i :> mid mid regions nth max-right>> left <
[ mid 1 + lo! ] [ mid hi! ] if
] while V{ } clone :> visible [
lo regions length <
[ lo regions nth left>> right <= ] [ f ] if
] [
lo regions nth :> region region right>> left >=
[ region visible push ] when lo 1 + lo!
] while visible [ order>> ] sort-by ;