IT-Lexikon › Infrastruktur › ARGB-Visual

ARGB-Visual

Infrastruktur Svenska → Aktualisiert: 2026-10-09

Das 32-Bit-Visual von X11, dessen viertes Byte ein Alphakanal ist, sodass ein Fenster pixelweise durchscheinen kann – sofern ein Compositor läuft, den das interessiert.

Das Kernprotokoll von X11 weiß nichts von Transparenz. Ein Visual beschreibt, wie Pixelwerte zu Farben werden, und bei 24 Bit sind alle Bits von Rot, Grün und Blau belegt. XRender brachte ein Bildformat namens ARGB32 mit, bei dem die obersten acht Bits eines 32-Bit-Werts als Deckkraft gelesen werden, und seither bietet der Server neben dem gewöhnlichen auch ein TrueColor-Visual mit Tiefe 32 an. Ein damit erzeugtes Fenster trägt einen Alphakanal, den lange niemand nutzte, bis Composite 2004 das Zeichnen in ein separates Pixmap verlegte: Seitdem kann der Compositor das Alpha auslesen und das Fenster mit dem verrechnen, was dahinter liegt. Schatten, Überblendungen und durchscheinende Terminals unter Linux laufen alle über diesen Weg.

Die Fallstricke sind bekannt. Ein 32-Bit-Fenster braucht eine eigene Colormap für das Visual und ein explizites border_pixel, sonst antwortet der Server mit BadMatch – ein Fehler, an dem Generationen von Programmierern gelernt haben. Läuft kein Compositor, wird das Alpha schlicht ignoriert, und das Fenster zeigt, was gerade im Puffer steht, meist Schwarz. GTK bekam 2005 gdk_screen_get_rgba_colormap und Qt 2009 das Attribut WA_TranslucentBackground, damit das passende Visual automatisch gewählt wird. Wer nur ein ganzes Fenster ausblenden will, erspart sich das alles mit der Property _NET_WM_WINDOW_OPACITY, einer informellen Konvention aus xcompmgr und Compiz, die seither jeder Compositor beachtet, ohne dass sie je in EWMH aufgenommen wurde.

← Zurück zum Lexikon