IT-lexikon › Infrastruktur › Generic Event Extension (XGE)

Generic Event Extension (XGE)

Infrastruktur In English → Uppdaterad: 2026-10-10
Mer info
Skapad av
Peter Hutterer
År
2008
Typ
X11-tillägg
Spec

X11-tillägget som gjorde händelser längre än 32 byte möjliga, så att XInput 2 kunde rapportera tryck, lutning och fingrar utan att trycka ihop allt i protokollets gamla kuvert.

Varje händelse i X11:s kärnprotokoll är exakt 32 byte, och de åtta bitarna som anger typ räckte till 128 varianter för alla tillägg tillsammans. Det fungerade för tangent och mus 1987, men en ritplatta med tryck, lutning, rotation och flera fingrar fick inte plats. Peter Hutterer skrev Generic Event Extension 2008 som en kil i protokollet: en enda händelsetyp, GenericEvent med numret 35, vars huvud rymmer tilläggets opkod, en egen undertyp och ett längdfält. Allt som inte får plats i de 32 byten följer efter i fyrabytesblock.

Första kunden var XInput 2 året därpå, med MPX som behövde skicka hela listor av axelvärden per händelse, och senare Present. Priset syns i Xlib, som alltid antagit fast storlek: en klient får en XGenericEventCookie och måste anropa XGetEventData för att hämta resten, och XFreeEventData efteråt. Glömmer man det läcker programmet, och många gjorde det. XCB slapp problemet eftersom det aldrig antog något om längden.

← Tillbaka till lexikonet