ReGIS
ReGIS (de l'anglais : Remote Graphic Instruction Set) est un protocole d'envoi de commandes graphiques vectorielles via liaison série, conçue par Digital Equipment Corporation (DEC), et utilisé sur ces terminaux UNIX, à partir du VT125, ainsi que sur les VT330 et VT340, avec différentes évolutions telle que l'affichage en couleur. Il s'agit d'une évolution du premier protocole Waveform graphics (en) créé au milieu des années 1970 pour les terminaux VT50 et VT105, qui se limite à des courbes graphiques à usage scientifique.
Le protocole utilise des fonctions encodées sous forme de caractères, précédés et finies par une chaîne d'échappement dédiée. Il permet :
- Différents niveaux de gris à différents couleurs
- Droites, rectangles, polygones, cercles, en fil de fer ou forme pleine
- L'animation de ces objets, en envoyant des nouvelles séquences de données.
- Le transfert des commandes peut se faire via une interface série, ou aujourd'hui au travers du protocole SSH.
La résolution par défaut du VT125 est de 768×240 pixels avec 2 plans de bits permettant le shading, chaque pixel pouvant être noir ou un des trois niveaux de gris[1]. . Celle de la série VT300 est 800×480 pixels, qui selon les modèles peuvent être répartis sur 2 (VT330) ou 4 (VT340) plans de bits[2].
Compatibilité
modifier- Xterm supporte ce protocole, lorsqu'il à été compilé avec l'option d'activation. C'est le cas par défaut dans les distributions Linux Arch Linux et dérivées[3], mais pas Debian et dérivées. Il est possible de l'utiliser en recompilant l'application avec l'option
--enable-regis-graphics
. - feilipu / ReGIS Implémentation en C de la partie serveur.
Xterm doit être lancé en compatibilité VT125, VT230,VT240 (par exemple avec les options -ti vt340 -tn vt340
) ou supérieur acceptant ce protocole, les fonctions peuvent alors être exécutées localement ou en se connectant via un port série, SSH, telnet ou autre sur un système distant.
La séquence peut également être effectuée simplement depuis un shell bash:
echo -e "\x1bP2p${command}\x1b\\"
En langage Lua:
io.stream(string.char(0x1b).."P2p"..command..string.char(0x1b,0x5c))
, etc.
Ces fonctions peuvent être exécutées dans un shell distant, via
Références
modifier- Digital et 1982 p.3.
- Harrison et 1988 Ch.2.1.
- (en) « xterm PKGBUILD », sur Arch Linux Gitlab
Bibliographie
modifier- (en) Educationnal Services of Digital Equipment Corporation, VT125 ReGIS Primer, Marloboro, Digital, (lire en ligne)
- (en) Steve Harrison, VT-330/VT340 Progammer Reference Manual : Volume 2: Graphics Programming, Digital, (lire en ligne)
Voir aussi
modifierArticles connexes
modifier- Sixel, le format bitmap des mêmes terminaux (VT330-VT340)
- Waveform_graphics (en) (mi-1970)
- TeX (1977)
- PCL (langage d'impression)
- PostScript (1997)
- SVG (1998)
Liens externes
modifier
- (en) https://ilkerf.tripod.com/cdoc/decregis.html Résumé des commandes et astuces différentes notes sur l'utilisation de ReGIS.