finalcut/doc/virtual-terminal.txt

57 lines
4.0 KiB
Plaintext
Raw Permalink Normal View History

2018-01-05 00:49:00 +01:00
The virtual terminal (vterm)
----------------------------
2015-05-23 13:35:12 +02:00
2019-10-08 04:37:19 +02:00
FINAL CUT uses a virtual terminal to print character via an update method
on the screen. It provides (as an overlying layer) virtual windows for
the realization of window movements. The update methods only transfer
differences to the virtual terminal or physical screen.
2015-05-23 13:35:12 +02:00
print(...)
printf(...)
2019-10-08 04:37:19 +02:00
│ ╔════════════════════════[ vterm ]════════════════════════╗
│ ║createVTerm() ║
│ ║ ┌ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐ ║
│ ║ ║
│ ║ │ restoreVTerm(x,y,w,h) │ ║
│ ┌───────╨────[ vwin ]────────────┐ ║
│ │createArea(area) │ └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘ ║
│ │ │ ║
│ │ │ ║
└──┼────────► putArea(area) ────► ║
│ │ ║
│ putArea(x,y,area) ────► ║
│ │ ║
│ ◄──── getArea(x,y,area) ║
│ │ ║
│ │ ║
│ │ ║
│ resizeArea(area)│ ║
└───────╥────────────────────────┘ ║
║ ║
║ │ resizeVTerm()║
╚═══════▼═════════════════════════════════════════════════╝
│ putVTerm()
└──────────────────► updateTerminalLine(y)
updateTerminal() │
┌───────────────┐
│ output_buffer │
└───────────────┘
│ flushOutputBuffer()
│ and putchar(char)
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▌ ▐
▌ screen ▐
▌ ───────────── ▐
▌ real terminal ▐
▌ ▐
▀▀▀▀▀▀▀███▀▀▀▀▀▀▀
███
▀▀▀▀▀▀▀▀▀