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

Auteur Sujet: Splash art transparent  (Lu 1974 fois)

0 Membres et 1 Invité sur ce sujet

chiotdauchan

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Splash art transparent
« le: Juillet 16, 2013, 09:44:15 pm »
Bonjour,

j'aimerais réaliser un splash art transparent à la manière de photoshop (voir screenshot)



On voit qu'il y'a de la transparence permettant de voir le fond en dessous.
J'aimerais savoir s'il c'était possible de réaliser cela en SFML, j'ai essayé de le faire en appliquant un masque de transparence mais les zones sensées être transparente sont noires (surement à cause du window.clear() ).

Voici mon code:
#include <SFML/Graphics.hpp>
#include "SplashArt.hpp"

SplashArt::SplashArt(int largeur, int hauteur, int temps)
{
        this->hauteur = hauteur;
        this->largeur = largeur ;
        this->temps = temps;
}

int SplashArt::show()
{
    sf::RenderWindow splash(sf::VideoMode(largeur, hauteur), "Chargement", sf::Style::None);
    sf::Image image;
    sf::Texture texture;
    sf::Sprite sprite;
    image.loadFromFile("images/splashart2.png");
    image.createMaskFromColor(sf::Color(255,238,95),0);
    texture.loadFromImage(image);
    texture.setSmooth(false);
    sprite.setTexture(texture);

    sf::Font font_splash;
    if (!font_splash.loadFromFile("polices/Organic Fridays.ttf"))
        return EXIT_FAILURE;
    sf::Text text_splash("Chargement", font_splash, 50);
    while (splash.isOpen())
    {
        sf::Event event_splash;
        while (splash.pollEvent(event_splash))
        {
            if (event_splash.type == sf::Event::Closed)
                splash.close();
        }
        splash.clear();
        splash.draw(sprite);
        splash.draw(text_splash);
        splash.display();
        _sleep((temps*1000));
        splash.close();
    }
}

G.

  • Hero Member
  • *****
  • Messages: 1592
    • Voir le profil
Re : Splash art transparent
« Réponse #1 le: Juillet 17, 2013, 12:38:12 am »
Y'a eu plusieurs sujets à ce sujet, comme ces deux là :
http://en.sfml-dev.org/forums/index.php?topic=9184.msg62098#msg62098
http://en.sfml-dev.org/forums/index.php?topic=7820.msg52219#msg52219

En gros, impossible avec juste les fonctions de la SFML. Mais tu peux y arriver quand même en appelant des fonctions spécifiques à chaque OS. (je ne sais pas lesquelles :p )

chiotdauchan

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Splash art transparent
« Réponse #2 le: Juillet 17, 2013, 12:53:46 am »
Merci de ta réponse, tu veux dire des fonctions de l'API Windows?

gostron

  • Jr. Member
  • **
  • Messages: 53
    • Voir le profil
Re : Splash art transparent
« Réponse #3 le: Juillet 25, 2013, 05:16:44 pm »
Pour Windows oui. J'imagine que le rapide serait d'utiliser des frameworks qui permettent de le faire comme Qt par exemple qui te propose cette fonctionnalite pour les principaux OS en tout cas.