X Window System protocoale și arhitectură

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

1leftarrow blue.svg Intrare principală: X Window System .

În informatică , sistemul X Window (denumit în mod obișnuit X11 sau X) este un sistem transparent, comparativ cu rețelele de calculatoare, cu ferestre pentru afișarea bitmap-urilor. Această intrare descrie detaliile protocoalelor și structurii tehnice a X11.

Istorie

Pictogramă lupă mgx2.svg Același subiect în detaliu: X Window System .

X a fost creat ca parte a proiectului Athena de la MIT .

Modelul client-server și transparența rețelei

X se bazează pe un model client-server . Un program X server rulează pe un computer cu afișaj grafic și comunică cu diferite programe client . Serverul acționează ca un intermediar între utilizator și programul client, acceptând cererile de ieșire grafică (ferestre) de la programele client și arătându-le utilizatorului și primind intrările utilizatorului (tastatură, mouse) și transmitându-le către programele client.

În X, serverul rulează pe computerul utilizatorului, în timp ce clienții pot rula și pe diferite mașini. Acesta este opusul configurației obișnuite a sistemelor client-server, unde clientul rulează pe computerul utilizatorului și serverul rulează pe un computer la distanță. Acest mod invers confundă adesea noii utilizatori X. Terminologia X Window este privită mai degrabă din perspectiva programului client decât din cea a utilizatorului sau a hardware-ului: programele la distanță se conectează la afișajul atașat la serverul X care rulează în mașina locală și, prin urmare, acționează ca client; Afișajul X local acceptă traficul primit și, prin urmare, acționează ca un server.

În acest exemplu, serverul X primește intrarea de la tastatură și mouse și afișează ieșirea pe un ecran. Un browser web și un emulator de terminal rulează pe stația de lucru a unui utilizator, iar un emulator de terminal rulează pe un server la distanță, dar este controlat de aparatul utilizatorului. Rețineți că aplicația la distanță rulează ca și când ar fi rulat local.

Protocolul de comunicație între server și client rulează transparent în ceea ce privește rețeaua: clientul și serverul pot rula pe aceeași mașină sau pe mașini diferite, posibil cu arhitecturi și sisteme de operare diferite. Un client și un server pot comunica în siguranță prin Internet prin tunelarea conexiunii într-o conexiune criptată.

Principii de proiectare

Bob Scheifler și Jim Gettys stabilesc primele principii ale lui X după cum urmează (așa cum sunt enumerate în Scheifler / Gettys 1996):

  • Nu trebuie adăugate funcții noi decât dacă un dezvoltator poate completa o aplicație reală fără ea.
  • Este la fel de important să decidem ce nu este un sistem, precum este să decidem ce este. Nu (trebuie) să îndeplinească toate nevoile lumii; mai degrabă, faceți extensibil sistemul, astfel încât nevoile viitoare să poată fi satisfăcute într-o manieră compatibilă înainte.
  • Singurul lucru mai rău decât generalizarea dintr-un exemplu este generalizarea fără nici măcar un singur exemplu .
  • Dacă o problemă nu este pe deplin înțeleasă, cel mai bine este să nu oferiți nicio soluție.
  • Dacă puteți obține 90 la sută din efectele dorite pentru 10 la sută din muncă, utilizați soluția mai simplă. (Vezi și Mai rău este mai bine .)
  • Izolați complexitatea cât mai mult posibil.
  • Furnizați mai degrabă mecanisme decât politici. În special, puneți politicile UI în mâinile clienților.

Primul principiu a fost schimbat în timpul proiectării X11 la: „Nu adăugați funcții noi decât dacă auziți de o aplicație reală care o va necesita”. De atunci, X a aderat în mare măsură la aceste principii. Implementarea de referință este dezvoltată cu o viziune de extindere și îmbunătățire a implementării, rămânând aproape în întregime compatibilă cu protocolul original din 1987.

Protocol principal

Pictogramă lupă mgx2.svg Același subiect în detaliu: protocolul de bază X Window System .

Comunicarea dintre server și client se face prin schimbul de pachete printr-un canal de rețea. Conexiunea este stabilită de client, care trimite primul pachet. Serverul răspunde prin trimiterea unui pachet care certifică acceptarea sau respingerea conexiunii sau printr-o cerere de autentificare ulterioară. Dacă conexiunea este acceptată, pachetul de acceptare conține date pe care clientul le poate utiliza în interacțiunea ulterioară cu serverul.

După stabilirea conexiunii, pot fi schimbate patru tipuri de pachete între client și server în canal:

  1. Solicitare: Clientul solicită informații de la server sau îi solicită să efectueze o acțiune.
  2. Răspuns: Serverul răspunde la cerere. Nu toate cererile generează un răspuns.
  3. Eveniment: Serverul trimite un eveniment clientului, de exemplu o intrare de mouse sau tastatură sau o fereastră care a fost mutată, redimensionată sau expusă.
  4. Eroare: Serverul trimite un pachet de eroare dacă o cerere nu este validă. Deoarece cererile sunt puse în coadă, pachetele de erori generate de o cerere pot să nu fie trimise imediat.

Serverul X oferă un set de servicii de bază. Programele client realizează funcționalități mai complexe prin interacțiunea cu serverul.

Windows

O posibilă plasare a unor ferestre: 1 este fereastra rădăcină, care acoperă întregul ecran; 2 și 3 sunt ferestre de nivel superior; 4 și 5 sunt sub ferestrele 2. Părțile ferestrei care se află în afara ferestrei părinte nu sunt vizibile.

Ceea ce se numește de obicei o fereastră în alte interfețe grafice de utilizator este o fereastră de nivel superior (prim-plan) din sistemul X Window. Termenul fereastră este, de asemenea, utilizat pentru ferestrele care se află în altă fereastră, cu alte cuvinte, sub ferestrele unei ferestre părinte . Elemente grafice precum butoane, meniuri, pictograme etc. toate sunt realizate folosind ferestre.

O fereastră poate fi creată ca o sub-fereastră a unei ferestre părinte. Acest lucru face ca ferestrele să fie gestionate ierarhic într-un copac . Rădăcina arborelui se numește fereastră rădăcină , care este creată automat de server. Ferestrele de nivel superior sunt exact ferestrele secundare ale ferestrei rădăcină. Vizual, fereastra rădăcină este la fel de largă ca ecranul și se află în spatele tuturor celorlalte ferestre.

Identificatori

Toate datele despre ferestre, fonturi etc. sunt stocate pe server. Clientul cunoaște identificatorii acestor obiecte - numere întregi pe care le poate folosi drept nume atunci când interacționează cu serverul. De exemplu, dacă un client dorea să se creeze o fereastră, acesta ar solicita serverului să creeze o fereastră cu un identificator dat. Serverul creează apoi o fereastră și asociază identificatorul cu aceasta. Identificatorul poate fi folosit ulterior de client pentru a solicita, de exemplu, ca un șir să fie desenat în fereastră.

Identificatorii sunt, de asemenea, unici pe server, nu doar pe client; de exemplu, nu pot exista două ferestre cu același identificator, chiar dacă sunt create de doi clienți diferiți. Un client poate accesa orice obiect cunoscut de identificator, chiar dacă obiectul a fost creat de un alt client.

Atribute și proprietăți

Fiecare fereastră are un set predefinit de atribute și un set de proprietăți, toate stocate pe server și accesibile clienților prin cereri adecvate. Atributele sunt date referitoare la fereastră, precum dimensiunea, poziția, culoarea fundalului etc. Proprietățile sunt date care sunt atribuite ferestrei. Spre deosebire de atribute, proprietățile nu au nicio semnificație la nivelul protocolului de bază X Window. Un client poate salva date arbitrare într-o proprietate a ferestrei.

O proprietate este caracterizată de un nume, un tip și o valoare. O proprietate este similară cu o variabilă într-un limbaj imperativ , în care aplicația poate crea o nouă proprietate cu un nume și un tip dat și poate salva o valoare pentru aceasta. Proprietățile sunt asociate cu ferestrele: două proprietăți cu același nume, având diferite tipuri și valori, pot exista în două ferestre diferite.

Proprietățile sunt utilizate în principal pentru comunicarea între clienți. De exemplu, proprietatea numită WM_NAME este utilizată pentru a salva numele ferestrei; administratorii de ferestre citesc de obicei această proprietate și afișează numele ferestrei în partea de sus a acesteia.

Proprietățile unei ferestre pot fi afișate folosind comanda xprop . În special, xprop -root arată proprietățile ferestrei rădăcină, care include resursele X (resurse X, parametrii programului).

