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 ( 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
- ↑ xcb Open Source-projektet på Open Hub: Languages-sidan - 2006.
- ↑ KittyLogo Arkiverad 2 augusti 2010 på Wayback Machine (xcb.freedesktop.org)
Länkar
|
---|
Komponenter |
| |
---|
Bibliotek |
|
---|
Ramar |
|
---|
Möten |
|
---|