Ich komme nicht ganz hinterher.
1) TByteArray
Das ist doch einfach nur
type TByteArray = array [0..32767] of Byte;
. Ich habe in Delphi (aus Zeitgründen) nach wie vor gewaltige Lücken, aber Delphi hat doch für Arrays wie für Strings bsp. Referenzzählung? Wer weiß, was da noch alles drinsteckt was die
DLL eigentlich nicht brauchen kann und dementsprechend durcheinanderkommt. Ich verstehe das Schlüsselwort
packed
noch nicht wirklich, vielleicht kann das helfen?
2) Geschwindigkeit
Die CPU-Auslastung ist wirklich extrem hoch, ohne wirklich Ahnung zu haben würde ich die benutzten Delphi-Routinen bzgl. Farben beschuldigen. Kannst du mittels FillChar oder ähnlichem einfach das Bild immer Schwarz/Weiß flackern lassen? Hast du mal versucht mit einer
TStopWatch
zu messen, welche Aufrufe hier so lange brauchen?