Xcurses: Difference between revisions
| (6 intermediate revisions by the same user not shown) | |||
| Line 4: | Line 4: | ||
Whereas libaa and libcaca (beautifully) attenuate high-resolution graphics, reducing them to input suitable for low-resolution "character cell"-based displays, Xcurses (faithfully) renders programmatic character cell output as virtual vector primitives, applies optional transforms, and renders them to a high-resolution bitmap display. Xcurses will have knowledge of the input forms at the '''character set''' level, which ought allow for interesting effects... | Whereas libaa and libcaca (beautifully) attenuate high-resolution graphics, reducing them to input suitable for low-resolution "character cell"-based displays, Xcurses (faithfully) renders programmatic character cell output as virtual vector primitives, applies optional transforms, and renders them to a high-resolution bitmap display. Xcurses will have knowledge of the input forms at the '''character set''' level, which ought allow for interesting effects... | ||
* Scalable brackets | * Scalable brackets | ||
* True support of GTK/QT themes | * True support of GTK/QT themes | ||
** Palette initialized with the theme palette as opposed to [http://stackoverflow.com/questions/8686368/how-can-the-original-terminal-palette-be-acquired-preferably-using-ncurses-rout a bunch of useless horseshit] | ** Palette initialized with the theme palette as opposed to [http://stackoverflow.com/questions/8686368/how-can-the-original-terminal-palette-be-acquired-preferably-using-ncurses-rout a bunch of useless horseshit] | ||
| Line 44: | Line 44: | ||
====Dynamically open X.org libraries==== | ====Dynamically open X.org libraries==== | ||
* '''Bad:''' | * '''Bad:''' | ||
** | ** Bad kind of in the same way burning one's testicles is bad, which is to say unpleasant. | ||
====Hybrid linking==== | |||
* Link all the X crap into libXcurses-bigfatbagofshit.so | |||
* Dynamically open it from libXcurses once we've verified it's safe to do so, meaning both that: | |||
** all component objects' _init functions (see [[GCC]] documentation, "[http://gcc.gnu.org/onlinedocs/gccint/Initialization.html How Initialization Functions Are Handled]") may be safely invoked, and | |||
** resource consumption in the event of non-use is negligible | |||
===Take over libcurses.so=== | ===Take over libcurses.so=== | ||
===[[Working_with_libraries#Interpositioning|Interpositioning]]=== | ===[[Working_with_libraries#Interpositioning|Interpositioning]]=== | ||
| Line 67: | Line 73: | ||
==See Also== | ==See Also== | ||
[[TANGE]] | * [[Outcurses]], which actually went somewhere | ||
* [[Notcurses]], which modernizes NCURSES | |||
* [[TANGE]] | |||
[[CATEGORY: Projects]] | [[CATEGORY: Projects]] | ||