stringtranslate.com

Discusión:XCB

XLIB/XCB

La mayoría de los sistemas operativos utilizan Xlib/XCB para su libX11 . Esto ya tiene una marca de cita necesaria, pero creo que es mejor quitarla del artículo. Un vistazo rápido muestra que Ubuntu mantiene XCB en Universe hasta la versión actual (Natty) (lo que probablemente significa que Debian no parece instalarlo por defecto), Fedora no tiene un paquete (?), y Suse podría estar instalándolo por defecto, no puedo decirlo con certeza. Además, el único administrador de ventanas que lo utiliza actualmente (y por lo tanto una razón importante por la que una distribución lo instalaría por defecto) es Awesome_(window_manager) . "Un sistema operativo puede utilizar Xlib/XCB para su libX11" sería una declaración más correcta y compartiría una cita con la siguiente declaración. 64.122.73.112 (discusión) 16:36, 18 de abril de 2011 (UTC) [ responder ]

Revisión por pares de un artículo relacionado

Envié el protocolo básico de X Window para revisión por pares, ya que tengo la intención de presentarlo como candidato para el estado destacado. Agradecería los comentarios ( página de revisión por pares ). - Liberatore(T) 18:07, 21 de febrero de 2006 (UTC) [ responder ]

Pregunta

En el ejemplo, veo una función XCBWaitForEvent. Por lo que entiendo, esta función en realidad espera eventos en la red, y esto es diferente de la función Xlib correspondiente (que parece una cola local). Si esto es correcto, puede ser una buena idea mencionarlo, ya que parece una gran diferencia. - Liberatore(T) 11:51, 4 de mayo de 2006 (UTC) [ responder ]

No, también hay una cola de eventos interna en XCB. Tanto XCB como Xlib se bloquearán si la cola está vacía. -- IanOsgood 19:33, 24 de agosto de 2006 (UTC) [ responder ]
Gracias. Esto podría añadirse al artículo, ahora o en el futuro (Liberatore, 2006). 20:52, 24 de agosto de 2006 (UTC) [ responder ]

Versión mejorada del código de ejemplo de XCB

Es una cuestión de opinión, pero aquí hay una versión más corta que aprovecha las características de C99. Creo que explica la tarea en cuestión con mucha más claridad que el código existente. Si no hay comentarios, cambiaré el artículo para incluir este código.

#incluir <xcb/xcb.h>#incluir <stdio.h>#incluir <stdlib.h>#incluir <errno.h>int principal (int argc, char **argv){/*abrir conexión con el servidor*/xcb_conexión_t *c = xcb_conexión(NULL,NULL);si (xcb_connection_tiene_error(c)){errno = ENOTCONN;perror(*argv);devolver FALLO_DE_SALIDA;}/* obtener la primera pantalla */xcb_screen_t *s = xcb_setup_roots_iterator( xcb_get_setup(c) ).data;xcb_gcontext_t g = xcb_generate_id(c);uint32_t valores[2]= {s->pixel_negro, 0};xcb_create_gc(c, g, s->root, XCB_GC_FOREGROUND | XCB_GC_GRAPHICS_EXPOSURES , valores);/*crear ventana*/xcb_ventana_t w = xcb_generate_id(c);valores[0] = s->pixel_blanco;valores[1] = EXPOSICIÓN_MÁSCARA_EVENTO_XCB | PULSAR_TECLA_MÁSCARA_EVENTO_XCB;xcb_crear_ventana(do,s->profundidad_raíz,yo,s->raíz,10, 10, 100, 100, 1,XCB_CLASE_VENTANA_ENTRADA_SALIDA,s->raíz_visual,PÍXEL TRASERO XCB_CW | MÁSCARA DE EVENTO XCB_CW,valores);/* mapea (muestra) la ventana */ventana_mapa_xcb(c, w);xcb_flush(c);/* bucle de eventos */xcb_evento_genérico_t *e;para(xcb_rectángulo_t r = {20,20,60,60};( e = xcb_espera_evento(c) ) &&XCB_KEY_PRESS != ( e->tipo_de_respuesta & ~0x80 );libre(e)) si (XCB_EXPOSE == (e->tipo_de_respuesta & ~0x80)){/* dibujar o redibujar la ventana */xcb_poly_fill_rectangle(c, w, g, 1, &r);xcb_flush(c);}free(e); // captura la operación free() omitida que ocurre cuando el bucle for sale/*cerrar conexión al servidor*/xcb_desconectar(c);devolver SALIDA_ÉXITO;}

