Delphi-Quellcode:
procedure TImageRenderer.Execute;
var
ix: Integer;
iy: Integer;
begin
while Not Terminated
do
begin
fBmp.Canvas.Lock;
for ix := 0
to 99
do
begin
for iy := 0
to 99
do
begin
fBmp.Canvas.Pixels[ix,iy] :=
RGB(Random(256),Random(256),Random(256));
end;
Sleep(5);
end;
fBmp.Canvas.UnLock;
Synchronize(PaintBmp);
end;
end;
Das ist eine ganz blöde Idee. Canvas.Pixel ist Grottenlahm.
Du setzt doch eh schon pf24Bit. Das ist wie gemacht für einen Zugriff via TBitmap.Scanline!
Wenn Du die Bilder innerhalb des Threads erzeugst würde ich aber ganz auf TBitmap verzichten und lieber mit einem
RGB Raster also array of TRGB...(packed record R,G,B:Byte;end) arbeiten.
Das geht noch schneller in dem Moment wie du bereit bist ein weiteres Byte zu spenden, egal ob du es brauchst oder nicht. -> TRGBX...(record R,G,B,X:Byte;end) weil dann der Compiler die Zugriffe weiter optimieren kann.