www.wikidata.de-de.nina.az
XCB X C Binding ist eine Programmbibliothek die auf einfache und direkte Weise Transaktionen des X Window Protokolls uber Funktionsaufrufe in der Programmiersprache C zur Verfugung stellt 2 Damit versucht sie die bisherige Xlib durch eine leichtgewichtigere Bibliothek zu ersetzen XCBBasisdatenEntwickler Jamey Sharp Josh Triplett Bart MasseyAktuelle Version 1 13 5 Mai 2018 1 Betriebssystem POSIXProgrammiersprache CKategorie X Window Kernprotokoll EntwicklerbibliothekLizenz MITdeutschsprachig neinxcb freedesktop orgMittlerweile ist mit Xlib XCB eine Xlib erhaltlich deren Transportschicht durch XCB ersetzt wurde Durch die mit der herkommlichen Xlib binar kompatible Schnittstelle kann es von bestehenden Programmen anstelle der herkommlichen Xlib verwendet werden Inhaltsverzeichnis 1 Ubersicht 1 1 Xlib Kompatibilitat 2 Ziele 3 Beispiel 4 Weblinks 5 EinzelnachweiseUbersicht BearbeitenXCB wurde als kleinerer modernisierter Ersatz fur Xlib konzipiert fruher die primare C Bibliothek fur die Kommunikation mit dem X Window System zeitgleich mit einer umfassenderen Uberarbeitung der X Implementierung die in den fruhen 2000er Jahren stattfand 3 Die Hauptziele von XCB sind eine Reduktion der Grosse und Komplexitat der Bibliothek erzielen einen direkten Zugriff auf das X11 Protokoll zu bietenDie erforderliche Grossenreduzierung wird in erster Linie dadurch erreicht dass der Umfang von XCB auf die Handhabung des X Protokolls beschrankt wird und Xlib Funktionen wie die umfangreiche Dienstprogramm Bibliothek weggelassen werden die bei Anwendungen allerdings auch weniger genutzt wurde Sekundare Ziele sind unter anderem die C Schnittstelle asynchron zu machen ein besseres Multithreading zu ermoglichen und Erweiterungen uber XML Protokollbeschreibungen einfacher zu implementieren Die Beschreibungen der Kern und Erweiterungsprotokolle sind in XML wobei ein in Python geschriebenes Programm die C Bindings erstellt Ein weiteres Ziel ist es mit Hilfe der Protokollbeschreibungen eine Protokolldokumentation weitere Sprachbindungen und serverseitige Stubs erstellen zu konnen Xlib Kompatibilitat Bearbeiten Xlib XCB bietet Kompatibilitat mit der binaren Anwendungsschnittstelle mit Xlib und XCB und bietet einen inkrementellen Portierungspfad Xlib XCB verwendet die Protokollschicht von Xlib ersetzt aber die Xlib Transportschicht durch XCB und bietet Zugriff auf die zugrundeliegende XCB Verbindung zur direkten Verwendung von XCB Xlib XCB ermoglicht es einer Anwendung eine einzige Verbindung zum X Anzeigeserver zu offnen und sowohl XCB als auch Xlib zu verwenden moglicherweise durch eine Mischung von Bibliotheken die fur die eine oder andere Anwendung entwickelt wurden 4 5 Ziele BearbeitenXCB strebt folgende Ziele an kleiner und weniger komplex direkter Zugriff auf das X11 Protokoll asynchron um nebenlaufige Programme besser zu unterstutzen leicht zu erweiternBeispiel BearbeitenWahrend in Xlib bzw in Xlib XCB die Ereignisschleife immer noch in Xlib Funktionsaufrufen gemacht wird sieht man hier ein Programmstuck ohne Xlib Aufrufe Die Aufrufe sind etwas systemnaher als man es von Xlib gewohnt ist einfache XCB Applikation die ein Rechteck in ein Fenster zeichnet Kompilierbar beispielsweise mit gcc o xcbtest xcbtest c lxcb include lt xcb xcb h gt include lt stdio h gt include lt stdlib h gt int main xcb connection t c xcb screen t s xcb window t w xcb gcontext t g xcb generic event t e uint32 t mask uint32 t values 2 int done 0 xcb rectangle t r 20 20 60 60 Verbindung zum X Server offnen if c xcb connect NULL NULL NULL printf Cannot open display n exit 1 get the first screen s xcb setup roots iterator xcb get setup c data schwarzen Grafikkontext erzeugen g xcb generate id c w s gt root mask XCB GC FOREGROUND XCB GC GRAPHICS EXPOSURES values 0 s gt black pixel values 1 0 xcb create gc c g w mask values Fenster erzeugen w xcb generate id c mask XCB CW BACK PIXEL XCB CW EVENT MASK values 0 s gt white pixel values 1 XCB EVENT MASK EXPOSURE XCB EVENT MASK KEY PRESS xcb create window c s gt root depth w s gt root 10 10 100 100 1 XCB WINDOW CLASS INPUT OUTPUT s gt root visual mask values Anzeigen einblenden map des Fensters xcb map window c w xcb flush c event loop Ereignisschleife while done amp amp e xcb wait for event c switch e gt response type amp 0x80 case XCB EXPOSE draw or redraw the window xcb poly fill rectangle c w g 1 amp r xcb flush c break case XCB KEY PRESS beenden wenn eine Taste gedruckt wird done 1 break free e Verbindung zum X Server trennen xcb disconnect c return 0 Weblinks Bearbeitenxcb freedesktop org Wiki XCB API Referenz englisch Weitere Publikationen englisch Basic Graphics Programming With the XCB Library Tutorial englisch Einzelnachweise Bearbeiten https lists x org archives xorg announce 2018 March 002851 html Bart Massey J amey Sharp XCB An X Protocol C Binding PDF 53 kB 19 September 2001 englisch The Re Architecture of the X Window System 2003 abgerufen am 27 Mai 2019 englisch Xlib XCB Xlib with XCB transport Abgerufen am 27 Mai 2019 englisch libx11 with Xlib XCB now in experimental please test with your packages Abgerufen am 27 Mai 2019 englisch Abgerufen von https de wikipedia org w index php title XCB amp oldid 191696669