XCB

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 maj 2015; kontroller kräver 5 redigeringar .
XCB
Sorts Bibliotek för att arbeta med X Window Systems huvudprotokoll
Utvecklaren Jamey Sharp , Josh Triplett , Bart Massey
Skrivet i C [1]
Operativ system POSIX
Första upplagan 2001
senaste versionen 1.14 (februari 2020)
Licens MIT
Hemsida xcb.freedesktop.org
 Mediafiler på Wikimedia Commons

XCB ( X - protokoll C -språk B inding , implementering av X-protokollet för C-språket ) är ett C-programmeringsspråksbibliotek som implementerar klientdelen av X11- protokollet för X Window System . Det är fri programvara (distribuerad under MIT-licensen ). Projektet grundades 2001 av Bart Massey för att ersätta Xlib .

Exempel

/* Enkel XCB-applikation som ritar en ruta i ett fönster */ #include <xcb/xcb.h> #include <stdio.h> #include <stdlib.h> int main ( void ) { xcb_connection_t * c ; xcb_screen_t * s ; xcb_window_t w ; xcb_gcontext_t g ; xcb_generic_event_t * e ; uint32_tmask ; _ uint32_t värden [ 2 ]; int done = 0 ; xcb_rectangle_t r = { 20 , 20 , 60 , 60 }; /* öppna en anslutning till servern */ c = xcb_connect ( NULL , NULL ); if ( xcb_connection_has_error ( c )) { printf ( "Kan inte öppna displayen \n " ); utgång ( 1 ); } /* få den första skärmen */ s = xcb_setup_roots_iterator ( xcb_get_setup ( c ) ). data ; /* skapa svart grafikkontext */ g = xcb_generera_id ( c ); w = s -> rot ; mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES ; värden [ 0 ] = s -> svart_pixel ; värden [ 1 ] = 0 ; xcb_create_gc ( c , g , w , mask , värden ); /* skapa fönster */ w = xcb_generera_id ( c ); mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK ; värden [ 0 ] = s -> vit_pixel ; värden [ 1 ] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_KEY_PRESS ; xcb_create_window ( c , s -> root_depth , w , s -> root , 10 , 10 , 100 , 100 , 1 , XCB_WINDOW_CLASS_INPUT_OUTPUT , s -> root_visual , mask , värden ); /* skyltfönster */ xcb_map_window ( c , w ); xcb_flush ( c ); /* händelseloop */ while ( ! klar && ( e = xcb_wait_for_event ( c ))) { switch ( e -> response_type & ~ 0x80 ) { case XCB_EXPOSE : /* rita eller rita om fönstret */ xcb_poly_fill_rectangle ( c , w , g , 1 , & r ); xcb_flush ( c ); bryta ; fall XCB_KEY_PRESS : /* avsluta vid knapptryckning */ klar = 1 ; bryta ; } fri ( e ); } /* stäng anslutningen till servern */ xcb_disconnect ( c ); returnera 0 ; }

Som du kan se från exemplet är XCB ett bibliotek på något lägre nivå än Xlib .

Logotyp

XCB-logotypen skapades av Gearóid Molloy, författaren till webbserien Neko the Kitty , och donerades till projektet. [2]

Anteckningar

  1. xcb Open Source-projektet på Open Hub: Languages-sidan - 2006.
  2. KittyLogo Arkiverad 2 augusti 2010 på Wayback Machine (xcb.freedesktop.org)
  • Massey, Bart; Sharp, Jamey (2001-09-19). "XCB: An X Protocol C Binding" (PDF) . Proceedings of the XFree86 Technical Conference . Oakland, Kalifornien: USENIX . Hämtad 2008-11-07 . Utfasad parameter används |coauthors=( hjälp )
  • Massey, Bart; Bauer, Robert (2002). "X möter Z: Verifiering av korrekthet i närvaro av POSIX-trådar" . Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference . Monterey, Kalifornien: USENIX . pp. 221-234 . Hämtad 2008-11-07 . Utfasad parameter används |coauthors=( hjälp )
  • Sharp, Jamey; Massey, Bart (2002). "XCL: Ett kompatibilitetslager för XCB" . Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference . Monterey, Kalifornien: USENIX . pp. 71-83 . Hämtad 2008-11-07 . Utfasad parameter används |coauthors=( hjälp )

Länkar