IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

SDL_SetAlpha et transparence qui me rend fou


Sujet :

SDL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut SDL_SetAlpha et transparence qui me rend fou
    bonjour a tous,

    voila cela fait déjà pas mal de temps que je fais une serie de teste sur la transparence des surfaces.
    je vous explique mon probleme. je charge une image "rectangles.pgn" qui est un rectangle arrondi . lorsque j'essaye de le rendre moyennement rransparent avec la fonction SDL_SetAlpha rien ne se passe... voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	typedef struct fenetre_dialogue{
    	/* d'autres elements dans la structure */
    	SDL_Surface* fenetre;
    }fenetre_dialogue;
    dans une fonction prenant une fenetre_dialogue en parametre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    _fenetre -> fenetre = IMG_Load("./fenetres/rectangle.png");
    	SDL_SetAlpha(_fenetre -> fenetre,SDL_SRCALPHA,128);
    dans une boucle d'affichage je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    position.x = 200;
    		position.y = 200;
    		SDL_BlitSurface(_fenetre -> fenetre, NULL, SDL_GetVideoSurface(), &position);
    SDL_Flip(SDL_GetVideoSurface());
    si qu1lqu1 a une idée merci beaucoup...

    ps: la structure est alloué bien sur avant ...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut
    un petit up pour mon soucis :s

    j'ai essayé avec un rectangle que je rempli manuellement et dont je definie la transparence alpha a l'aide de la mçeme fonction sa ne marche toujours pas.... à un autre endroit dans le code la transparence alpha fonctionne et je ne sais pas pourquoi ici precisement sa foire. j'ai bien examiner et je ne trouve pas de difference majeur qui expliquerai ceci.
    merci à toutes reponses ...

  3. #3
    Nouveau membre du Club Avatar de anakronox
    Inscrit en
    Novembre 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 49
    Points : 34
    Points
    34
    Par défaut
    Bonjour.
    Il faudrait dans ce cas revoir la fonction car apparemment c'est au niveau de celle-ci que quelque chose cloche. Peut-être devrais-tu essayé de renvoyé la fenetre (ex: return _fenêtre) dans ta fonction si tu n'as pas encore essayé bien sûr...Après, c'est la seule idée qui me vient à l'esprit...
    Pourquoi faire aujourd'hui ce qu'on peut faire demain ?

  4. #4
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Points : 1 452
    Points
    1 452
    Par défaut
    Salut,

    poste le code complet pour voir ce qu'on peut faire (essaie éventuellement de le réduire en taille avant de le poster)

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Oui , un morceau de code plus global , ce ne serai pas de refus.

    Sinon, dans ton programme , tache de faire des tests des valeurs renvoyé par les functions de la SDL

    Par example :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if ( SDL_SetAlpha(_fenetre -> fenetre,SDL_SRCALPHA,128) < 0 )
    	printf ("Erreur lors de la functon SDL_SetAlpha");
    ( enfin j'ai mis printf , juste pour l'exemple , en C++ utilise plutot cerr )
    Ce que je veux dire , c'est que pour chaque function de la SDL, un petit check de la valeur retourner c'est pas du luxe. Y a juste à regarder la documentation , et faire un test , et tu gagnera déjà beaucoup de temps , pour les problèmes idiots.

    De plus , ton programme , me semble légèrement dangereux , verifie que la texture est bien chargée , soit faire aussi un test pour IMG_Load() .
    Les tests sont encore plus utiles pour les fonctions qui charge quelque chose.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Personnellement, je crois que c'est la fct SDL_SetAlpha qui digère mal les .png
    En essayant, avec un autre format d'image, ça devrait marcher.
    A vérifier!! Je vais essayer de trouver une solution à ce pb.
    C'est bon j'ai trouvé, c'est juste que ton image doit avoir ses couleurs indexés sinon on peux pas utiliser SDL_SetAlpha , donc no souci, tu prends un éditeur d'image et tu changes le mode de couleur. voilou

Discussions similaires

  1. Probleme SUM sur requete qui me rend fou !
    Par EDAT2 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/06/2012, 19h10
  2. Closure qui me rend fou
    Par Sergejack dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 02/10/2010, 17h53
  3. Problème de Syntaxe qui me rend fou
    Par fardon57 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/12/2009, 10h57
  4. une exception qui me rend fou !
    Par ghilo dans le forum Langage
    Réponses: 5
    Dernier message: 20/08/2009, 16h48
  5. SOS - Une Association Many-To-Many qui me rend fou
    Par NexoFlex dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/06/2009, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo