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 = Hardcaml_waveterm.Import.int * Hardcaml_waveterm.Draw.Style.tinclude Hardcaml_waveterm.Draw.S
with type ctx =
point Hardcaml_waveterm.Import.array Hardcaml_waveterm.Import.array
and type style = Hardcaml_waveterm.Draw.Style.t
with type style = Hardcaml_waveterm.Draw.In_memory.styledrawing context
type style = Hardcaml_waveterm.Draw.In_memory.styleunderlying style type
val rows : ctx -> Hardcaml_waveterm.Import.intval cols : ctx -> Hardcaml_waveterm.Import.intval 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 -> Hardcaml_waveterm.Import.unitclear display
val fill :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
Hardcaml_waveterm.Import.char ->
Hardcaml_waveterm.Import.unitfill bounds with char given style
val draw_int :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.unitdraw int (representing unicode value)
val draw_piece :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Draw.piece ->
Hardcaml_waveterm.Import.unitdraw piece
val draw_char :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.char ->
Hardcaml_waveterm.Import.unitdraw char
val draw_string :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.string ->
Hardcaml_waveterm.Import.unitdraw string (nothing fancy - horizontal, no breaks)
val draw_box :
ctx:ctx ->
style:style ->
bounds:Hardcaml_waveterm.Draw.rect ->
Hardcaml_waveterm.Import.string ->
Hardcaml_waveterm.Import.unitdraw box outline with label
val get :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.int * Hardcaml_waveterm.Draw.Style.tget value and style at point
val inv :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.unitinvert fg and bg at point
val bold :
ctx:ctx ->
bounds:Hardcaml_waveterm.Draw.rect ->
r:Hardcaml_waveterm.Import.int ->
c:Hardcaml_waveterm.Import.int ->
Hardcaml_waveterm.Import.unitset bold on point
val init :
rows:Hardcaml_waveterm.Import.int ->
cols:Hardcaml_waveterm.Import.int ->
ctx