Bonjour à tous,
Actuellement occupé au portage d'une appli graphique en C / Motif sous HP-UX vers C / Lesstif sous FC6, je rencontre un souci majeur dans la gestion des colormaps.
Tout d'abord, ma configuration :
J'utilise
FC6 avec le
kernel 2.6.18-1.2798.fc6 sur un
PC DELL Optiflex GX150 (Le noyau kernel-2.6.22.14-72.fc6 ne marche pas sur ce PC : après avoir tenté une mise à jour lors de l'installation de FC6, j'ai dû revenir en arrière car ça ne fonctionnait plus du tout)
J'ai installé IceWM et MWM afin d'alléger l'ensemble car ce PC n'est pas un foudre de guerre. De plus, j'essaie d'être aussi proche que possible de l'environnement graphique original de Motif.
Les packages Lesstif installés sont :
Installed Packages
Name : lesstif
Arch : i386
Version: 0.95.0
Release: 20.fc6
Size : 1.8 M
Repo : installed
Summary: OSF/Motif(R) library clone
Name : lesstif-devel
Arch : i386
Version: 0.95.0
Release: 20.fc6
Size : 1.6 M
Repo : installed
Summary: Header files for LessTif/Motif development
lesstif.i386 0.95.0-20.fc6 installed
lesstif-clients.i386 0.95.0-20.fc6 installed
lesstif-devel.i386 0.95.0-20.fc6 installed
lesstif-mwm.i386 0.95.0-20.fc6 installed
Les packages X11 installées sont :
dbus-x11.i386 1.0.1-12.fc6 installed
libX11.i386 1.0.3-7.fc6 installed
libX11-devel.i386 1.0.3-7.fc6 installed
vim-X11.i386 2:7.0.235-1.fc6 installed
xorg-x11-apps.i386 7.1-3.fc6 installed
xorg-x11-docs.noarch 1.2-4.fc6 installed
xorg-x11-drivers.i386 7.1-3 installed
xorg-x11-drv-acecad.i386 1.1.0-2.1 installed
xorg-x11-drv-aiptek.i386 1.0.1-2 installed
xorg-x11-drv-apm.i386 1.1.1-2.1 installed
xorg-x11-drv-ark.i386 0.6.0-2.1 installed
xorg-x11-drv-ast.i386 0.81.0-3 installed
xorg-x11-drv-ati.i386 6.6.3-1.fc6 installed
xorg-x11-drv-calcomp.i386 1.1.0-1.1 installed
xorg-x11-drv-chips.i386 1.1.1-2.1 installed
xorg-x11-drv-cirrus.i386 1.1.0-2.fc6 installed
xorg-x11-drv-citron.i386 2.2.0-1.1 installed
xorg-x11-drv-cyrix.i386 1.1.0-4 installed
xorg-x11-drv-digitaledge.i386 1.1.0-1.1 installed
xorg-x11-drv-dmc.i386 1.1.0-2 installed
xorg-x11-drv-dummy.i386 0.2.0-2.1 installed
xorg-x11-drv-dynapro.i386 1.1.0-2 installed
xorg-x11-drv-elo2300.i386 1.1.0-1.1 installed
xorg-x11-drv-elographics.i386 1.1.0-1.1 installed
xorg-x11-drv-evdev.i386 1.1.2-2.1 installed
xorg-x11-drv-fbdev.i386 0.3.0-2 installed
xorg-x11-drv-fpit.i386 1.1.0-1.1 installed
xorg-x11-drv-glint.i386 1.1.1-4.1 installed
xorg-x11-drv-hyperpen.i386 1.1.0-2 installed
xorg-x11-drv-i128.i386 1.2.0-4 installed
xorg-x11-drv-i740.i386 1.1.0-2.1 installed
xorg-x11-drv-i810.i386 1.6.5-10.fc6 installed
xorg-x11-drv-jamstudio.i386 1.1.0-1.1 installed
xorg-x11-drv-joystick.i386 1.1.0-1.1 installed
xorg-x11-drv-keyboard.i386 1.1.0-2.1 installed
xorg-x11-drv-magellan.i386 1.1.0-1.1 installed
xorg-x11-drv-magictouch.i386 1.0.0.5-2.1 installed
xorg-x11-drv-mga.i386 1.4.5-2.fc6 installed
xorg-x11-drv-microtouch.i386 1.1.0-1.1 installed
xorg-x11-drv-mouse.i386 1.2.1-1.fc6 installed
xorg-x11-drv-mutouch.i386 1.1.0-2 installed
xorg-x11-drv-neomagic.i386 1.1.1-2.1 installed
xorg-x11-drv-nsc.i386 2.8.1-2.1 installed
xorg-x11-drv-nv.i386 1.2.0-4.fc6 installed
xorg-x11-drv-palmax.i386 1.1.0-1.1 installed
xorg-x11-drv-penmount.i386 1.1.0-2.1 installed
xorg-x11-drv-rendition.i386 4.1.0-3.1 installed
xorg-x11-drv-s3.i386 0.5.0-1.fc6 installed
xorg-x11-drv-s3virge.i386 1.9.1-2.1 installed
xorg-x11-drv-savage.i386 2.1.2-3.fc6 installed
xorg-x11-drv-siliconmotion.i386 1.4.1-2.1 installed
xorg-x11-drv-sis.i386 0.9.1-7 installed
xorg-x11-drv-sisusb.i386 0.8.1-4.1 installed
xorg-x11-drv-spaceorb.i386 1.1.0-1.1 installed
xorg-x11-drv-summa.i386 1.1.0-1.1 installed
xorg-x11-drv-tdfx.i386 1.3.0-2.fc6 installed
xorg-x11-drv-trident.i386 1.2.3-1.fc6 installed
xorg-x11-drv-tseng.i386 1.1.0-3.1 installed
xorg-x11-drv-ur98.i386 1.1.0-1.1 installed
xorg-x11-drv-v4l.i386 0.1.1-4 installed
xorg-x11-drv-vesa.i386 1.2.1-4 installed
xorg-x11-drv-vga.i386 4.1.0-2.1 installed
xorg-x11-drv-via.i386 0.2.1-7 installed
xorg-x11-drv-vmmouse.i386 12.4.0-2.1 installed
xorg-x11-drv-vmware.i386 10.13.0-2.1 installed
xorg-x11-drv-void.i386 1.1.0-3.1 installed
xorg-x11-drv-voodoo.i386 1.1.0-3.1 installed
xorg-x11-filesystem.noarch 7.1-2.fc6 installed
xorg-x11-font-utils.i386 1:7.1-2 installed
xorg-x11-fonts-100dpi.noarch 7.1-2 installed
xorg-x11-fonts-75dpi.noarch 7.1-2 installed
xorg-x11-fonts-ISO8859-1-100dpi.noarch 7.1-2 installed
xorg-x11-fonts-ISO8859-1-75dpi.noarch 7.1-2 installed
xorg-x11-fonts-Type1.noarch 7.1-2 installed
xorg-x11-fonts-base.noarch 7.1-2 installed
xorg-x11-fonts-misc.noarch 7.1-2 installed
xorg-x11-fonts-truetype.noarch 7.1-2 installed
xorg-x11-proto-devel.i386 7.1-9.fc6 installed
xorg-x11-server-Xorg.i386 1.1.1-47.10.fc6 installed
xorg-x11-server-utils.i386 7.1-4.fc6 installed
xorg-x11-twm.i386 1:1.0.1-3.1 installed
xorg-x11-util-macros.i386 1.0.2-4.fc6 installed
xorg-x11-utils.i386 7.1-2.fc6 installed
xorg-x11-xauth.i386 1:1.0.1-2.1 installed
xorg-x11-xfs.i386 1:1.0.5-1.fc6 installed
xorg-x11-xinit.i386 1.0.2-16.fc6 installed
xorg-x11-xkb-utils.i386 1.0.2-2.1 installed
xorg-x11-xtrans-devel.i386 1.0.1-1.1.fc6 installed
[root@localhost ~]# yum list installed | grep -i -e lesstif
lesstif.i386 0.95.0-20.fc6 installed
lesstif-clients.i386 0.95.0-20.fc6 installed
lesstif-devel.i386 0.95.0-20.fc6 installed
lesstif-mwm.i386 0.95.0-20.fc6 installed
L'appli d'origine est codée pour travailler sous HP-UX en mode
8bit - PseudoColor car elle utilise une colormap dont les cellules doivent être accessibles en lecture / écriture (seuls les modes PseudoColor et DirectColor autorisent ce type d'accès dans les cellules d'une colormap).
Sous FC6, j'ai essayé les modes vidéos suivants :
8 bit PseudoColor
8 bit DirectColor
16 bit PseudoColor
16 bit DirectColor
16 bit TrueColor
Résultats :
1- tous ces modes engendre un retour en erreur ( = 0) de XAllocColorCells(), fonction censée m'allouer les bit-plans et les couleurs de la colormap. Alors que je recupère bien par contre le numéro de la colormap par défault lors de l'appel auparavant à DefaultColormap(). En l'occurence, le même numéro de colormap que celui alloué à mes xterm et retourné par
xwininfo.
2- si je tente l'initialisation d'une colormap privée avec XCreateColormap() au lieu d'utiliser la colormap par défaut comme expliqué dans le point n°1, une colormap privée est bien créée mais l'appel à XAllocColorCells() échoue de la même façon.
3- l'appli par contre tourne bien concernant les objets Motif : barres de menus, menus déroulants, menus pop-up, liste déroulante, tout fonctionne à quasi 100% avec les bonnes couleurs. Mais la gestion des canvas est totalement foireuse car comme aucune colormap n'a pas être associée à une palette de couleurs, tous les fonds sont noirs et les objets graphiques (textes, rectangles, cercles, ...) sont à peine visibles car dessinés dans une couleur improbable.
Le point qui est étonnant, c'est qu'un premier portage avait été réalisé (à titre d'essai) en 2002 par une autre équipe, sous une RedHat, et que ce problème bien particulier n'avait pas été rencontré ! (Par contre, j'ignore sur quel type de PC). Et que ce même code légèrement ajusté aujourd'hui ne marche pas sous FC6. A l'époque, c'était déjà Lesstif qui avait pourtant été utilisé... 🙁
Bon, il me reste quelques pistes à suivre :
1- tester sur un type totalement de PC (marque, carte gfx, ...)
2- tester sur un PC dit dédié Linux (ne me demandez pas ce que c'est, j'avoue que j'ai du mal à concevoir ce que le service informatique ici peut appeler un PC dédié Linux... :-?)
3- étudier de prêt la solution expliquée
ici mais qui ne semble pas répondre à 100% à mon problème.
En attendant, ben je poste ici en espérant que quelqu'un aura une suggestion miraculeuse afin de résoudre ce souci. :-P
Notamment :
1- Puis-je installer OpenMotif pour tester sans avoir à désintaller Lesstif auparavant ?
2- Existe-il une autre bibliothèque Motif que Lesstif, même payante ?
Merci !