Wenn es dir um Effizienz geht (deine Scanline "Optimierung"), dann solltest du bei zeitkritischen Anwendungen auf die Callback Funktion verzichten. Damit sparst du viel mehr Nanosekunden
![Wink](images/smilies/icon_wink.gif)
.
Und wenn du das nicht willst: In vielen Anwendungsfällen kannst du sicher auf die Weitergabe von x,y an deine Callbackfunktion verzichten.
Ich habe auch rasch gemessen: 1220x753 Bild, 1000 Durchläufe:
0: Ist meine Prozedur von weiter oben, 1,2,3 sind deine (mit Callbackfunkton ohne Parameter x,y).
Du hast geschrieben deine 3 sei ähnlich 0; punkto Speed sind sie es nicht. Der Aufruf der Callbackfunktion bremst natürlich in mehrfacher Hinsicht (Prozessorcache, mehr Code).
64Bit App
i7-13620H @ 2.40GHz Win11 Home
0 : 1.184 sec
1 : 4.827
2 : 3.646
3 : 4.074
i7-11800H @ 2.30GHz Win11 Pro
0 : 1.388
1 : 5.765
2 : 4.309
3 : 4.924
AMD EPYC-Rome, 2350 Mhz WinServer 2022
0 : 2.461
1 : 6.577
2 : 5.283
3 : 6.988
Intel Xeon Cascadelake, 2394 MHz WinServer 2019
0 : 3,333
1 : 11,51
2 : 8,333
3 : 10,16