| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- unit fPFXGalleryD;
- interface
- uses
- Winapi.Windows,
- Winapi.OpenGL,
- System.SysUtils,
- System.Classes,
- Vcl.Graphics,
- Vcl.Controls,
- Vcl.Forms,
- Vcl.ExtCtrls,
- Vcl.StdCtrls,
- Vcl.Imaging.Jpeg,
- Stage.VectorTypes,
- Stage.Keyboard,
- Stage.VectorGeometry,
- GLS.Coordinates,
- GLS.BaseClasses,
- GLS.XCollection,
- Stage.Utils,
- GLS.SceneViewer,
- GLS.Scene,
- GLS.HUDObjects,
- GLS.ParticleFX,
- GLS.VectorFileObjects,
- GLS.Objects,
- GLS.BitmapFont,
- GLS.Cadencer,
- GLS.Texture,
- GLS.Navigator,
- GLS.GeomObjects,
- GLS.SpaceText,
- GLS.Behaviours,
- GLS.PerlinPFX,
- GLS.Blur;
- const
- cRunBoost = 10;
- cWalkStep = 20;
- cStrafeStep = 20;
- type
- TFormPFXGallery = class(TForm)
- GLSceneViewer1: TGLSceneViewer;
- GLCadencer1: TGLCadencer;
- PFXRail: TGLPerlinPFXManager;
- PFXBurning: TGLPerlinPFXManager;
- PFXSmoke: TGLPerlinPFXManager;
- BitmapFont1: TGLBitmapFont;
- GLScene1: TGLScene;
- WorldRoot: TGLDummyCube;
- PfxRenderer: TGLParticleFXRenderer;
- GLCamera1: TGLCamera;
- PFXBlueArea: TGLPerlinPFXManager;
- Timer1: TTimer;
- PFXElectro: TGLPerlinPFXManager;
- GLNavigator1: TGLNavigator;
- GLUserInterface1: TGLUserInterface;
- ICE: TGLSpaceText;
- GLPlane1: TGLPlane;
- PFXRedArea: TGLPerlinPFXManager;
- MAGMA: TGLSpaceText;
- SMOKE: TGLSpaceText;
- RAIL: TGLSpaceText;
- FIRE: TGLSpaceText;
- ELECTRIC: TGLSpaceText;
- FOG: TGLSpaceText;
- PFXFog: TGLPerlinPFXManager;
- PFXWaterfall: TGLPerlinPFXManager;
- WATER: TGLSpaceText;
- Panel1: TPanel;
- chkMouseLook: TCheckBox;
- GLLightSource1: TGLLightSource;
- chkFloor: TCheckBox;
- GLBlur1: TGLBlur;
- chkBlur: TCheckBox;
- Label1: TLabel;
- procedure GLCadencer1Progress(Sender: TObject;
- const deltaTime, newTime: Double);
- procedure Timer1Timer(Sender: TObject);
- procedure chkMouseLookClick(Sender: TObject);
- procedure chkFloorClick(Sender: TObject);
- procedure chkBlurClick(Sender: TObject);
- procedure FormCreate(Sender: TObject);
- private
- procedure HandleKeys(const deltaTime: Double);
- public
- end;
- var
- FormPFXGallery: TFormPFXGallery;
- implementation
- {$R *.dfm}
- procedure TFormPFXGallery.FormCreate(Sender: TObject);
- begin
- chkFloorClick(Sender);
- end;
- procedure TFormPFXGallery.GLCadencer1Progress(Sender: TObject;
- const deltaTime, newTime: Double);
- begin
- HandleKeys(deltaTime);
- GLUserInterface1.Mouselook();
- GLSceneViewer1.Invalidate();
- GLUserInterface1.MouseUpdate();
- GLSceneViewer1.Invalidate();
- end;
- procedure TFormPFXGallery.HandleKeys(const deltaTime: Double);
- var
- boost: Single;
- begin
- if IsKeyDown(VK_ESCAPE) then
- begin
- chkMouseLook.Checked := false;
- chkMouseLookClick(self);
- end;
- if IsKeyDown(VK_SHIFT) then
- boost := cRunBoost * deltaTime
- else if IsKeyDown(VK_CONTROL) then
- boost := cRunBoost * 0.01 * deltaTime
- else
- boost := deltaTime;
- if IsKeyDown('W') then
- GLCamera1.Move(cWalkStep * boost);
- if IsKeyDown('S') then
- GLCamera1.Move(-cWalkStep * boost);
- if IsKeyDown('A') then
- GLCamera1.Slide(-cStrafeStep * boost);
- if IsKeyDown('D') then
- GLCamera1.Slide(cStrafeStep * boost)
- end;
- procedure TFormPFXGallery.Timer1Timer(Sender: TObject);
- begin
- Caption := 'PFXGallery ' + Inttostr(Round(GLSceneViewer1.FramesPerSecond)
- ) + ' FPS';
- GLSceneViewer1.ResetPerformanceMonitor;
- end;
- procedure TFormPFXGallery.chkMouseLookClick(Sender: TObject);
- begin
- GLUserInterface1.MouseLookActive := chkMouseLook.Checked;
- end;
- procedure TFormPFXGallery.chkFloorClick(Sender: TObject);
- begin
- GLPlane1.Visible := chkFloor.Checked;
- end;
- procedure TFormPFXGallery.chkBlurClick(Sender: TObject);
- begin
- GLBlur1.Visible := chkBlur.Checked;
- end;
- end.
|