—Comentario anterior sin firmar añadido por 216.115.29.1 ( discusióncontribs ) 20:10, 5 abril 2007

¿Y bien? ¿Debería cambiarse? -- Ysangkok 16:38, 24 de abril de 2007 (UTC) [ responder ]
Como nunca había visto el uso de XCB antes de ver esta página, daría un gran NO a reemplazarlo con lo que ha escrito el editor anónimo.
Creo que la versión anterior es mucho menos legible. El hecho de que C99 permita las cosas que hace este editor anónimo, como declaraciones y código mixtos, o declaraciones dentro de un for(), no significa que estas construcciones deban usarse en cada oportunidad, y ciertamente no hace que el código sea más claro que el colaborador anónimo haya elegido hacerlo. Esta es una función larga y el editor anónimo la ha hecho mucho más difícil de leer.
Además, el bucle de eventos es particularmente atroz. El editor anónimo ha tomado un bucle whilede eventos estándar, intuitivo y conciso , un modismo muy común e intuitivo, y lo ha destrozado hasta convertirlo en este extraño bucle ilegible seguido de una serie de declaraciones terriblemente redundantes y mal sangradas . La línea de código que sigue al bucle también puede provocar la liberación de un puntero nulo (que debería devolver alguna vez ), lo que probablemente provocará un bloqueo de muchas (¿la mayoría?) bibliotecas.switchforifxcb_wait_for_eventNULL
Al ver el artículo, entiendo lo que está pasando. Ver la "limpieza" del editor anónimo es otra historia.
–Andyluciano 19:40, 21 agosto 2007 (UTC) [ responder ]
No , no reemplace el código existente. Además, se pretende que sea funcional y estructuralmente similar al Xlib#Example con fines de comparación. Además, una gran cantidad de software libre se estandariza en C89 (ANSI C) como mínimo común denominador. -- IanOsgood 21:36, 23 de agosto de 2007 (UTC) [ responder ]

¿Qué pasa con el 0x80?

Acabo de leer este artículo y estudié el código de ejemplo con atención. Todo está bien escrito y el ejemplo es muy legible, excepto la línea: switch (e->response_type & ~0x80). ¿No debería haber un #define para el ~0x80 cuyo nombre transmite algún significado concreto a los bits correspondientes de response_type? ¿O se trata de un truco avanzado que no sirve como buen ejemplo didáctico? Gracias. Jlenthe ( discusión ) 18:30, 10 de febrero de 2008 (UTC) [ responder ]

Según esto, el bit más alto indica si el evento es sintético, es decir, que se origina a partir de una solicitud enviada por otro cliente. Según esta explicación, el bit debe eliminarse antes de verificar el tipo de evento. Y no hay una definición para ello... Tizio 14:15, 5 de septiembre de 2008 (UTC) [ responder ]

¿Documentación?

¿Alguien sabe dónde encontrar documentación real sobre la API de XCB? He buscado en el sitio web de XCB, en la Wiki y en Google. XcbApi parece tener solo unas pocas páginas que documentan algunas estructuras y definiciones irrelevantes. —Comentario anterior sin firmar añadido por Vedge ( discusióncontribs ) 03:11, 7 de febrero de 2010 (UTC) [ responder ]

etiqueta de fuentes primarias

Todas las fuentes que se encuentran actualmente sobre este tema citan a los desarrolladores de esta biblioteca (los anuncios de lanzamiento de los desarrolladores tampoco cuentan). No se citan fuentes de terceros, ni hay reseñas bien informadas, etc. TEDickey ( discusión ) 10:21 30 oct 2015 (UTC) [ responder ]

Otros enlaces de idiomas

En "Enlaces a otros idiomas", seguramente solo se debería mencionar xcffib como el enlace a Python. xpyb está obsoleto, ya no se mantiene, solo funciona con Python 2 y ya no se encuentra en los repositorios de la mayoría de las distribuciones. Propongo eliminarlo por completo. ¿Alguna objeción? Longitude2 ( discusión ) 21:41, 17 de enero de 2021 (UTC) [ responder ]

El dialecto XML no es una invención

El tema afirma que "los creadores de XCB han inventado un lenguaje de descripción de interfaz especializado", lo que, dado el ejemplo trivial, es una gran exageración de algún editor al afirmar que un esquema basado en XML es un "lenguaje de descripción de interfaz especializado". TEDickey ( discusión ) 19:07, 22 de marzo de 2024 (UTC) [ responder ]