Per impostazione predefinita, ncurses6 si configura con --enable-ext-colors
attivato. È necessario anche --enable-widec
(altrimenti, il tipo cchar_t
che memorizza i colori estesi non viene utilizzato). Lo script di configurazione mette in guardia su questo:
checking if you want to use extended colors... yes
configure: WARNING: This option applies only to wide-character library
Supponendo che hai costruito la libreria con i colori estesi (e caratteri di larghezza), è grado di visualizzare fino a 256 colori e fino a 32767 coppie di colori (il valore massimo in un numero a 16 bit con segno). Dopodiché, dipende dalla descrizione del terminale che stai usando (e dall'emulatore di terminale). La maggior parte degli emulatori di terminale in esecuzione in X Windows può visualizzare 256 colori. Al di fuori di X, non è chiaro che ci sia una maggioranza.
ncurses ha ragionevolmente descrizioni accurate terminali per ciascuno di questi (e non, utilizzando TERM=xterm-256color
non è la risposta per ciascuno, perché le chiavi speciali e altre caratteristiche generalmente differiscono da xterm: la Domanda Why not just use TERM set to "xterm"? vale anche per xterm-256color
).
Ecco uno screenshot che mostra xterm
l'esecuzione del programma ncurses
di prova (da ncurses-examples) per i colori larghi:

fonte
2015-11-30 01:16:35
Questo non è quello che ho chiesto. So che ci sono 32k combinazioni di colori, non era questa la domanda. Era una domanda sulla variabile COLOR_PAIRS, che specifica il numero di coppie di colori differenti supportate. Il valore predefinito è misero 256, e ho letto da qualche parte che può essere impostato su 32k, ma non so come. – redspah
@redspah: leggi di nuovo questa risposta. –
@LightnessRacesinOrbit Lemme prova a spiegarmi di nuovo. Questa non è una domanda sulle possibili coppie di colori, si tratta di aumentare la dimensione del buffer che contiene le coppie definite con init_pair(). Al momento, è impostato su 256, il che significa che possono essere definite solo 256 coppie di colori in qualsiasi momento e, mentre sei libero di ridefinirle, non otterrai più di 256 coppie. Sto cercando un metodo per cambiare la dimensione di quel buffer, in modo che ci possa essere posto per 32k coppie diverse da definire allo stesso tempo. – redspah