XCB
La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la
versión revisada el 19 de mayo de 2015; las comprobaciones requieren
5 ediciones .
XCB ( X protocol C -language Binding, implementación del protocolo X para el lenguaje C ) es una biblioteca de lenguaje de programación C que implementa la parte del cliente del protocolo X11 para el sistema X Window . Es software libre (distribuido bajo la licencia MIT ). El proyecto fue fundado en 2001 por Bart Massey para reemplazar a Xlib .
Ejemplo
/* Aplicación XCB simple dibujando un cuadro en una ventana */
#incluye <xcb/xcb.h>
#incluir <stdio.h>
#incluir <stdlib.h>
int principal ( vacío )
{
xcb_conexión_t * c ;
xcb_pantalla_t * s ;
xcb_window_tw ; _
xcb_gcontext_tg ; _
xcb_generic_event_t * e ;
uint32_tmask ; _
valores uint32_t [ 2 ];
int hecho = 0 ;
xcb_rectangle_t r = { 20 , 20 , 60 , 60 };
/* abrir una conexion al servidor */
c = xcb_connect ( NULO , NULO );
si ( xcb_conexión_tiene_error ( c )) {
printf ( "No se puede abrir la pantalla \n " );
salida ( 1 );
}
/* obtener la primera pantalla */
s = xcb_setup_roots_iterator ( xcb_get_setup ( c ) ). datos ;
/* crea un contexto de gráficos negros */
g = xcb_generate_id ( c );
w = s -> raíz ;
máscara = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES ;
valores [ 0 ] = s -> black_pixel ;
valores [ 1 ] = 0 ;
xcb_create_gc ( c , g , w , máscara , valores );
/* crear ventana */
w = xcb_generate_id ( c );
máscara = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK ;
valores [ 0 ] = s -> white_pixel ;
valores [ 1 ] = XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_KEY_PRESS ;
xcb_create_window ( c , s -> profundidad_raíz , w , s -> raíz ,
10 , 10 , 100 , 100 , 1 ,
XCB_WINDOW_CLASS_INPUT_OUTPUT , s -> root_visual ,
máscara , valores );
/* ventana de visualización */
xcb_mapa_ventana ( c , w );
xcb_flush ( c );
/* bucle de eventos */
while ( ! hecho && ( e = xcb_wait_for_event ( c ))) {
cambiar ( e -> tipo_respuesta & ~ 0x80 ) {
case XCB_EXPOSE : /* dibujar o redibujar la ventana */
xcb_poly_fill_rectangle ( c , w , g , 1 , & r );
xcb_flush ( c );
romper ;
case XCB_KEY_PRESS : /* salir al pulsar una tecla */
hecho = 1 ;
romper ;
}
libre ( e );
}
/* cerrar la conexión con el servidor */
xcb_desconectar ( c );
devolver 0 ;
}
Como puede ver en el ejemplo, XCB es una biblioteca de nivel ligeramente inferior a Xlib .
Logotipo
El logo de XCB fue creado por Gearóid Molloy, el autor del webcomic Neko the Kitty , y donado al proyecto. [2]
Notas
- ↑ El proyecto de código abierto xcb en Open Hub: página de idiomas - 2006.
- ↑ KittyLogo Archivado el 2 de agosto de 2010 en Wayback Machine (xcb.freedesktop.org)
Enlaces
|
---|
Componentes |
| |
---|
bibliotecas |
|
---|
Marcos |
|
---|
Reuniones |
|
---|