|
|
|
@ -15,16 +15,16 @@ and moving the cursor. A major function of Notcurses is to portably and
|
|
|
|
|
efficiently emit the sequences necessary to effect higher-level client goals.
|
|
|
|
|
|
|
|
|
|
Notcurses offers two major modes of operation:
|
|
|
|
|
* **Direct mode** can be used together with standard I/O. It is primarily meant
|
|
|
|
|
* **[Direct mode](./directmode.md)** can be used together with standard I/O. It is primarily meant
|
|
|
|
|
to enhance simple scrolling applications via coloring and styling, though it
|
|
|
|
|
can also move the cursor, read raw keyboard input, and render media. Use
|
|
|
|
|
direct mode if you intend to primarily output through standard library
|
|
|
|
|
functions such as `printf()`. Direct mode uses `struct ncdirect`s.
|
|
|
|
|
* **Fullscreen mode** facilitates more complex Text User Interface applications.
|
|
|
|
|
These applications maintain virtual state in the form of an ordered stack of
|
|
|
|
|
`struct ncplane`s; when they're ready, the visible area is redrawn. It can
|
|
|
|
|
provide much greater performance than direct mode, but does not tolerate the
|
|
|
|
|
use of standard I/O. Fullscreen mode uses `struct notcurses`.
|
|
|
|
|
* **[Rendered mode](./rendered.md)** facilitates more complex Text User Interface applications.
|
|
|
|
|
These applications maintain virtual state in the form of ordered stacks of
|
|
|
|
|
`struct ncplane`s; when ready, the visible area is redrawn. It can provide
|
|
|
|
|
much greater performance than direct mode, but does not tolerate the use of
|
|
|
|
|
standard I/O. Rendered mode uses `struct notcurses`.
|
|
|
|
|
|
|
|
|
|
Whichever mode is used, it is essential to destroy all Notcurses contexts upon
|
|
|
|
|
program exit, or the terminal can be left in an undesirable state. By default,
|
|
|
|
@ -35,7 +35,7 @@ Notcurses does not strictly require a terminal device for input or output; it
|
|
|
|
|
can be freely redirected to arbitrary character devices or files. When not
|
|
|
|
|
connected to a terminal device, many escapes will not be generated.
|
|
|
|
|
|
|
|
|
|
Whether using fullscreen or direct mode, there are a few technical minutia
|
|
|
|
|
Whether using rendered or direct mode, there are a few technical minutia
|
|
|
|
|
almost every Notcurses program will want to do early on:
|
|
|
|
|
|
|
|
|
|
* Call `setlocale()` to modify the program's POSIX locale, usually based
|
|
|
|
|