Hardcaml_waveterm_interactive.Draw_nottyNotty based gfx API. We need to use an intermediate in memory representation for notty.
include module type of Hardcaml_waveterm.Draw.In_memory
with type style = Hardcaml_waveterm.Draw.In_memory.styletype point = Base.Int.t * Hardcaml_waveterm.Draw.Style.tinclude Hardcaml_waveterm.Draw.S
with type ctx = point Base.Array.t Base.Array.t
and type style = Hardcaml_waveterm.Draw.Style.t
with type style = Hardcaml_waveterm.Draw.In_memory.styletype ctx = point Base.Array.t Base.Array.tdrawing context
type style = Hardcaml_waveterm.Draw.In_memory.styleunderlying style type
val rows : ctx -> Base.Int.tval cols : ctx -> Base.Int.tval get_bounds : ctx -> Hardcaml_waveterm.Draw.rectget context size
val get_style : Hardcaml_waveterm.Draw.Style.t -> styleconvert our style info to underlying style
val clear : ctx -> Base.Unit.tclear display
val fill :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
Base.Char.t ->
Base.Unit.tfill bounds with char given style
val draw_int :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.Int.t ->
Base.Unit.tdraw int (representing unicode value)
val draw_piece :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Hardcaml_waveterm.Draw.piece ->
Base.Unit.tdraw piece
val draw_char :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.Char.t ->
Base.Unit.tdraw char
val draw_string :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.String.t ->
Base.Unit.tdraw string (nothing fancy - horizontal, no breaks)
val draw_box :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
Base.String.t ->
Base.Unit.tdraw box outline with label
val get :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.Int.t * Hardcaml_waveterm.Draw.Style.tget value and style at point
val inv :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.Unit.tinvert fg and bg at point
val bold :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Base.Int.t ->
c:Base.Int.t ->
Base.Unit.tset bold on point
val init : rows:Base.Int.t -> cols:Base.Int.t -> ctx