DirectDraw : Blit de surface à surface

cs_ouze Messages postés 4 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2004 - 15 mai 2004 à 03:01
cs_ouze Messages postés 4 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2004 - 15 mai 2004 à 15:13
salut à tous

j'aurais besoin d'un coup de main avec directdraw. Mon problème : j'ai une surface avec deux couleurs (du vert et du blanc, le vert est la colorkey), je voudrais remplacer tout le blanc par une autre couleur, donnée en paramètre.
Il me semble que la meilleure solution soit de blitter par dessus cette surface une autre surface contenant la nouvelle couleur. Pour le moment, j'arrive à remplacer les deux couleurs (pas trop dur), mais je veux en remplacer qu'une, le blanc !
Je suis un peu perdu avec les différentes colorkey...

Dans le contexte, c'est pour utiliser une police bitmap (qui marche nickel en blanc pour le moment), dont on pourrais modifier la couleur.

merci

2 réponses

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
15 mai 2004 à 13:31
Passe a directx 9 :) tu pourra gerer la transparence et la rotation facilement.
Sinon tu geres ici la transparence toi meme (que tu sauvegarde dans une surface car le calcul pixel par pixel est assez gourmand :)
0
cs_ouze Messages postés 4 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2004
15 mai 2004 à 15:13
Merci pour ta réponse, mais je préfère me limiter pour le moment à directdraw avant de me lancer dans directgraphics.

J'ai finalement réussi à trouver la solution à mon problème, voici le pseudo code à mettre en oeuvre, au cas où quelqu'un en aurait besoin :

- créer une surface temporaire (temp) aux même dimensions que la surface dont il faut changer une des deux couleurs (final)
- remplir temp avec la nouvelle couleur
- blitter final par dessus temp en utilisant comme colorkey la couleur non transparente de final
- copier temp sur final
- supprimer temp
- sauvegarder la couleur actuelle de final pour usage ultérieur

si c'est pas clair, ou si quelqu'un a une meilleure solution, contactez moi
0
Rejoignez-nous