With your new method, I get around 6300 frames while the other two only get arround 225 FPS on my AthlonXP 2000+.
Well, I got another question concerning surfaces. Here is some sourcecode to illustrate my problem:
[pascal]
// Version A
procedure TfrmTest.DrawInterface;
begin
surfInterface.Fill(0);
InterfaceImages.Items.Items[0].Draw(surInterface, 0, 0, 0);
end;
procedure TfrmTest.DXDrawInitialize(Sender: TObject);
begin
DXDrawTimer.Enabled := true;
surInterface := TDirectDrawSurface.Create(DXDraw.DDraw);
surInterface.SetSize(DXDraw.Width, DXDraw.Height);
DrawInterface;
end; // Version A
// Version B
procedure TfrmTest.DXDrawInitialize(Sender: TObject);
begin
DXDrawTimer.Enabled := true;
surInterface := TDirectDrawSurface.Create(DXDraw.DDraw);
surInterface.SetSize(DXDraw.Width, DXDraw.Height);
surfInterface.LoadFromGraphic(InterfaceImages.{... }.graphic)
end; // Version B
// A & B
procedure TfrmTest.DXDrawTimerTimer(Sender: TObject; LagCount: Integer);
begin
DXDraw.Surface.Draw(0, 0, surInterface, true);
DXDraw.Flip;
end; // A & B
[/pascal]
Version A dosent bring anything on my screen, Version B does. If I would call DrawInterface at the Timer Event it would draw it as well. Isn't it possible to draw Images of an DXImageList athe DXDrawInitialize Event?
Bookmarks