Evenimente

Evenimentele sunt pachete trimise de la server către client pentru a comunica că s-a întâmplat ceva pe care clientul este interesat să îl știe. Un client poate solicita serverului să trimită un eveniment altui client; aceasta este utilizată pentru comunicarea între clienți. De exemplu, atunci când un client solicită textul selectat în prezent, un eveniment este trimis clientului care deține fereastra care are textul selectat.

Conținutul unei ferestre poate fi distrus în unele cazuri (de exemplu, dacă fereastra este acoperită). Ori de câte ori o zonă de conținut distrus (nevizibil) este făcută vizibilă, serverul generează un eveniment Expose pentru a notifica clientul că o parte a ferestrei trebuie desenată.

Alte evenimente sunt folosite pentru a notifica clienții despre introducerea mouse-ului sau tastaturii, despre crearea de noi ferestre etc.

Unele tipuri de evenimente sunt întotdeauna trimise clienților, dar cele mai multe evenimente sunt trimise numai dacă clientul a stabilit un interes în primirea lor. Acest lucru se datorează faptului că clienții pot fi interesați doar de anumite tipuri de evenimente. De exemplu, un client ar putea fi interesat de evenimentele de la tastatură, dar nu de evenimentele de la mouse.

Moduri de culoare

Modul în care sunt tratate culorile în sistemul X Window uneori încurcă utilizatorii și, din punct de vedere istoric, există multe modalități diferite care au fost acceptate. Majoritatea aplicațiilor moderne folosesc Truecolor (culori pe 24 de biți, 8 biți pentru fiecare dintre roșu, verde și albastru), dar aplicațiile mai vechi sau specializate pot necesita moduri diferite. Multe aplicații comerciale de specialitate folosesc PseudoColor.

Protocolul X11 utilizează în prezent un singur număr întreg nesemnat pe 32 de biți pentru a reprezenta o singură culoare în majoritatea operațiilor grafice, numită valoare pixel . La transferul intensității culorilor primare, se utilizează un număr întreg de 16 biți pentru fiecare componentă de culoare. Există următoarele reprezentări de culoare; este posibil ca nu toate acestea să fie acceptate.

  • DirectColor: o valoare a pixelilor este descompusă în subcâmpuri separate roșu, verde, albastru. Fiecare subcâmp indexează o hartă de culori separată (hartă de culori). Intrările pot fi modificate în toate colormap-urile.
    • TrueColor: La fel ca DirectColor, cu excepția faptului că intrările colormap sunt predefinite de hardware și nu pot fi modificate. De obicei, fiecare hartă colorată de roșu, verde și albastru oferă o curbă (aproape) liniară de intensitate.
  • GreyScale: o valoare a pixelilor indexează o singură hartă de culori care conține intensități monocromatice. Intrările colormap pot fi modificate.
    • StaticGray: La fel ca GrayScale. cu excepția faptului că intrările colormap sunt predefinite de hardware și nu pot fi modificate.
  • PseudoColor ( Chunk ): o valoare a pixelilor indexează o singură hartă de culori care conține intensitățile culorilor. Intrările colormap pot fi modificate.
    • StaticColor: La fel ca PseudoColor, cu excepția faptului că intrările colormap sunt predefinite de hardware și nu pot fi modificate.
Pictogramă lupă mgx2.svg Același subiect în detaliu: numele culorilor X11 .

Xlib și alte biblioteci client

Pictogramă lupă mgx2.svg Același subiect în detaliu: Xlib .

Majoritatea programelor client comunică cu serverul prin biblioteca client Xlib . În special, majoritatea clienților folosesc biblioteci precum Xaw , Motif , GTK + sau Qt, care la rândul lor folosesc Xlib pentru a interacționa cu serverul.

Comunicarea între clienți

Protocolul de bază X Window oferă mecanisme de comunicare între clienți: proprietăți de fereastră și evenimente, în special evenimente de la mesaj la client. Cu toate acestea, nu specifică protocoale pentru aceste tipuri de interacțiuni. În schimb, aceste protocoale sunt guvernate de un set separat de convenții de comunicare inter-client.

Manualul convențiilor de comunicare între clienți specifică protocolul pentru schimbul de date prin selecții și interacțiunea aplicațiilor cu managerul de ferestre. Această specificație a fost considerată dificilă și confuză; consistența „aspectului” aplicației și a comunicării este abordată în general prin programarea unui mediu desktop specific.

