Quote Originally Posted by ijcro
OK I will see it.
If you'd like I have written a simple example problem reproduction:

Code:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXClass, DXDraws, StdCtrls;

type
  TForm1 = class(TForm)
    dd1: TDXDraw;
    DXTimer1: TDXTimer;
    rb1: TRadioButton;
    RadioButton1: TRadioButton;
    procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
    procedure dd1Initialize(Sender: TObject);
    procedure PrepareNewSurface;
  private
     newsurface: TDirectDrawSurface;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
   nWidth: Integer = 0;
   bGoing: Boolean = true;

procedure TForm1.PrepareNewSurface;
begin
   newsurface.Fill( 0 );
   newsurface.Canvas.Rectangle( 10, 10, 10 + nWidth, 50 );

   if bGoing then
   begin
      Inc( nWidth, 3 );

      if nWidth = newsurface.Width - 10 then
         bGoing := not bGoing;
   end
   else
   begin
      Dec( nWidth, 3 );

      if nWidth <= 10 then
         bGoing &#58;= not bGoing;
   end;

   newsurface.Canvas.Release;
end;

procedure TForm1.DXTimer1Timer&#40;Sender&#58; TObject; LagCount&#58; Integer&#41;;
begin
   dd1.surface.fill&#40; 0 &#41;;
   PrepareNewSurface;

   if radiobutton1.Checked then
      dd1.Surface.Draw&#40; 0, 0, newsurface &#41;
   else
      dd1.Surface.BltFast&#40; 0, 0, dd1.surface.ClientRect, 0, newsurface &#41;;

   dd1.surface.canvas.release;
   dd1.Flip;
end;

procedure TForm1.dd1Initialize&#40;Sender&#58; TObject&#41;;
begin
   newsurface &#58;=TDirectDrawSurface.Create&#40; dd1.DDraw &#41;;
   newsurface.SetSize&#40; dd1.Width, dd1.height &#41;;
end;

If I use Non-hardware acceleration (removing the [do3D] from options), it works but with software.

Thanx!