fbpx
Wikipedia

XCB

XCB (X C Binding) es un binding para el lenguaje C de X Window System. Está implementado como software libre y pretende reemplazar la biblioteca Xlib. El proyecto fue iniciado en 2001 por Bart Massey.

XCB
1.8 / January 11, 2012
Información general
Tipo de programa Biblioteca para el Protocolo base de X Window System
Desarrollador Jamey Sharp, Josh Triplett, Bart Massey
Licencia MIT
Información técnica
Programado en C
Versiones
Última versión estable 1.8 ( 11 de enero de 2012 (10 años, 8 meses y 6 días)[1]​)
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

Xlib/XCB provee compatibilidad a nivel de interfaz de aplicación binaria para Xlib y XCB. Xlib/XCB usa la capa de protocolo de Xlib, pero reemplaza la capa de transporte de Xlib por la de XCB, y provee acceso a la conexión XCB para hacer un uso directo de XCB.

Objetivos

Los objetivos principales de XCB son:

  • Reducción del tamaño y la complejidad de la biblioteca;
  • acceso directo para protocolo X11.

Los objetivos secundarios incluyen hacer una interfaz C asíncrona, facilitando la programación multihilo y haciendo más fácil la implementación de extensiones (vía descripciones de protocolo XML).

Las descripciones del protocolo base y de extensión están en XML, con los bindings C creados vía scripts Python. (Versiones previas usaban XSLT y M4.) Un tercer objetivo es replantear esas descripciones del protocolo para la creación de documentación del protocolo, más bindings para otros lenguajes, y server-side stubs.

Massey y otros han trabajado para probar porciones clave de XCB como formalmente correctas, usando notación Z.[2]​ (Se sabe de hace tiempo que Xlib contiene errores.[3]​)

Ejemplo

/* Simple XCB application drawing a box in a window */   #include <xcb/xcb.h> #include <stdio.h> #include <stdlib.h> 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 };    /* open connection with the server */  c = xcb_connect(NULL,NULL);  if (xcb_connection_has_error(c)) {  printf("Cannot open display\n");  exit(1);  }  /* get the first screen */  s = xcb_setup_roots_iterator( xcb_get_setup(c) ).data;  /* create black graphics context */  g = xcb_generate_id(c);  w = s->root;  mask = XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES;  values[0] = s->black_pixel;  values[1] = 0;  xcb_create_gc(c, g, w, mask, values);    /* create window */  w = xcb_generate_id(c);  mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK;  values[0] = s->white_pixel;  values[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, values);    /* map (show) the window */  xcb_map_window(c, w);    xcb_flush(c);    /* event loop */  while (!done && (e = xcb_wait_for_event(c))) {  switch (e->response_type & ~0x80) {  case XCB_EXPOSE: /* draw or redraw the window */  xcb_poly_fill_rectangle(c, w, g, 1, &r);  xcb_flush(c);  break;  case XCB_KEY_PRESS: /* exit on key press */  done = 1;  break;  }  free(e);  }  /* close connection to server */  xcb_disconnect(c);  return 0; } 

XCB tiene una API comparable a la de Xlib, pero de ligeramente más bajo nivel, como se puede ver en este ejemplo.

Logotipo

El logotipo de XCB fue creado por Gearóid Molloy, autor del Webcómic Neko the Kitty, y lo donó al proyecto.[4]

Referencias

  1. Plantilla:Cita de lista correo
  2. Massey and Bauer, 2002.
  3. Sharp and Massey, 2002, §2.4. "Xlib fue diseñada para dar soporte a aplicaciones con hilos, pero ese soporte no es usable, hay condiciones de carrera conocidas que no pueden ser eliminadas sin cambiar la interfaz Xlib."
  4. KittyLogo (xcb.freedesktop.org)

Bibliografía

  • Massey, Bart; Sharp, Jamey (19 de septiembre de 2001). «XCB: An X Protocol C Binding». Proceedings of the XFree86 Technical Conference. Oakland, California: USENIX. Consultado el 7 de noviembre de 2008. 
  • Massey, Bart; Bauer, Robert (2002). «X Meets Z: Verifying Correctness In The Presence Of POSIX Threads». Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference. Monterey, California: USENIX. pp. 221-234. Consultado el 7 de noviembre de 2008. 
  • Sharp, Jamey; Massey, Bart (2002). «XCL: A Compatibility Layer For XCB». Proceedings of the FREENIX Track: 2002 USENIX Annual Technical Conference. Monterey, California: USENIX. pp. 71-83. Consultado el 7 de noviembre de 2008. 

