unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,AdDraws, AdClasses, AdTypes, ImgList, AdPerformanceCounter;
type
TForm1 =
class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
AdDraw:TAdDraw;
AdPerCounter:TAdPerformanceCounter;
AdImageList:TAdImageList;
procedure Idle(Sender:TObject;
var Done:boolean);
end;
var
Form1: TForm1;
Pattern:single;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
AdDraw := TAdDraw.Create(self);
AdDraw.DllName := '
AndorraDX93D.dll';
if AdDraw.Initialize
then
begin
Application.OnIdle := Idle;
AdImageList := TAdImageList.Create(AdDraw);
with AdImageList.Add('
figur')
do
begin
Texture.LoadGraphicFromFile('
boy.bmp',true,clFuchsia);
// Dieses mal laden wir das Bild transparent herein
PatternWidth := 96;
PatternHeight := 96;
end;
AdImageList.Restore;
end
else
begin
ShowMessage('
Andorra 2D konnte nicht richtig initialisiert werden!');
halt;
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
AdDraw.Free;
AdPerCounter.free;
end;
procedure TForm1.Idle(Sender: TObject;
var Done: boolean);
begin
if AdDraw.CanDraw
then //Wenn überhaupt auf das AdDraw gezeichnet werden kann dann...
begin
AdPerCounter.Calculate;
Pattern := Pattern + 15 * (AdPerCounter.TimeGap / 1000);
AdDraw.ClearSurface(clBlack);
//Füllt die Oberfläche mit schwarzer Farbe
AdDraw.BeginScene;
Pattern := Pattern + 1;
if Pattern >= AdImageList.Items[0].PatternCount-1
then Pattern := 0;
AdImageList.Items[0].Draw(AdDraw,0,0,round(Pattern));
AdDraw.EndScene;
AdDraw.Flip;
//Präsentiert die gezeichneten Dinge auf dem Bildschirm.
end;
Done := false;
// Diese Zeile nicht vergessen, sonst wird der Code nur sporadisch ausgeführt.
end;
end.