Problèmes et questions sur les environnements graphiques et les applications.
Répondre

Affichage (colordepth) 24bits/32bits

#1Messageil y a 6 ans

Bonjour à tous je fais de la progrmmation en pascal avec lazarus (https://www.lazarus-ide.org) afin de tester la compatibilité de mes applications entre Windows et un environnement linux, je me suis tourné vers Manjaro qui à un gros avantage ; Lazarus est disponible dans les dépots, ce qui facilite son installation et ces mises à jour.
Actuellement je programme une librairie multimedia, contenant une gestion d'images (bitmap), gestion audio avec OpenAL et pour la suite un moteur 3D sera basé sur OpenGL (version 4.0 et sup) ou directement avec le nouveau standard Vulkan (je ne sais pas trop encore)

Mon soucis actuel est que je ne peux (n'arrive) pas à afficher une image avec transparence avec GTK 2.0.
Avec une petite appli maison je suis rendu compte que l'affichage sous Manjaro est configuré en 24bits d'ou le problème. J'ai essayé de modifié directement mon fichier ect/X11/mwhd.d/nvidia.conf mais cela à fait planter Manjaro.

Ma question est donc la suivante est-il possible de passer le mode de couleur en 32bits ?
Si non ben je verrais si je peux trouver des infos sur les fonctions avancées de X11/GTK et j'essayerai plus tard avec QT et GTK 3.0.

Merci d'avance pour vos réponses
Dernière modification par Erwanil y a 6 ans, modifié au total 1 fois.
Raison :Sujet résolu (non coché par l'auteur).

Affichage (colordepth) 24bits/32bits

#2Messageil y a 6 ans

Bonjour.
Typiquement sur toutes distribution Gnu/linux, en rajoutant linux32 devant une commande, celle-ci s'exécutera en mode 32 bits .
Exemple: linux32 vlc &
Ça fonctionne , mais ça renvoie quelques erreurs...

...........
[00007fb6180300d0] egl_x11 gl error: cannot select OpenGL API
[00007fb62cc74010] avcodec decoder: Using NVIDIA VDPAU Driver Shared Library  390.48  Wed Mar 21 23:47:29 PDT 2018 for hardware decoding
...........
Pour le rendu de couleur, je ne sais pas si c'est possible.

Affichage (colordepth) 24bits/32bits

#3Messageil y a 6 ans

Ok je vais tester. Dans tous les cas cela semble vraiment un problème récurrent tout langage (python C++, ect) confondu. Il semblerai y avoir quelques solutions avec la librairie Cairo. Je vais faire plus de recherches dans ce sens et également avec GTK 2.x ou la solution semble être de faire un copie du fond de la fiche et mixer le tout avant d'afficher, mais ce n'est vraiment pas une solution élégante et performante.

D'après ce que j'ai pu lire seulement certain "X Server" supporte la transparence, mais je n'ai pas trouvé de références sur les drivers ou version :(

Merci
Dernière modification par BeanzMasteril y a 6 ans, modifié au total 1 fois.

Affichage (colordepth) 24bits/32bits

#4Messageil y a 6 ans

Salut,

Sous Linux c'est normal, l'affichage ne mentionne qu'une profondeur de 24 bits, c'est à dire les trois canaux R, G et B et pas le canal alpha pour la transparence.

[     4.286] (II) RADEON(0): Creating default Display subsection in Screen section
	"Default Screen Section" for depth/fbbpp 24/32
[     4.286] (==) RADEON(0): Depth 24, (--) framebuffer bpp 32
[     4.287] (II) RADEON(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[     4.287] (==) RADEON(0): Default visual is TrueColor
[     4.287] (**) RADEON(0): Option "TearFree" "on"
[     4.287] (==) RADEON(0): RGB weight 888
[     4.287] (II) RADEON(0): Using 8 bits per RGB (8 bit DAC)
On peut afficher sans problème des images avec de la transparence sous Xfce, qui est un environnement GTK2.
N'étant pas développeur, je ne peux te dire comment ça fonctionne, je pense que c'est Gdk.pixbuf qui gère ça.

Affichage (colordepth) 24bits/32bits

#5Messageil y a 6 ans

lemust83 a écrit : il y a 6 ans Bonjour.
Typiquement sur toutes distribution Gnu/linux, en rajoutant linux32 devant une commande, celle-ci s'exécutera en mode 32 bits .
Exemple: linux32 vlc &
Ça fonctionne , mais ça renvoie quelques erreurs...

...........
[00007fb6180300d0] egl_x11 gl error: cannot select OpenGL API
[00007fb62cc74010] avcodec decoder: Using NVIDIA VDPAU Driver Shared Library  390.48  Wed Mar 21 23:47:29 PDT 2018 for hardware decoding
...........
Pour le rendu de couleur, je ne sais pas si c'est possible.
Hum, je crois que ça n'a rien à voir avec le problème :-\

@beanzmaster: tu devrais peut-être poster ta question sur les forums de Lazarus/FreePascal ou sur ceux de developpez.net ?
Dernière modification par GoustiFruitil y a 6 ans, modifié au total 1 fois.

Affichage (colordepth) 24bits/32bits

#6Messageil y a 6 ans

Actuellement je suis sous KDE et je vois bien de la transparence lorsque que je déplace mes fenêtre par exemples.
Donc il doit bien y avoir une solution.
GDX.PixBuf est déprécié :). Par exemple pour afficher un bouton arrondi avec un masque pas de soucis. Mais si mon image est composé d'un dégrader Alpha alors là l'affichage est incorrecte et il m'est impossible de créer un masque correcte.

Merci pour vos pistes. Je vais voir du coté du forum de FreePascal pour essayer de trouver une solution par programmation.

Affichage (colordepth) 24bits/32bits

#8Messageil y a 6 ans

bonjour
[HS]
Merci de me faire revenir 30 ans dans le passé : pascal est mon premier langage (comme beaucoup de monde à mon époque). Et merci à pascal qui m'a apporté de la rigueur donc qui me sert encore grandement aujourd'hui.

Lazarus/gtk2 gère très bien la transparence sous linux, si on utilise un objet Timage avec un png. Ici tu parles uniquement de ton moteur basé sur OpenGL ! il ne faudrait pas faire de la mauvaise pub à Lazarus :wink:Lazarus génère des programmes graphiques sous gtk2/3 et même sous qt5 (depuis peu) sans changement de code (on en parle jamais ici :pleure: et oui il n'y a pas que C, python et bash sous linux).

je rejoins GoustiFruit, pour le forum developpez.net il y a une communauté Lazarus mais ... tu en fais partie :lol:
Jipété est justement beaucoup sous linux/gtk2
https://lazarus.developpez.com/actu/194 ... ur-OpenGL/

Affichage (colordepth) 24bits/32bits

#9Messageil y a 6 ans

GoustiFruit a écrit : il y a 6 ans Est-ce que ceci peut t'aider ? http://wiki.lazarus.freepascal.org/BGRABitmap
Non je connais mais je développe ma propre solutions justement pour la gestion des bitmaps :sourire:
papajoke a écrit : il y a 6 ans Lazarus/gtk2 gère très bien la transparence sous linux, si on utilise un objet Timage avec un png.
Ben non en fait, pas pour ce que je souhaite faire et le TBitmap est un vrai gouffre à problème pour des choses plus poussées que d'afficher une image et là encore c'est pas gagné à tous les coups
papajoke a écrit : il y a 6 ans Ici tu parles uniquement de ton moteur basé sur OpenGL ! il ne faudrait pas faire de la mauvaise pub à Lazarus Lazarus génère des programmes graphiques sous gtk2/3 et même sous qt5 (depuis peu) sans changement de code (on en parle jamais ici et oui il n'y a pas que C, python et bash sous linux).
https://lazarus.developpez.com/actu/194 ... ur-OpenGL/
Non ici mon problème n'a rien avoir avec GLScene, c'est un tout autre projet :bien
GTK 3.0 est pour l'instant encore à l'état de "Larve". Pour QT il faut que je fasse des tests afin de comparer les comportements
papajoke a écrit : il y a 6 ans je rejoins GoustiFruit, pour le forum developpez.net il y a une communauté Lazarus mais ... tu en fais partie
Jipété est justement beaucoup sous linux/gtk2
Oui j'en fait partie, je connais très bien Jipete et sur ce sujet il sera autant dans les choux que moi. Surtout si je ne peux rien faire du coté de la configuration de l'OS. On en a déja eu pas mal de discussion sur le sujet des bitmaps et tout le tointoin.

Bref au fil de mes recherches une seule solution se profile, c'est copier et mixer le fond avant d'afficher mon image sous Linux.( Pas besoin sous Windows l'affichage est en 32bits par defaut et il y a une fonction spéciales pour afficher des images avec transparence)

Je marque le sujet comme résolu.

Merci de votre aide. Et si le pascal vous dit je peux vous aider aucun problème, rejoignez moi sur developpez.com :sourire:

Affichage (colordepth) 24bits/32bits

#10Messageil y a 6 ans

BeanzMaster a écrit : il y a 6 ans Merci de votre aide. Et si le pascal vous dit je peux vous aider aucun problème, rejoignez moi sur developpez.com :sourire:
Mais j'y suis déjà, sur developpez :-D Je programme un peu en Delphi à l'occasion, mais des trucs basiques :-)
Répondre