RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN RIEN

cirec
Messages postés
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
- 23 juin 2007 à 15:10
 florenth - 26 févr. 2008 à 10:32
Le mot scanline apparaît deux fois dans le code dans la procédure TOptimized24BitBitmap.PrepareBits; (fichier Optimizedbitmap.pas)

Le but de cette source est d'aller plus vite, donc il s'agit de faire le moins d'appels possibles à cette méthode qui mine de rien consomme un peu de ressources.
Voila tout.
Bacterius
Messages postés
3792
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
9
26 févr. 2008 à 00:31
Bonjour, j'ai un petit problème : étant dans l'impossibilité de lancer l'executable, je ne peux pas apprecier ton code dans toute sa splendeur. Mais j'ai juste une question... pourquoi le mot "scanline" n'apparait nulle part dans ton code ? ... Désolé je n'ai pas la fiche ni la plupart des fichiers .dcu, je comprends donc très mal la plupart des sources postées ici :(
cs_barbichette
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

25 juin 2007 à 11:58
Salut,
En effet, suite à la discution sur le forum, j'ai bien étudié les deux.
Les performances sont en gros les même. MAIS seulement lorsque l'on doit redessiner tout le bitmap.
Sinon, il est bien évident que de modifier quelques pixels puis de transférer tout le bitmap est bien plus lent.

Je regarde toujours pourquoi get/setdibits ne marche tout le temps chez moi. Ca pourra toujours servir... Il doit sûrement y a voir des bugs ailleurs...
cs_Kenavo
Messages postés
702
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
1 octobre 2009
4
25 juin 2007 à 09:31
L'utilisation de Scanline semble être un sujet qui plaît ces temps-ci !
Merci à Florenth d'avoir pris du temps pour mettre au propre ce que je continuais à brouillonner salement !
Salut Delphiprog !
Ta présence se fait de plus en plus rare par les temps qui courent, alors ça me fait plaisir que ce code te plaise !
cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
31
23 juin 2007 à 23:06
Y a pas à dire, c'est du grand art, de la haute voltige, que dis-je, du Florenth pur jus :))
En plus, c'est bien codé !
Et hop, je mets dans ma caisse à outils ce petit bijou :)

Bravo pour ce code.
NB : Heureusement qu'il y a quelques personnes comme toi pour relever le niveau.
Oui Cirec, y'a décidément des gens qui croient qu'il n'ont rien à apprendre sur rien... ce qui est totalement faux !
Par contre, je relativiserais le gain de performances. En fait, suivant le calcul que tu fais, il se peut que GetDIBits ne soit pas loin derrière Scanline[] (je suis arrivé à 5ms d'écart entre les deux, mais bon, le calcul durait 500ms !).
Dans TOUS les cas, ma technique de Scanline[] est plus rapide. J'ai pas dit LA plus rapide (on doit pas en être loin quand même) mais c'est déjà bien mieux que ce que j'ai vu avant.

Merci à vous trois pour vos appréciations !
Albedo039
Messages postés
18
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
31 janvier 2008

23 juin 2007 à 18:06
Moi, je l'ai déjà mis dans mes codes favoris :))
fbalien
Messages postés
251
Date d'inscription
dimanche 7 décembre 2003
Statut
Membre
Dernière intervention
11 novembre 2016

23 juin 2007 à 16:34
excellent
70 lignes de codes pour un résultat maximum
cirec
Messages postés
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
23 juin 2007 à 15:10
Vue 217 fois et pas un commentaire :

Je constate que cette source passe au dessus de beaucoup de tête ;)

Cette source s'adresse à tous ceux qui croient savoir utiliser Scanline correctement

Un ScanLine mal utilisé est au moins deux fois plus lent qu'un Get/SetDiBits

Mais utilisé comme Florenth nous le propose ici, ScanLine devient au moins deux fois plus rapide que
Get/SetDiBits

10/10
@+
Cirec