Bitblt et stretchblt lent et pas efficaces :-(

cs_neo12 Messages postés 16 Date d'inscription mercredi 29 mai 2002 Statut Membre Dernière intervention 5 novembre 2002 - 4 juil. 2002 à 15:54
Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 mars 2005 - 1 août 2002 à 21:21
Bonjour à tous !

je prépare en ce moment un petit prog pour faire deseffets de transition entre images en pelin écran (pour plus tard préparer une screensaver).
J'ai utilisé la fonction paintpicture pour faire tout un tas d'effets entre autres losanges, cercles d'une image sur une autre (je l'uploaderai quand ça sera prêt). Par contre paintpicture m'empêche de faire des effets de "passage" d'une image sur une autre.
Si par exemple je veux faire passer une petite image sur une grande d'un côté à l'autre de l'écran; là où l'image est passé il reste la "trace" (autoredraw doit être à "False").
J'avais cru comprendre que Bitblt et stretechblt (pour effet d'augmentation et réduction) permettait de s'affranchir de ce problème en "nettoyant"l'écran au fur et à mesure du déplacement de l'image en question...
Hors il n'en est rien. en mettant autoredrax à true comme exigé, rein ne se passee jusqu'à la fin du traitement (coordonées mis dnas une boucle pour simuler le déplacement). les seusl résutlats sont :
- un écran gelé jsuq'à la fin de la boucle.
- les traces du dpélcement toujorus présentes
et pour combler le tout, bien que stipulant les HDC sources et destination, la fonction utilise apparement le HDC de l'écran car le résultat tient comtpe de tout ce qui est à l'écran (si j'ai une petite feuille modale sur l'écran d'un autre appli elle se retrouve dans mon résultat.
Et enfin c'est très lent ! qlq'1 eput il m'expliquer (j'ai pourtant mis autoredraw à "true", scalemode à "pixel" et tout ce qui s'en suit ...: -((

1 réponse

Progmeister Messages postés 82 Date d'inscription samedi 23 février 2002 Statut Membre Dernière intervention 28 mars 2005
1 août 2002 à 21:21
Vu la quantité de problèmes que tu as, la meilleure solution pour toi serait de tout reprogrammer en utilisant directdraw, ça sera très rapide (plus de 200 affichages par seconde) car ca utilise la carte graphique et en plus tu n'aura plus de probleme de traces restante puisque tout l'écran est recalculé a chaque fois

En esperant t'avoir aidé

Progmeister :)
0
Rejoignez-nous