Enlaces externos

  •   Datos: Q1557445
  •   Multimedia: XCB / Q1557445

binding, binding, para, lenguaje, window, system, está, implementado, como, software, libre, pretende, reemplazar, biblioteca, xlib, proyecto, iniciado, 2001, bart, massey, january, 2012información, generaltipo, programabiblioteca, para, protocolo, base, windo. XCB X C Binding es un binding para el lenguaje C de X Window System Esta implementado como software libre y pretende reemplazar la biblioteca Xlib El proyecto fue iniciado en 2001 por Bart Massey XCB1 8 January 11 2012Informacion generalTipo de programaBiblioteca para el Protocolo base de X Window SystemDesarrolladorJamey Sharp Josh Triplett Bart MasseyLicenciaMITInformacion tecnicaProgramado enCVersionesUltima version estable1 8 11 de enero de 2012 10 anos 8 meses y 6 dias 1 EnlacesSitio web oficial Repositorio de codigo Seguimiento de errores editar datos en Wikidata Xlib XCB provee compatibilidad a nivel de interfaz de aplicacion binaria para Xlib y XCB Xlib XCB usa la capa de protocolo de Xlib pero reemplaza la capa de transporte de Xlib por la de XCB y provee acceso a la conexion XCB para hacer un uso directo de XCB Indice 1 Objetivos 2 Ejemplo 3 Logotipo 4 Referencias 5 Bibliografia 6 Enlaces externosObjetivos EditarLos objetivos principales de XCB son Reduccion del tamano y la complejidad de la biblioteca acceso directo para protocolo X11 Los objetivos secundarios incluyen hacer una interfaz C asincrona facilitando la programacion multihilo y haciendo mas facil la implementacion de extensiones via descripciones de protocolo XML Las descripciones del protocolo base y de extension estan en XML con los bindings C creados via scripts Python Versiones previas usaban XSLT y M4 Un tercer objetivo es replantear esas descripciones del protocolo para la creacion de documentacion del protocolo mas bindings para otros lenguajes y server side stubs Massey y otros han trabajado para probar porciones clave de XCB como formalmente correctas usando notacion Z 2 Se sabe de hace tiempo que Xlib contiene errores 3 Ejemplo Editar Simple XCB application drawing a box in a window 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 open connection with the server c xcb connect NULL NULL if xcb connection has error c printf Cannot open display n exit 1 get the first screen s xcb setup roots iterator xcb get setup c data create black graphics context 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 create window 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 map show the window xcb map window c w xcb flush c event loop 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 exit on key press done 1 break free e close connection to server xcb disconnect c return 0 XCB tiene una API comparable a la de Xlib pero de ligeramente mas bajo nivel como se puede ver en este ejemplo Logotipo EditarEl logotipo de XCB fue creado por Gearoid Molloy autor del Webcomic Neko the Kitty y lo dono al proyecto 4 Referencias Editar Plantilla Cita de lista correo Massey and Bauer 2002 Sharp and Massey 2002 2 4 Xlib fue disenada para dar soporte a aplicaciones con hilos pero ese soporte no es usable hay condiciones de carrera conocidas que no pueden ser eliminadas sin cambiar la interfaz Xlib KittyLogo xcb freedesktop org Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 8 de julio de 2014 Bibliografia EditarMassey Bart Sharp Jamey 19 de septiembre de 2001 XCB An X Protocol C Binding Proceedings of the XFree86 Technical Conference Oakland California USENIX Consultado el 7 de noviembre de 2008 La referencia utiliza el parametro obsoleto coautores ayuda Massey Bart Bauer Robert 2002 X Meets Z Verifying Correctness In The Presence Of POSIX Threads Proceedings of the FREENIX Track 2002 USENIX Annual Technical Conference Monterey California USENIX pp 221 234 Consultado el 7 de noviembre de 2008 La referencia utiliza el parametro obsoleto coautores ayuda Sharp Jamey Massey Bart 2002 XCL A Compatibility Layer For XCB Proceedings of the FREENIX Track 2002 USENIX Annual Technical Conference Monterey California USENIX pp 71 83 Consultado el 7 de noviembre de 2008 La referencia utiliza el parametro obsoleto coautores ayuda Enlaces externos EditarXCB freedesktop org XCB API reference Further publications Datos Q1557445 Multimedia XCB Q1557445 Obtenido de https es wikipedia org w index php title XCB amp oldid 126356432, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos