18
GLCadencer, GLTexture, GLScene, GLVectorGeometry, GLGraphics,
19
GLKeyboard, GLParticleFX, GLObjects, GLHUDObjects, GLAsyncTimer, GLPerlinPFX,
20
GLMaterial, GLCoordinates, GLCrossPlatform, GLBaseClasses, GLFireFX,
21
GLLCLViewer, GLGeomObjects, StdCtrls, ExtCtrls;
29
GLMaterialLibrary1: TGLMaterialLibrary;
31
pfx1: TGLPointLightPFXManager;
34
AsyncTimer1: TGLAsyncTimer;
35
rend: TGLParticleFXRenderer;
38
GLPointLightPFXManager2: TGLPointLightPFXManager;
39
GLPointLightPFXManager3: TGLPointLightPFXManager;
40
pfx2: TGLCustomSpritePFXManager;
43
pfx3: TGLCustomSpritePFXManager;
44
GLDummyCube3: TGLDummyCube;
46
GLDummyCube1: TGLDummyCube;
48
GLDummyCube2: TGLDummyCube;
49
Light1: TGLLightSource;
51
RadioGroup1: TRadioGroup;
52
RadioGroup2: TRadioGroup;
54
GLPerlinPFXManager1: TGLPerlinPFXManager;
55
GLFireFXManager1: TGLFireFXManager;
56
GLParticleFXRenderer1: TGLParticleFXRenderer;
57
procedure cadProgress(Sender: TObject; const deltaTime, newTime: Double);
58
procedure pfx2PrepareTextureImage(Sender: TObject; destBmp32: TGLImage;
59
var texFormat: Integer);
60
procedure pfx3PrepareTextureImage(Sender: TObject; destBmp32: TGLImage;
61
var texFormat: Integer);
62
procedure AsyncTimer1Timer(Sender: TObject);
63
procedure FormShow(Sender: TObject);
64
procedure RadioGroup1Click(Sender: TObject);
65
procedure RadioGroup2Click(Sender: TObject);
77
procedure TForm1.RadioGroup1Click(Sender: TObject);
79
if RadioGroup1.ItemIndex = 0 then
80
GLFireFXManager1.Disabled := False
82
GLFireFXManager1.Disabled := True;
85
procedure TForm1.RadioGroup2Click(Sender: TObject);
87
if RadioGroup2.ItemIndex = 0 then
88
GLPerlinPFXManager1.Renderer.Visible := True
90
GLPerlinPFXManager1.Renderer.Visible := False;
93
procedure TForm1.cadProgress(Sender: TObject; const deltaTime, newTime: Double);
98
with mouse.CursorPos do
99
cur.Position.SetPoint(x - left, y - top, 0);
100
cur.Rotation := cur.Rotation - deltaTime * 50;
101
v := cur.AbsolutePosition;
102
v.y := vp.Height - v.y;
103
vp.Buffer.ScreenVectorIntersectWithPlaneXY(v, 0, v);
104
dc_cur.AbsolutePosition := v;
105
dc1.Visible := iskeydown(vk_lbutton);
106
dc2.Visible := iskeydown(vk_rbutton);
107
dc3.Visible := iskeydown(vk_mbutton);
108
GLDummyCube3.Turn(1.5 * deltaTime * 60);
111
procedure TForm1.pfx2PrepareTextureImage(Sender: TObject; destBmp32: TGLImage; var texFormat: Integer);
115
bmp := TBitmap.Create;
116
bmp.LoadFromFile('skull.bmp');
117
destBmp32.Assign(bmp);
120
procedure TForm1.pfx3PrepareTextureImage(Sender: TObject; destBmp32: TGLImage; var texFormat: Integer);
124
bmp := TBitmap.Create;
125
bmp.LoadFromFile('rose.bmp');
126
destBmp32.Assign(bmp);
133
procedure TForm1.AsyncTimer1Timer(Sender: TObject);
135
caption := 'PFX Cursor Demo: ' + vp.FramesPerSecondText(2) +
136
' / use the mouse left and right buttons';
137
vp.ResetPerformanceMonitor;
140
procedure TForm1.FormShow(Sender: TObject);