Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Splash art transparent  (Read 2907 times)

0 Members and 1 Guest are viewing this topic.

chiotdauchan

  • Newbie
  • *
  • Posts: 2
    • View Profile
Splash art transparent
« on: July 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
  • *****
  • Posts: 1599
    • View Profile
Re : Splash art transparent
« Reply #1 on: July 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
  • *
  • Posts: 2
    • View Profile
Re : Splash art transparent
« Reply #2 on: July 17, 2013, 12:53:46 am »
Merci de ta réponse, tu veux dire des fonctions de l'API Windows?

gostron

  • Jr. Member
  • **
  • Posts: 53
    • View Profile
Re : Splash art transparent
« Reply #3 on: July 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.