OVH Cloud OVH Cloud

GDI et tracé de lignes en mode inversé : méthode bourrin?

4 réponses
Avatar
JM
Bonsoir

Jusqu'à présent, lorsque je déplaçais des lignes, je les affichais en
mode xor (c'était pratique et rapide).
Histoire de donner un meilleur rendu, je n'utilise plus cette méthode mais :


-Je sauvegarde dans un bitmap la portion de l'écran délimitée par la
ligne (bitblt)
-Je trace
-Je copie la sauvegarde à l'écran
-Je sauvegarde
-je trace
-je recopie...

Bon, cela marche très bien mais je me pose les questions suivantes :
- C'est pas un peu bourrin de sauvegarder une grosse partie de l'écran
pour une ligne (par exemple) ?
- Chez moi, AMD 3500+ et Geforce 5800, c'est rapide, récopie sur l'écran
+ sauvegarde, cela me prend 0,1 milliseconde.
Sur un pc moins performant, à votre avis, il y a une grosse perte?

Merci

4 réponses

Avatar
georges
"JM" wrote in message
news:4522d523$0$5082$

Bon, cela marche très bien mais je me pose les questions suivantes :
- C'est pas un peu bourrin de sauvegarder une grosse partie de l'écran
pour une ligne (par exemple) ?
- Chez moi, AMD 3500+ et Geforce 5800, c'est rapide, récopie sur l'écran +
sauvegarde, cela me prend 0,1 milliseconde.
Sur un pc moins performant, à votre avis, il y a une grosse perte?



C'est difficile de savoir sans tester (ou reduire la vitesse dans le Bios si
on peut)
Mais qu'est ce que ça amene par rapport a une ligne en XOR ?
Avatar
JM
georges a écrit :

C'est difficile de savoir sans tester (ou reduire la vitesse dans le Bios si
on peut)
Mais qu'est ce que ça amene par rapport a une ligne en XOR ?



1-C'est plus joli
2-C'est la principale raison pour laquelle j'ai implémenté cette
méthode, c'est que le texte en mode XOR, cela ne marchait pas.
Avatar
Sylvain
JM wrote on 04/10/2006 23:36:

C'est difficile de savoir sans tester (ou reduire la vitesse dans le
Bios si on peut)
Mais qu'est ce que ça amene par rapport a une ligne en XOR ?



1-C'est plus joli
2-C'est la principale raison pour laquelle j'ai implémenté cette
méthode, c'est que le texte en mode XOR, cela ne marchait pas.



le texte est plein d'autre trucs (aliasing, transparence, ou plus
simplement combinaison de couleurs) ne marcheront pas bien.

une approche académique (ie pas tjrs applicable) est de faire
systématiquement le rendu en off-screen et de ne considérer l'affichage
effectif que comme une copie de ce buffer; cette méthode marche très
bien si la description des divers tracés, textes, etc est vectorielle et
énumérable; on rejouera alors à loisir ces différentes étapes (en en
supprimant et/ou permutant), la méthode marche moins bien si le 'dessin'
est fait à main libre (suivi de la souris par exemple).

Sylvain.
Avatar
JM
Sylvain a écrit :

une approche académique (ie pas tjrs applicable) est de faire
systématiquement le rendu en off-screen et de ne considérer l'affichage
effectif que comme une copie de ce buffer; cette méthode marche très
bien si la description des divers tracés, textes, etc est vectorielle et
énumérable; on rejouera alors à loisir ces différentes étapes (en en
supprimant et/ou permutant), la méthode marche moins bien si le 'dessin'
est fait à main libre (suivi de la souris par exemple).



Involontairement, je me suis rapproché d'un truc du genre : à chaque
OnPaint, je copie le contenue de l'écran dans un bitmap que je réutilise
lorsque c'est nécessaire.
Sur mon PC, une sauvegarde prend une 0,04ms, c'est pas la mort ;)

Mais ce que tu as dis m'a donné une idée pour améliorer un peu et virer
quelques copies