Protocolul Inter-Client Exchange (ICE) specifică un cadru pentru crearea protocoalelor de interacțiune între clienți, astfel încât un protocol specific să poată fi construit deasupra acestuia. În special, protocolul X Session Management (XSMP) este un protocol bazat pe ICE care reglementează interacțiunea dintre aplicații cu managerul de sesiune, care este programul care stochează starea desktopului la sfârșitul unei sesiuni interactive. Și pentru a prelua atunci când este reluată o altă sesiune cu același utilizator.

Convențiile mai recente sunt incluse în specificația freedesktop , inclusiv drag-and-drop, convenția Xdnd utilizată pentru transferul de date prin selectarea și glisarea către o altă fereastră și convenția aplicației încorporate Xembed care specifică modul în care o aplicație poate fi rulată într-un sub -fereastra unei alte aplicații.

Selecții, tampoane de tăiere și tragere

Pictogramă lupă mgx2.svg Același subiect în detaliu: selecție în fereastra X.

Selecțiile, tampoanele de tăiere și drag and drop sunt mecanismele utilizate de X Window System pentru a permite unui utilizator să transfere date de la o fereastră la alta. Selecțiile și tampoanele de tăiere sunt folosite (de obicei) atunci când un utilizator selectează text sau alte date într-o fereastră și lipesc într-o fereastră diferită. Drag and drop este utilizat atunci când un utilizator selectează ceva într-o fereastră, apoi face clic pe selecție și trage la o altă fereastră.

Deoarece două ferestre pot fi gestionate de două aplicații diferite, transferul de date necesită doi clienți diferiți pentru a interacționa cu același server X. Protocolul de bază X Window include unele tipuri de cereri și evenimente care sunt specifice selecțiilor de comutare, dar transferul se face folosind proprietăți generale de trimitere a evenimentelor de la client la client și ferestre, care nu sunt specifice selecțiilor de transfer.

Datele care urmează să fie transferate între clienți pot fi de diferite tipuri: sunt de obicei text, dar pot fi și pixmap, un număr, o listă de obiecte etc.

Drag and drop sunt mecanisme active: după ce o bucată de text a fost selectată într-o fereastră, clientul care gestionează fereastra trebuie să accepte în mod activ un protocol pentru transferul de date către aplicația solicitantă. Bufferele de tăiere, pe de altă parte, sunt un mecanism pasiv: atunci când utilizatorul selectează un text, conținutul său este transferat într-un buffer de tăiere, unde rămâne chiar dacă aplicația care gestionează fereastra se termină și fereastra este distrusă.

Manager ferestre

Pictogramă lupă mgx2.svg Același subiect în detaliu: X window manager .

Un manager de ferestre este un program care controlează aspectul general al ferestrelor și al altor elemente grafice ale interfeței grafice a utilizatorului . Diferențele în aspectul sistemului X Window în diferite instalații se datorează în principal utilizării diferiților manageri de ferestre sau configurațiilor diferite ale managerului de ferestre.

Managerul ferestrelor are grijă să decidă poziția ferestrelor, să adauge margini decorative în jurul lor, să gestioneze pictograme, să gestioneze clicurile mouse-ului în afara ferestrelor (în fundal), să gestioneze anumite combinații de taste etc.

Din punctul de vedere al serverului X, managerul de ferestre nu diferă de alți clienți. Poziția inițială și marginile decorative din jurul ferestrelor sunt gestionate de managerul de ferestre utilizând următoarele solicitări:

  1. o aplicație poate solicita serverului să nu îndeplinească cererile de mapare (afișare) sub-fereastră ale unei ferestre date și să trimită în schimb un mesaj.
  2. o aplicație poate solicita schimbarea ferestrei părinte.

Managerul de ferestre folosește prima cerere pentru a intercepta orice cerere de mapare a ferestrelor de nivel superior (copii ai ferestrei rădăcină). Ori de câte ori o altă aplicație solicită maparea unei ferestre de nivel superior, serverul nu o execută, ci trimite un eveniment managerului de ferestre în locul său. Majoritatea managerilor de ferestre „adoptă” fereastra: creează o fereastră de nivel superior mai mare (numită fereastră cadru) și încredințează (copilului) fereastra originală ca un copil. Grafic, aceasta corespunde plasării ferestrei originale în interiorul ferestrei cadru. Spațiul ferestrei cadrului care nu este ocupat de fereastra originală este utilizat pentru cadrul decorativ din jurul ferestrei („chenarul” și „bara de titlu”).

