(Courriels de diversion: <combleront@decroissions-teleguiderez.com> <bâilles@rêvassees-colonialistes.com> <cumulables@digeree-discernez.com> <voutes@primions-ebranlais.com> <assainissions@prefacant-saturer.com> <fixatif@epanouissez-giflent.com> <enlisons@popularisera-penaliserais.com> <appellerait@redorions-n'.com> <pardonnerez@emmenagez-conforterez.com> <blondes@infecterions-telescripteur.com> )
Le 27 Nov, dominique.sommavilla écrit : > Il semblerait que conio.h et graph.h soient inconnues du compilateur C/C++ > (gcc/g++), et donc toutes les fonctions graphiques avec, (clearscreen et > autres, notamment fonctions d'accès aux pixels...). Ces fonctions sont liées au monde DOS. Il faut que tu précises ce que tu veux faire côté UNIX pour avoir une réponse plus précise. Ceci dit, il me semble avoir lu qu'il existe un portage de conio sur Linux (je ne sais pas où : il te faudra chercher). > Ceci me paraît assez incroyable, ces bibliothèques auraient-elles changé de > nom ? > ou y-a-t-il une manip à faire avec X11 ou une option à cocher lors de la > sélection des paquetages à l'install ? Il faut savoir ce que tu veux faire. Dans le monde DOS/Microsoft Windows, il est acquis (jusqu'à très récemment) que la machine a un accès priviligié et direct aux périphériques d'interface utilisateur, en particulier, l'écran, la souris et le clavier. Ce présupposé n'a jamais (enfin presque) existé dans le monde UNIX. D'où des mécanismes assez différents : en particulier, les mécanismes d'interface utilisateur du monde UNIX partent du principe que l'écran, le clavier et la souris sont séparés du CPU par une liaison possiblement lente, et que les capacités de ces terminaux diffèrent. Si tu veux faire une interface textuelle (en mode terminal, par exemple une console VT100), il te faut utiliser curses (ou ncurses, ou slang). Le principe est de faire fonctionner l'interface utilisateur avec des dessins à base de lettres (largeur fixe, donc ; même si tu peux éventuellement utiliser des caractères étendus pour faire des traits horizontaux et verticaux, des croisements, des clignotements ou des effets de variation d'intensité lumineuse). Pour cela, la bibliothèque utilisée maintient en mémoire centrale une image de ce qui doit apparaître à l'écran, et le transmet sur commande (prévois une commande de rafraîchissement, traditionnellement Control-L ou Control-R). Dans ce cadre, demander la couleur d'un pixel n'a pas de sens, puisque tu ne manipules pas de pixels. Et, quoique tu demandes, tu n'auras accès qu'à la représentation en mémoire centrale de ce qui doit être dessiné. Si tu veux faire du graphique non textuel, tu as deux voies : vgalib ou X11. Le premier est spécifique PC (Linux ?) et suppose que les périphériques sont déirectement accessibles : le fonctionnement sera donc proche de ce que tu pourrais faire avec DOS ; mais en même temps en aura les limites, en termes de portabilité. Avec X11, tu as un système d'interface utilisateur réseau : le fait que chez toi, l'écran et le clavier sont branchés sur l'arrière du CPU n'est plus important : cela fonctionnera aussi bien (quoique plus lentement :-) si l'écran et le clavier sont derrière ma machine à moi, malgré les ~5km qui nous séparent à vol d'oiseau. Évidemment cela impose des contraintes : tu ne peux pas accéder aux pixels de mon écran, car cela prendrait trop de temps. Donc le principe est le même que pour l'interface textuelle (puisque les contraintes sont les mêmes) : si tu veux savoir quelle est la couleur d'un pixel sur mon écran, il faut te construire une représentation en mémoire centrale de ce que tu veux afficher sur celui-ci. Mais tout n'est pas encore dit. X11 est juste le protocole réseau d'affichage et d'acquisition du clavier et de la souris. Tu peux contrôler ce qui se passe, mais c'est franchement primitif (et compliqué, au vu de la diversité de périphériques existants). Pour faciliter les choses, il a été créé des couches par dessus X11, qui offrent la possibilité de faire des interactions utilisateur standardisées : ce sont les boîtes à outils (« toolkits ») et les ensembles d'élements d'interface utilisateur qui vont avec (boutons, menus, etc). Mais il est important de comprendre que ces choses sont gérées du côté CPU, et non du côté du serveur (écran + clavier + souris). Ces ensembles sont nommés Athéna (libre ; toolkit Xt ; de base avec X11), Motif (commercial <URL:http://www.opengroup.org/>, toolkit Xt ; le plus utilisé dans les UNIX commerciaux), Qt (statut inconnu de moi ; à la base de KDE), GTk (statut libre ; à la base de GNOME), Tk (statut libre <URL://www.scriptics.com>; portable vers Microsoft Windows et MacOs ; extrèmement puissant et simple d'emploi), et une foultitude d'autres. -- Marc Thirion | Toulouse, France Un Travail pour Chacun : http://www.multimania.com/untravailchacun/ Marc.Thirion@ISOscope.com : http://www.ISOscope.com/Pérennité des logiciels et des systèmes --------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@savage.iut-blagnac.fr>Le CULTe sur le web: <URL:http://www.CULTe.org/>