Vielleicht hat ja jemand eine Erklärung für folgende Phänomen:
Code: Alles auswählen
bmp := TBitmap.Create;
bmp.PixelFormat:=;
bmp.Height := 1000;
bmp.Width := 1000;
bmp.Canvas.Brush.Color:=clred;
bmp.Canvas.Rectangle(0,0,1000,1000);
bmp1 := TBitmap.Create;
bmp1.Height := 1000;
bmp1.Width := 1000;
bmp1.Canvas.Brush.Color:=clGreen;
bmp1.Canvas.Rectangle(0,0,1000,1000);
for i := 0 to 1000 do
begin
Windows.BitBlt(Form1.Canvas.Handle,0,70,1000,1000,bmp.Canvas.Handle,0,0,SRCCOPY);
Windows.BitBlt(Form1.Canvas.Handle,0,70,1000,1000,bmp1.Canvas.Handle,0,0,SRCCOPY);
end;
Unter Delphi ist das ganze ca 4x so schnell.
Am generierten Code liegts nicht, sondern tatsächlich am API Aufruf.
Wenn man BitBlt mit BALCKNESS und WHITENESS aufruft ists genauso schnell.
Ergo es muss am Source DC liegen. Was für Einstellungen könnten hier den Unterschied machen ?
Hat jemand schon ein Ähnliches Phänomen beobachtet ? Theo ?