Managerul de ferestre gestionează clicurile mouse-ului în fereastra cadru. Aceasta permite, de exemplu, să mutați sau să redimensionați fereastra atunci când un utilizator face clic și trage pe chenar sau bara de titlu.

Managerul de ferestre este, de asemenea, responsabil pentru gestionarea pictogramelor și elementelor vizuale legate de interfața grafică. Pictogramele nu există la nivelul protocolului X Window Core. Acestea sunt implementate de managerul de ferestre. De exemplu. atunci când o fereastră trebuie „minimizată”, managerul de ferestre FVWM șterge fereastra și creează o fereastră pentru numele aplicației minimizate și, eventual, și pentru o imagine de pictogramă. Semnificația și gestionarea pictogramelor este deci complet decisă de managerul de ferestre: unii manageri de ferestre precum wm2 nu implementează deloc pictograme.

Manager sesiune

Pictogramă lupă mgx2.svg Același subiect în detaliu: X session manager .

Aproximativ vorbind, starea unei sesiuni este „starea desktopului” la un moment dat: un set de ferestre cu conținutul lor curent. Mai precis, setul de aplicații care gestionează aceste ferestre și informațiile care permit acestor aplicații să restabilească condițiile ferestrelor lor gestionate, dacă este necesar. Un manager de sesiuni X este un program care salvează și restabilește starea sesiunilor.

Cel mai recunoscut efect al utilizării unui manager de sesiune este capacitatea de a ieși dintr-o sesiune interactivă și apoi de a găsi aceleași ferestre cu aceeași stare la reintrare. Pentru ca acest lucru să funcționeze, managerul de sesiune salvează numele aplicațiilor care rulează la ieșire și le repornește la conectare. Pentru ca starea aplicației să fie bine restaurată (necesară pentru a restabili conținutul ferestrelor), aplicațiile trebuie să poată salva starea de rulare la cererea managerului de sesiune și să o reîncarce atunci când sunt repornite.

Sistemul X Window include un manager de sesiuni implicit numit xsm . S-au dezvoltat alți manageri de sesiune pentru anumite sisteme desktop: de exemplu, ksmserver este managerul de sesiune KDE implicit.

X display manager

Pictogramă lupă mgx2.svg Același subiect în detaliu: X display manager .

Managerul de afișare X este programul care afișează solicitarea de conectare grafică în sistemul X Window. Mai general, un manager de afișare rulează unul sau mai multe servere X pe mașina locală și acceptă conexiunile primite de la servere X care rulează pe computere la distanță. Serverele locale sunt pornite de managerul de afișare, care le conectează pentru a prezenta ecranului de conectare utilizatorului. Serverele de la distanță sunt pornite independent de managerul de afișare și conectate la acesta. În această situație, managerul de afișare funcționează ca un server telnet grafic: un server X se poate conecta la managerul de afișare care inițiază o sesiune; programele acestei sesiuni rulează pe același computer ca managerul de afișare, dar au intrări și ieșiri pe computerul pe care rulează serverul X (care ar putea fi computerul din fața utilizatorului ca unul la distanță).

XDM este gestionarul de bază al afișajului care vine împreună cu sistemul X Window. Alți manageri de afișare includ GDM ( GNOME ), KDM ( KDE ), WDM (care folosește widget-urile WING utilizate în Window Maker ) și intrarea (care folosește arhitectura utilizată în Enlightenment v.17).

Elemente de interfață utilizator

Primele seturi de instrumente widget pentru X au inclus Xav (setul de widgeturi ale proiectului Athena), OLIT ( OPEN LOOK Intrinsics Toolkit), XView , Motif și Tk . OLIT și XView sunt seturile de instrumente de bază pentru vechiul mediu de lucru Sun OpenWindows .

Motif oferă setul de instrumente de bază pentru Common Desktop Environment (CDE), care este un mediu desktop utilizat pe sistemele comerciale Unix precumSolaris , AIX și HP-UX . (Solaris 10 include atât CDE, cât și GNOME, acesta din urmă fiind acum preferat ca mediu de desktop.)

