Lessico IT › Programmazione › Mappe colori standard (ICCCM)

Mappe colori standard (ICCCM)

Programmazione Svenska → Aggiornato: 2026-10-10

La ricetta ICCCM per far condividere a più programmi X una colormap da 256 colori senza interrogare il server per ogni sfumatura: una proprietà sulla finestra radice che descrive il cubo dei colori con tre moltiplicatori e un pixel di base.

In un display PseudoColor ogni colore era una cella di una colormap, e un programma che allocava le proprie celle le sottraeva a tutti gli altri. La soluzione dell'ICCCM fu lasciare che qualcuno, di solito un piccolo programma eseguito all'avvio della sessione, allocasse una sola volta un cubo di colori regolare e lo descrivesse in proprietà della finestra radice chiamate RGB_DEFAULT_MAP, RGB_BEST_MAP, RGB_GRAY_MAP e poche altre. Il record contiene l'id della colormap, il visual, red_max, green_max, blue_max, tre moltiplicatori e un base_pixel. Il pixel di un colore si calcola poi in locale come base_pixel + r·red_mult + g·green_mult + b·blue_mult, senza una sola richiesta al server. L'utilità xstdcmap crea le mappe, Xlib le legge con XGetRGBColormaps e Xmu offre funzioni per trovarne una o crearla al volo.

Lo scopo era prestazioni e quiete insieme. Un cubo 3-3-2, otto livelli di rosso e verde e quattro di blu, stava in 256 celle e bastava alla maggior parte dei visualizzatori di immagini; usando la mappa standard un programma evitava sia i round trip sia il lampeggio psichedelico che compariva spostando il focus tra finestre con colormap private. Il campo killid indicava chi possedeva le celle, in modo da poterle ripulire. Il TrueColor ha reso tutto superfluo negli anni 2000; resta il capitolo 7 dell'ICCCM e qualche xprop -root che mostra ancora un RGB_DEFAULT_MAP che nessuno ha chiesto.

← Torna al lessico