Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Background transparent  (Lu 5454 fois)

0 Membres et 1 Invité sur ce sujet

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
[Résolu] Background transparent
« le: Juin 28, 2013, 01:05:19 pm »
Bonjour à tous,

Découvrant SFML depuis peu, je voudrais savoir s'il était possible de rendre le background d'une fenêtre translucide, voire totalement transparent. J'ai fais quelques recherches (peut-être pas assez) à ce sujet, je n'ai cependant rien trouvé.

Merci pour votre aide.
« Modifié: Juin 28, 2013, 05:01:25 pm par nekko »
- nekko

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Background transparent
« Réponse #1 le: Juin 28, 2013, 01:10:28 pm »
Pas directement avec SFML. Il faut que tu passes par des fonctions spécifiques de l'OS.
Laurent Gomila - SFML developer

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Background transparent
« Réponse #2 le: Juin 28, 2013, 01:40:35 pm »
De telles fonctions ne vont pas rendre TOUTE la fenêtre transparente? Je souhaiterais afficher des images par dessus ce background.
« Modifié: Juin 28, 2013, 02:05:40 pm par nekko »
- nekko

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Background transparent
« Réponse #3 le: Juin 28, 2013, 01:47:28 pm »
En fait (sous Windows au moins) tu peux appliquer un masque et donc appliquer la transparence avec une forme quelconque. Je pense que tu peux aussi faire en sorte que ce soit le canal alpha de ce que tu dessines qui soit directement interprété comme valeur de transparence.
Laurent Gomila - SFML developer

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Background transparent
« Réponse #4 le: Juin 28, 2013, 02:33:44 pm »
J'ai trouvé un moyen de changer la transparence d'une fenêtre en utilisant un layer, mais je ne sais pas si c'est une bonne solution pour pouvoir afficher des images par dessus.

sf::RenderWindow window(sf::VideoMode(500, 500), "SFML_WINDOW", 0);

HWND hWnd = window.getSystemHandle();
SetWindowLong(hWnd, GWL_EXSTYLE, GetWindowLong(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED);
SetLayeredWindowAttributes(hWnd, 0, 0, LWA_ALPHA);
- nekko

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Background transparent
« Réponse #5 le: Juin 28, 2013, 02:51:58 pm »
Et là ça donne quoi ? Tu vois quand même ce que tu affiches via SFML ou pas ?
Laurent Gomila - SFML developer

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Background transparent
« Réponse #6 le: Juin 28, 2013, 03:14:34 pm »
Non, pas du tout. Si je change un peu la transparence, sa donne ça.

- nekko

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Background transparent
« Réponse #7 le: Juin 28, 2013, 03:19:29 pm »
Ok. Et toi tu voudrais faire quoi en fait ?
Laurent Gomila - SFML developer

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : Background transparent
« Réponse #8 le: Juin 28, 2013, 03:27:59 pm »
Quelque chose de ce genre là (avec le background invisible derrière):



Pour l'instant, la seul solution que je vois c'est d'utiliser plusieurs fenêtres différentes.
- nekko

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Background transparent
« Réponse #9 le: Juin 28, 2013, 03:59:02 pm »
Je pense qu'il y a moyen (en utilisant le canal alpha du rendu OpenGL), mais je ne sais pas exactement comment ça fonctionne.
Laurent Gomila - SFML developer

nekko

  • Newbie
  • *
  • Messages: 6
    • Voir le profil
Re : [Résolu] Background transparent
« Réponse #10 le: Juin 28, 2013, 05:01:53 pm »
Je pense que je vais me résoudre à utiliser plusieurs fenêtres alors. Merci quand même.

PS: J'admire ton travail Laurant, faire une superbe librarie et être aussi actif sur le forum, anglais et français en plus, j'ai jamais vu ça :Q
- nekko