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
Tipo de Biblioteca para trabajar con el protocolo principal del sistema X Window
Desarrollador Jamey Sharp , Josh Triplett , Bart Massey
Escrito en C [1]
Sistema operativo POSIX
Primera edición 2001
ultima versión 1.14 (febrero de 2020)
Licencia MIT
Sitio web xcb.freedesktop.org
 Archivos multimedia en Wikimedia Commons

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

  1. El proyecto de código abierto xcb en Open Hub: página de idiomas - 2006.
  2. KittyLogo Archivado el 2 de agosto de 2010 en Wayback Machine (xcb.freedesktop.org)

Enlaces