Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

XCB

Un article de Wikipédia, l'encyclopédie libre.
XCB
Description de l'image Xcb logo.svg.

Informations
Développé parJamey Sharp,Josh Triplett,Bart Massey
Dernière version1.17.0 ()[1]Voir et modifier les données sur Wikidata
Dépôtgitlab.freedesktop.org/xorg/lib/libxcbVoir et modifier les données sur Wikidata
Écrit enCVoir et modifier les données sur Wikidata
Système d'exploitationGNU/Linux etBSDVoir et modifier les données sur Wikidata
EnvironnementPOSIX
TypeX Window core protocol development library
LicenceMIT
Site webhttp://xcb.freedesktop.org/

modifier -modifier le code -voir Wikidata(aide)

Xlib/XCB, leserveur d'affichage et legestionnaire de fenêtre

XCB (pourX C Binding) est unebibliothèque logicielle enlangage C offrant une implémentation du protocoleX Window System. Son objectif est de remplacer laXlib, jugée vieillissante et inadaptée à certains usages. Le projet a démarré en2001, sous l'impulsion deBart Massey.

XCL (pourXlib Compatibility Layer, « couche de compatibilité Xlib ») est une implémentation de l'API Xlib basée sur XCB, afin de fournir une couche de compatibilité aux applications basées sur la Xlib. Produite plus tard, la bibliothèqueXLib/XCB fournit uneABI compatible aussi bien avec la Xlib qu'avec XCB, afin d'adoucir les difficultés deportage d'une bibliothèque à l'autre.

Objectifs de XCB

[modifier |modifier le code]

Les principaux objectifs de XCB sont :

  • La réduction de la taille et de la complexité de la bibliothèque ;
  • fournir un accès direct au protocole X11.

Les objectifs secondaires sont notamment de mettre en œuvre une interface en C complètementasynchrone, de faciliter l'amélioration dumulti-threading et de rendre les extensions plus simples à implémenter (par une description des protocoles enXML).

Bart Massey a passé du temps afin de prouver que XCB estformellement correct en utilisant lanotation Z (la Xlib est connue pour contenir des erreurs).

Exemple

[modifier |modifier le code]
/* * Exemple simple avec XCB dessinant un carré dans une fenêtre */#include<xcb/xcb.h>#include<stdio.h>#include<stdlib.h>intmain(){xcb_connection_t*c;xcb_screen_t*s;xcb_drawable_tw;xcb_gcontext_tg;xcb_generic_event_t*e;uint32_tmask;uint32_tvalues[2];intdone=0;xcb_rectangle_tr={20,20,60,60};/* ouvre la connexion avec le serveur */c=xcb_connect(NULL,NULL);if(xcb_connection_has_error(c)){fprintf(stderr,"Cannot open display\n");exit(1);}/* récupérer le premier écran */s=xcb_setup_roots_iterator(xcb_get_setup(c)).data;/* créer un contexte graphique pour le noir */g=xcb_generate_id(c);w=s->root;mask=XCB_GC_FOREGROUND|XCB_GRAPHICS_EXPOSURE;values[0]=s->black_pixel;values[1]=0;xcb_create_gc(c,g,w,mask,values);/* créer une fenêtre */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);/* afficher la fenêtre sur l'écran sélectionné */xcb_map_window(c,w);xcb_flush(c);/* boucle événementielle */while(!done&&(e=xcb_wait_for_event(c))){switch(e->response_type&~0x80){caseXCB_EXPOSE:/* dessiner ou redessiner la fenêtre */xcb_poly_fill_rectangle(c,w,g,1,&r);xcb_flush(c);break;caseXCB_KEY_PRESS:/* stopper la boucle lorsqu'une touche est enfoncée */done=1;break;}free(e);}/* fermer la connexion avec le serveur */xcb_disconnect(c);return0;}

Cet exemple illustre la similarité entre XCB et laXlib.Certains programmeurs considèrent toutefois que XCB est légèrement plus bas niveau que la Xlib à l'heure actuelle.[réf. souhaitée]

Voir aussi

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]

Références

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]
v ·m
Projets deFreedesktop.org
Composants
Bibliothèques
Frameworks
v ·m
Architecture
Extensions
Implémentations
Serveur d'affichage
Clients
Standardsfreedesktop.org
Applications
  1. « libxcb-1.17.0 »
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=XCB&oldid=202105935 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp