Show Unit1.pas syntax highlighted
unit Unit1;
interface
{$I GLScene.inc}
uses
//VCL
Windows, SysUtils, Classes, Controls, Forms, StdCtrls, ExtCtrls, ComCtrls,
//GLScene
GLCadencer, GLScene, GLMisc, GLObjects, GLWin32Viewer,
GLParticleFX, GLMovement, GLGeomObjects,
//Strange
StrangeEngines, StrangeDragDropDestination, StrangeTrackBar
{$IFDEF STRANGE_INIFILE_SUPPORT}, StrangeIniObjects{$ENDIF};
type
TForm1 = class(TForm)
GLScene1: TGLScene;
GLSceneViewer1: TGLSceneViewer;
GLCamera1: TGLCamera;
Ship: TGLDummyCube;
Cadencer: TGLCadencer;
Renderer: TGLParticleFXRenderer;
GLLightSource1: TGLLightSource;
GLPlane1: TGLPlane;
Button1: TButton;
Button2: TButton;
Button3: TButton;
GroupBox1: TGroupBox;
EngineListBox: TListBox;
AddButton: TButton;
RemoveButton: TButton;
EngineInfo: TGroupBox;
ExplorerDrop1: TStrangeDragDropDestination;
world: TGLDummyCube;
GLArrowLine1: TGLArrowLine;
Timer1: TTimer;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Memo1: TMemo;
Button4: TButton;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure GLSceneViewer1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure CadencerProgress(Sender: TObject; const deltaTime,
newTime: Double);
procedure AddButtonClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Engine: TStrangeEngines;
mx, my:integer;
implementation
{$R *.dfm}
{$I GLScene.inc}
procedure TForm1.FormCreate(Sender: TObject);
begin
{
//Load the model
Model.LoadFromFile('Data/mesh.md3');
Model.Scale.Scale(0.005);
Model.Material.Texture.Image.LoadFromFile('Data/texture.JPG');
Model.Material.Texture.Enabled := True;
}
Engine := TStrangeEngines.CreateInitialized(Ship, Cadencer, Renderer, Renderer);
{$IFDEF STRANGE_INIFILE_SUPPORT}
// Engine.LoadFromIniFile('config.dsc');
{$ENDIF}
GetOrCreatemovement(Ship).StartPathTravel;
end;
procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
mx:=x;
my:=y;
end;
procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if (ssRight in Shift) and (ssLeft in Shift) then
glcamera1.AdjustDistanceToTarget(1 - 0.01 * (my-y))
else
if (ssRight in Shift) or (ssLeft in Shift) then
glcamera1.MoveAroundTarget(y - my, x - mx);
my:=y;
mx:=x;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{$IFDEF STRANGE_INIFILE_SUPPORT}
Engine.Mask.LoadFromIniFile('mask.dsc');
{$ELSE}
Assert(False, 'Option DISABLED! Download StrangeIniFile from www.sector-37.com to support it!');
{$ENDIF}
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Engine.StopEngines;
GetOrCreatemovement(Ship).Paths[0].Looped := False;
GetOrCreatemovement(Ship).StopPathTravel;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Engine.StartEngines;
GetOrCreatemovement(Ship).Paths[0].Looped := True;
GetOrCreatemovement(Ship).StartPathTravel;
end;
procedure TForm1.CadencerProgress(Sender: TObject; const deltaTime,
newTime: Double);
begin
GLSceneViewer1.Invalidate;
end;
procedure TForm1.AddButtonClick(Sender: TObject);
begin
EngineListBox.AddItem('Engine' + IntToStr(EngineListBox.Count + 1), Engine.Add);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption := GLSceneViewer1.FramesPerSecondText;
GLSceneViewer1.ResetPerformanceMonitor;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Engine.Free;
end;
end.
See more files for this project here