Home

Le système graphique X Window

image

Contents

1. Con VI 2 1 6 DV Xlib X Window Le serveur X Composantes pilote d cran pilotes de clavier et de souris pilote de communication en r seau Station ue _ cran 500115 R seau Serveur X m clavier e pilotes Fese Display et crans un display correspond un serveur X ou au canal de communication qui m ne a ce serveur X plusieurs display possibles sur une machine un display peut g rer plusieurs crans adressage nom_host adresse IP n display n cran Ex fermi 0 0 192 70 50 2 0 1 g n ral un seul display n 0 et un cran n 0 1 7 DV Xlib X Window Clients Les clients programmes dont l affichage et les entr es sont g r s par un serveur X peuvent s ex cuter sur la m me machine que le serveur ou sur une machine distante communiquent avec le serveur par le protocole X utilisent la librairie Xlib Communication client serveur client serveur requ tes d affichage messages de taille r duite all gement trafic optimisation au niveau du serveur X par le partage de ressources communes entre clients polices de caract res tables de couleurs etc serveur client v nements clavier souris demande de r affichage expose les clients ne communiquent directement pas entre eux 1 8 DV Xlib X Window Exemple de dialogue X
2. Client 1 Serveur X v nements requ tes Le serveur distribue les entr es clavier souris de l utilisateur converties en v nements aux diff rents clients applications re oit les requ tes d affichage des diff rents clients et les dessine l cran Exemple L utilisateur tape des caract res dans une fen tre le serveur envoie ces caract res au client concern associ cette fen tre C est au client d cider que ces caract res ont un cho ou pas 1 9 JMF DV Xlib X Window Le protocole X d finit le format des messages le type des messages chang s et les r gles de communication ind pendance du syst me d exploitation du mat riel rend transparents les protocoles de communications de bas niveau Caract ristiques asynchrone full duplex pas de confirmation de r ception de messages les requ tes clients ne sont en g n ral pas envoy es directement mais sont stock s temporairement dans un tampon limitant ainsi le nombre d acc s r seau Types de messages Les requ tes sens unique client X gt serveur X ex Cr ation de ressources X Les requ tes avec r ponse client X gt serveur X ex Information sur les ressources X cr es auparavant Les v nements serveur X gt client X ex Pression d un bouton de la souris Les r ponses serveur X gt client X ex taille d une fen tre Les messages d
3. mapp e visible non affichable masqu e partiellement non mapp e visible I 4 DV Xlib X Window Architecture client serveur Comme d habitude un serveur rend un service un client de ce Service est un demandeur de ce service Ici le service est un service d interface homme machine Signification particuli re des termes serveur X programme qui g re l cran d affichage le clavier et la souris client X programme applicatif qui peut s ex cuter sur la m me machine que le serveur X ou ailleurs Remarque en bases de donn es le client est ici sur le poste de travail et le serveur est ailleurs En X Window la localisation est invers e Machine devant laquelle est Xlib X Window Architecture X VVindovv SN MH CELL HAE P1 ANNE CC A TO P rocess i 100000 1 D D TE 2 ______ y gros J N je
4. ecran Creation de la fen tre ma_window XCreateSimpleWindow mon display DefaultRootWindow mon display 200 300 350 250 5 Bordure 5 pixels couleur bord couleur fond fen 1 17 DV Xlib X Window Selection des evenements gerer XSelectinput mon display ma vvindovv ButtonPressMask evenement de bouton de souris Enfin l affichage la fen tre Avant on l avait seulement cr e Lorsque le serveur aura traite XMapVVindovv il retourne un evenement d exposition evenement qui sera exploite par la boucle d evenements XMapWindow mon display ma_window LA BOUCLE D EVENEMENTS fini FAUX while fini XNextEvent mon display amp evenement TraiteEvenement amp evenement Terminaison correcte de monumentale application XDestroyWindow mon display ma window XCloseDisplay mon display void TraiteEvenement pt Evt XEvent pt switch pt Evt type 1 case ButtonPress Quand un bouton est enfonce fini passe vrai ce qui terminera l application OK fini VRAI break switch TraiteEvenement void erreur s t char 5 t printf Erreur s s n s t exit 1 5 Pour compiler un programme Xlib mis dans le fichier LES first c 1X11 o first 1 18 DV Xlib X Window La boucle d v nements v nements interruptions g n r
5. es par certaines manipulations entr es clavier reconfiguration des fen tres appui de bouton souris par l utilisateur les v nements sont rang s dans une file le programme lit les v nements dans cette file XEvent EvtATraiter while 1 XNextEvent display amp EvtATraiter switch EvtATraiter type case Expose Traitement des v nements d exposition break case ButtonPress Traitement des v nements bouton souris break case KeyPress Traitement des v nements clavier break Ces interruptions sont structur es structure XEvent lieu sur l cran o a t mis le clic souris date de d une fen tre Les v nements re us par une fen tre ont t envoy s par le serveur X gt le serveur X a donc fait un travail de tri quel programme doit recevoir quels v nements gt chaque fen tre d un programme X doit informer le serveur quels sont les v nements qui l int ressent XSelectInput display Fen MasqueEvt 1 19 DV Xlib X Window L v nement Expose G n r lorsqu une fen tre est mapp e ou devient visible apr s avoir t cach e par une autre m me en partie C est g n ralement la charge de l application de redessiner sa fen tre pas au serveur X Lorsqu une fen tre en arri re plan passe au premier plan elle doit redessiner certaines de ces parties Le serveur X 1 envoy pour c
6. XCreateGC display RootWindow display screen GCForeground GCLineWidth amp ValeursGC On peut d sormais utiliser ce GC Une variante plus lisible GC XCreateGC display RootWindow display screen 0 NULL XSetForeground display gc BlackPixel display XSetLineWidth display gc 4 On peut d sormais utiliser ce GC La structure XGCValues Les principaux champs 1 22 foreground couleur du trait background couleur de fond font police de caract res line vidth paisseur de trait line style style de trait fill style style de remplissage d une zone function fonction de dessin DV Xlib X Window La Couleur La plupart des crans actuels sont g r s l aide d une table de couleurs colormap look up table Un point l cran pixel d termine sa couleur l aide d un indice dans 1 table de couleurs cet indice dans la table se trouvent les caract ristiques de la couleur quantit de rouge vert bleu On donc 101 100 011 010 001 000 O A Un Table de couleurs 1 Changer le contenu d une entr e signifie que tous les dessins qui l utilisent changent de couleur Certaines applications utilisent leur propre table de couleurs Quand le curseur p n tre dans leur espace gt flash assez d sagr able car toutes les autres couleurs changent 1 23 DV Xlib X W
7. crit le produit Un serveur X peut tre lanc sur l cran windows par startxwin bat REP_INSTAL usr X11R6 bin startxwin bat N cessite d avoir install le projet cygwin APT Unix pour windows X Window et Macintosh Disponible http www apple com downloads macosx unix_ open _source xfree86 html 1 26 DV
8. ela ventuellement plusieurs Expose Event fen tre fen tre fen tre Quand la fen tre E passe premier plan elle re oit des v nements Expose pour chaque zone d intersection fen tre 1 20 DV Xlib X Window Contexte graphique Pour dessiner dans les fen tres la Xlib offre des fonctions graphiques Pour transmettre les param tres graphiques ces fonctions couleur paisseur des traits police style de remplissage des surfaces etc on utilise des trousses de dessin Contexte graphique GC un identificateur de trousse de dessin Avantages on vite d avoir passer un nombre trop important d arguments dans les fonctions graphiques performance r seau la trousse de dessin est cr e et gard e par le serveur et rep r e dans les requ tes du client par son ID le GC Un GC peut tre partag par deux clients distincts on peut cr er plusieurs GC pour un client et indiquer chaque trac quel GC on utilise Cr ation de contexte graphique GC XCreateGC display drawable masque AdrValeursGC AdrValeursGC adresse d une structure qui contient les param tres graphiques masque identifie les param tres utilis s 1 21 DV Xlib X Window Exemple d utilisation GC XGCValues ValeursGC ValeursGC foreground BlackPixel display screen ValeursGC line_ width 4 gc
9. erreurs ex connexion non tablie 1 10 DV Xlib X Window Transmission de messages X protocolaires Application Application zone tampon des requ tes File v nements R ception des File v nements requ tes clients du serveur X 1 11 DV Xlib X Window protocole asynchrone Les requ tes ne sont pas forc ment envoy es imm diatement Serveur X Client X R Requ te de connexion t R ponse de ____ 5 connexion R a Requ te de cr ation de fen tre u Requ te de cr ation de GC De Requ te d affichage de fen tre SI Ev nement de type expose Requ te d affichage de texte BO 1 12 DV Xlib X Window Window Manager chent particulier qui permet de retailler les fen tres r arranger les fen tres sur l cran convertir des fen tres en ic nes faire appara tre la fen tre en premier arri re plan d truire une fen tre Exemple mwm tum En g n ral il habille les fen tres d un cadre Le cadre autour des fen tres n est donc pas mis par les applications n1 par le protocole X mais par le WM Le WM impose l aspect et la mani re de manipuler les fen tres le look and feel Exemple d change X WM retaillage d une fen tre xeyes 1 l utilisateur appuie sur la souris au bord fen tre et d place la souris interruption envoy e au serveur 2 Le serveur re o
10. ib X Window Le syst me graphique X Window JMF DV Xlib X Window Introduction Historique d velopp au MIT en 1984 projet ATHENA d riv du syst me de fen trage W Stanford la version la plus connue version 11 X11 1987 derni re release X11R6 1994 gestion de l affichage en mode graphique fen tres dessins texte images gestion des entr es clavier souris couche au dessus du syst me d exploitation ind pendante du mat riel et du syst me d exploitation utilisation en r seau transparente et optimis e DV Xlib X Window Concepts de base Les fen tres contenu dessin graphique texte images gestion du chevauchement association des entr es clavier souris aux fen tres Le modele client serveur un serveur graphique et plusieurs clients applis Communication bi directionnelle Le fonctionnement en r seau protocole X communication entre les clients et le serveur utilisation des couches r seau de transport ex TCP DECNet Librairies d interface au protocole X la plus connue est Xlib langage permettent l criture d applications X Window 1 3 DV Xlib X Window Les fen tres Caract ristiques Zone rectangulaire compos e de pixels primitives de dessin qui modifient ces pixels O X pe y root Structure arborescente Etat d une fen tre ffichable visible totalement
11. indow Le champ function du GC Le champ function du contexte graphique d termine la mani re de combiner la couleur de dessin avec celle sur laquelle on dessine Entre le pixel dst d j dessin et le pixel qu on veut dessiner dit pixel source src on fait l op ration logique src function dst Remarque pixel indice dans 1 table de couleurs function op ration logique bit par bit Mise jour du champ function XSetFunetion display go fonction Fonction logique D finition GXclear 0 GXand src AND dst GXandReverse src AND NOT dst GXcopy Src GXandInverted NOT src AND dst GXnoop dst GXxor src XOR dst GXor src OR dst GXnor NOT src AND NOT dst GXequiv NOT src XOR dst GXinvert NOT dst GXorReverse src OR NOT dst GXcopyInverted NOT src GXorInverted NOT src OR dst GXnand NOT src OR NOT dst GXset 1 Les fonctions les plus utilis es GXcopy copie le pixel src en ignorant dst GXxor une seconde application efface le premier dessin utile pour les animations 1 24 DV Xlib X Window Le champ function du GC suite Le r sultat des couleur obtenue sera une op ration math matique bit bit Ce n est pas du dessin d art 1 25 DV Xlib X Window Ou trouver X Window 2 Window et windows Une implantation gratuite de X Window et disponible partir de http x cygwin com le projet Cygwin X Un excellent manuel d utilisation et d installation d
12. it cette interruption la transforme en v nement et l envoie au WM 3 Le WM retaille la fen tre r ajuste son contour et envoie des requ tes au serveur pour d autres clients indirectement concern s par ce retaillage masquage ou d masquage de leurs fen tres 4 Le serveur X informe envoie des v nements tous les clients concern s entre autre xeyes 5 xeyes re oit cet v nement et r ajuste son dessin 1 13 DV Xlib X Window Remarques Quand on lance un client sur une machine distante 1 faut avoir indiqu sur quelle machine et vont se faire les entr es sorties En g n ral cela est pr cis par la variable DISPLAY Par exemple lancer sur la machine distante la commande en csh setenv DISPLAY NomMachineLoCALE 0 0 II faut de plus que la machine distante soit autoris e afficher sur la machine locale Ceci est obtenue l aide de la commande xhost lanc e sur la machine locale xhost permet d ajouter ou de retirer des machines autoris es afficher leur sorties sur la machine locale Exemples xhost toutes les machines peuvent afficher xhost seules peuvent afficher les machines autoris es dans etc X lt Nom_ serveur _X gt hosts xhost NomMachine NomMachine ne peut plus afficher xhost NomMachine NomMachine peut afficher Conclusion Sur la machine DISTANTE taper setenv DISPLAY NomMachineLoCALE 0 0 Sur la machine LOCALE taper xhos
13. t 1 14 DV Xlib X Window La pile X Window l ours Xt Athena SUN MID Xtoolkit Xt Xlib I 15 JMF DV Xlib X Window Structure d un programme Xlib 1 16 Inclusion de fichiers h X11 D clarations globales de structure de donn es n cessaires notre application Window Display la fonction main contient une connexion au serveur le num ro de l cran o se font les affichages cr er des fen tres mapping des fen tres s lection des v nements traiter la boucle d v nements lib ration des ressources allou es par le programme DV Xlib X Window Exemple de programme Ce programme cr e une fen tre Quand on sur un bouton de la souris l application se termine Hinclude lt stdio h gt Hinclude lt X11 Xlib h gt define VRAI 1 define FAUX 0 int fini main argc argv int char argv Display mon display Window ma window XEvent evenement int mon ecran unsigned long couleur bord couleur fond fen void void TraiteEvenemenit Les initialisations necessaires if mon display XOpenDisplay NULL NULL erreur XOpenDisplay mon ecran DefaultScreen mon display Valeurs par default des pixels couleur fond fen WhitePixel mon display mon_ecran couleur bord BlackPixel mon display mon

Download Pdf Manuals

image

Related Search

Related Contents

MB 120 D / MB 160 D MB 120 D  Rangemaster MN10101  Goodram P41  Installationsanleitung  USER MANUAL  Troy-Bilt 2600 PSI Pressure Washer User's Manual  Model 99 Cable Gun Lock HOW TO ATTACH AND  Bedienungsanleitung EB-GD70 Digital    "Printers" Common Criteria between Thailand Green Label and  

Copyright © All rights reserved.
Failed to retrieve file