Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. XCB — Wikipédia
XCB — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
XCB
Description de l'image Xcb logo.svg.

Informations
Développé par Jamey Sharp, Josh Triplett, Bart Massey
Dernière version 1.17.0 (15 avril 2024)[1]Voir et modifier les données sur Wikidata
Dépôt gitlab.freedesktop.org/xorg/lib/libxcbVoir et modifier les données sur Wikidata
Écrit en CVoir et modifier les données sur Wikidata
Système d'exploitation Le système d'exploitation GNU-Linux et BSDVoir et modifier les données sur Wikidata
Environnement POSIX
Type X Window core protocol development library
Licence MIT
Site web http://xcb.freedesktop.org/

modifier - modifier le code - voir Wikidata (aide)

Xlib/XCB, le serveur d'affichage et le gestionnaire de fenêtre

XCB (pour X C Binding) est une bibliothèque logicielle en langage C offrant une implémentation du protocole X Window System. Son objectif est de remplacer la Xlib, jugée vieillissante et inadaptée à certains usages. Le projet a démarré en 2001, sous l'impulsion de Bart Massey.

XCL (pour Xlib 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èque XLib/XCB fournit une ABI compatible aussi bien avec la Xlib qu'avec XCB, afin d'adoucir les difficultés de portage 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ètement asynchrone, de faciliter l'amélioration du multi-threading et de rendre les extensions plus simples à implémenter (par une description des protocoles en XML).

Bart Massey a passé du temps afin de prouver que XCB est formellement correct en utilisant la notation 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>

int main()
{
    xcb_connection_t    *c;
    xcb_screen_t        *s;
    xcb_drawable_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 };

    /* 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) {
            case XCB_EXPOSE:     /* dessiner ou redessiner la fenêtre */
                xcb_poly_fill_rectangle(c, w, g,  1, &r);
                xcb_flush(c);
                break;
            case XCB_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);
 
    return 0;
}

Cet exemple illustre la similarité entre XCB et la Xlib. 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]
  • X Window System
  • Xlib

Références

[modifier | modifier le code]
  • (en) XCB: An X Protocol C Binding (PDF) (Bart Massey et Jamey Sharp, 19 septembre 2001, présenté à la XFree86 Technical Conference en 2001) ;
  • (en) XCL: An Xlib Compatibility Layer For XCB (Jamey Sharp et Bart Massey, 15 avril 2002, présenté à USENIX 2002) ;
  • (en) X Meets Z: Verifying Correctness In The Presence Of POSIX Threads (Bart Massey et Robert Bauer, 15 avril 2002, présenté à USENIX 2002).

Liens externes

[modifier | modifier le code]
  • (en) Wiki XCB (freedesktop.org) ;
  • (en) Manuel de référence de l'API XCB ;
  • (en) Autres publications.
v · m
Projets de Freedesktop.org
Composants
  • Avahi
  • Compiz
  • ConsoleKit
  • Create Project
  • D-Bus
  • DeviceKit
  • DRI
  • Flatpak
  • FriBidi
  • HAL
  • nouveau
  • PackageKit
  • PipeWire
  • Plymouth
  • Portland Project
  • PulseAudio
  • systemd
  • GTK-Qt
  • Wayland
  • X.Org
Bibliothèques
  • Beignet
  • Cairo
  • Fontconfig
  • GStreamer
  • Mesa 3D
  • Pango
  • Poppler
  • Swfdec
  • XCB
  • Xft
Frameworks
  • Galago
  • GeoClue
  • Telepathy
v · m
X Window System
Architecture
  • Protocole X
  • Xlib
  • XCB
  • Gestionnaire de fenêtres
  • X display manager
  • Intrinsics
  • Noms de couleur X11
  • Wayland
Extensions
  • AIGLX
  • GLX
  • X keyboard extension
  • XRender
  • MPX
  • DPS
Implémentations
Serveur d'affichage
  • Cygwin/X
  • Apple X11
  • X.Org
  • XFree86
  • Xming
  • Xgl
  • VcXsrv
Clients
  • Xlib
  • XCB
Standards freedesktop.org
Applications
  • xedit
  • xterm
  • xeyes
  • icône décorative Portail des logiciels libres
  1. ↑ « libxcb-1.17.0 »
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=XCB&oldid=202105935 ».
Catégories :
  • Logiciel écrit en C
  • Bibliothèque logicielle
  • X Window System
  • Logiciel libre sous licence MIT
Catégories cachées :
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Article utilisant une Infobox
  • Article à référence souhaitée
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id