Xlib: Introduction
Généralités :
La Xlib réalise l'interfaçage entre le protocole X et les applications X.
Le protocole X est le seul langage compréhensible par le serveur X.
Exemples de tâches réalisées par des fonctions de la Xlib :
- Communication avec le serveur (socket)
- Gestion des évènements et des erreurs (coupures réseau, etc...)
- Gestion des fenêtres
- Le texte : fontes, tailles, styles, etc...
- Le graphisme : fonctions de dessin 2D
- La couleur
- etc...
Vocabulaire incontournable :
Quand on développe sous Xlib, la documentation fait très souvent référence aux objets suivants :
- Display
- Cette structure est utilisée par (presque) toutes les fonctions de la Xlib, en premier paramètre. Elle contient les informations concernant le serveur et ses différents écrans.
- Drawable
- On appelle Drawable un objet Xlib dans lequel on peut dessiner. En d'autres termes, un Drawable est un identificateur vers une structure qui va contenir des graphiques :
- Window
- Une partie de l'écran.
- Pixmap
- Une zone de stockage de graphiques en mémoire.
- Screen
- Informations concernant un écran du Display. Le plus souvent, un Display possède un seul écran, la Root Window. Mais on peut configurer le serveur pour gérer plusieurs écrans.
- Graphic Context (GC)
- Pour dessiner il est nécessaire de spécifier des choses telles que la largeur du trait, si l'on veut tracer des lignes en trait plein ou en pointillés, la couleur, les patterns pour le remplissage des formes géométriques, etc... Avec la Xlib, on passe ces informations aux fonctions de dessin grace à une structure de type GC. Une telle structure doir être crée et initialisée avant l'appel des fonctions de dessin. Plusieurs structures de ce type peuvent être crées, rendant le dessin dans différents styles simple à réaliser.
- Depth
- Nombre de bits par pixels. Si Depth=8, alors on peut dessiner en 256 couleurs (2 puissance 8)
- Visual
- Cette structure détermine la manière dont un Display gère les sorties sur écran, en particulier la couleur. Elle dépend du nombre de bits par pixels (Depth).
Conventions concernant les fonctions Xlib :
- Toute fonction de la Xlib commence par la lettre X. On ne capitalise que les mots-clé. Exemple: XOpenDisplay(), XCopyColormapAndFree(), etc...
- Toute fonction Xlib commence par l'argument display.
- Valeur de retour le plus souvent = = Success, autre = code d'erreur.
Les fichiers à inclure :
Les programmes utilisant les fonctions de la Xlib doivent inclure :
#include <X11/Xlib.h>
#include <X11/Xutil.h>
Compiler un programme qui utilise lles fonctions de la Xlib :
- Faire l'édition de liens avec l'option -lX11
michel.buffa@essi.fr