Seturi de instrumente mai moderne sunt Qt (utilizate de KDE ), GTK + (utilizate de GNOME), wxWidgets , FLTK și FOX .

Extensii

Serverul X a fost conceput pentru a fi simplu, dar extensibil. Astfel, multe caracteristici se află acum în extensiile de protocol.

La nivel de protocol. fiecărei extensii i se pot atribui noi tipuri de pachete de solicitări / evenimente / erori. Clienții au acces la funcționalitatea extensiilor prin intermediul bibliotecilor de extensii. Adăugarea de extensii la implementarea curentă a serverului X este notoriu dificilă din cauza lipsei de modularitate în proiectarea serverului. [ Citație necesară ] Un obiectiv pe termen lung al proiectului XCB este de a automatiza generarea ambelor extensii de partea clientului pe partea de server din descrierile protocolului în XML .

Următoarea este o listă parțială a extensiilor care au fost dezvoltate, sortate aproximativ în ordine cronologică după ordinea de introducere începând cu cea mai recentă:

Extensie Descriere și note
Compozit Redarea întregii ierarhii a ferestrelor în afara ecranului, care permite aplicațiilor și managerilor de compoziție să efectueze efecte grafice. Este necesar pentru lucruri precum transparența alfa a ferestrelor și umbrelor.
Deteriora Urmăriți regiunile modificate ale ferestrelor și reduceți la minimum utilizarea lățimii de bandă necesare pentru a menține afișajul actualizat.
XFixes Mai multe modificări de protocol.
Informații vizuale extinse (EVIE) Acesta permite unui client să determine informații despre elementele vizuale X de bază dincolo de ceea ce permite protocolul principal.
Multihead distribuit (DMX) Comunică cu serverul DMX.
XvMC Delegarea compensării mișcării video către GPU-urile care o susțin.
GLX Suport pentru redarea OpenGL în interiorul ferestrelor.
XRender Compozitie (prin accelerare hardware) a imaginilor cu amestecare alfa.
Redimensionare și rotire (RANDR) Schimbare dinamică a dimensiunii, reflexiei, rotației și a ratei de reîmprospătare a unui ecran X.
Xinerama Împărțirea desktopului în mai multe monitoare.
Afișare semnalizare de gestionare a energiei ( DPMS ) Vă permite să controlați modurile de economisire a energiei monitorului.
XPRINT
X extensie tastatură Gestionare avansată a aspectului tastaturii.
DUBLE-BUFFER Oferă animație fără pâlpâire .
RECORD
MIT-SHM Utilizarea memoriei partajate pentru a îmbunătăți performanța.
SYNC Oferă temporizatoare și sincronizează clienții (care, de exemplu, rulează pe diferite gazde și sisteme de operare) din serverul X. Creat pentru a compensa erorile introduse de rețea.
XTEST
XInputExtension Suport pentru dispozitive de intrare, cum ar fi tablete grafice.
CERERI MARI Activați solicitările de până la 262140 octeți în lungime.
XC-MISC
X extensie video Suport pentru suprapunere video hardware și scalare video bazată pe hardware la redare. Numit și Xv (nu trebuie confundat cu programul xv ).
Formă Suport pentru ferestre neregulare și parțial transparente (binare, fără opacitate alfa).
DEC-XTRAP
MIT-SCREEN-SAVER
MIT-SUNDRY-NONSTANDARD Suport compatibil cu versiunile anterioare pentru diverse caracteristici pentru clienții care utilizează implementări timpurii X11. Pentru compatibilitate cu clienții Pre-X11R4.
SECURITATE
TOG-CUP Oferă o politică de utilizare a hărții de culori.
X-Resource
XC-APPGROUP
XFree86-Bigfont
XFree86-DGA Oferă acces la framebufferul liniar direct (acces grafic direct).
XFree86-Diverse
XFree86-VidModeExtension Configurați dinamic modelele și intervalele.

Extensii învechite

Extensie Descriere și note
Lățime de bandă mică X (LBX) Înlocuit cu tunelarea X pe o conexiune securizată de shell, dovedită a fi mai rapidă decât LBX.
PEX „Extensia PHIGS la X”; suport pentru API-ul scenelor grafice 3D PHIGS. GLX cu OpenGL este frecvent utilizat în schimb
Extensia XImage În schimb se folosește MIT-SHM.

Bibliografie

Elemente conexe

linkuri externe