2
0
Эх сурвалжийг харах

Refreshed multimaterial c++ demo

GLScene 2 жил өмнө
parent
commit
77ae014ee7
26 өөрчлөгдсөн 713 нэмэгдсэн , 474 устгасан
  1. 0 0
      Assets/ModelExt/chrome_buckle.bmp
  2. 0 0
      Assets/ModelExt/chrome_glass.bmp
  3. 46 53
      Examples/Demos/materials/multimaterial/fMultiMaterialC.cpp
  4. 12 9
      Examples/Demos/materials/multimaterial/fMultiMaterialC.dfm
  5. 2 2
      Examples/Demos/materials/multimaterial/fMultiMaterialC.h
  6. 13 12
      Examples/Demos/materials/multimaterial/fMultiMaterialD.dfm
  7. 34 29
      Examples/Demos/materials/multimaterial/fMultiMaterialD.pas
  8. 15 3
      Examples/Demos/movements/movements.groupproj
  9. 2 2
      Examples/Demos/movements/tweening/TweeningD.dpr
  10. 319 17
      Examples/Demos/movements/tweening/TweeningD.dproj
  11. 15 14
      Examples/Demos/movements/tweening/fTweeningD.dfm
  12. 8 4
      Examples/Demos/movements/tweening/fTweeningD.pas
  13. 50 50
      Examples/Demos/sound/3DSound/SoundAroundC.cbproj
  14. 8 8
      Examples/Demos/sound/3DSound/SoundAroundD.dproj
  15. 48 93
      Examples/Demos/sound/3DSound/fSoundAroundD.dfm
  16. 8 8
      Examples/Demos/sound/3DSoundBASS/SoundBASS.dproj
  17. 35 63
      Examples/Demos/sound/3DSoundBASS/fSoundBASS.dfm
  18. 3 3
      Examples/Demos/sound/3DSoundBASS/fSoundBASS.pas
  19. 2 2
      Examples/Demos/sound/3DSoundFMOD/SoundFMOD.dpr
  20. 9 9
      Examples/Demos/sound/3DSoundFMOD/SoundFMOD.dproj
  21. 13 15
      Examples/Demos/sound/3DSoundFMOD/fSoundFMOD.dfm
  22. 53 53
      Examples/Demos/sound/3DSoundFMOD/fSoundFMOD.pas
  23. 8 8
      Examples/Demos/sound/3DSoundOpenAL/SoundOpenAL.dproj
  24. 8 8
      Examples/Demos/sound/3DSoundWaveOut/SoundWaveOut.dproj
  25. 1 1
      Examples/Demos/specialsFX/shadowvolumes/fShadowVolumesD.pas
  26. 1 8
      Source/GLS.AnimationUtils.pas

+ 0 - 0
Assets/Texture/chrome_buckle.bmp → Assets/ModelExt/chrome_buckle.bmp


+ 0 - 0
Assets/Texture/chrome_glass.bmp → Assets/ModelExt/chrome_glass.bmp


+ 46 - 53
Examples/Demos/materials/multimaterial/fMultiMaterialC.cpp

@@ -17,83 +17,76 @@
 #pragma link "GLSL.MultiMaterialShader"
 #pragma link "GLSL.TextureShaders"
 #pragma resource "*.dfm"
-TForm1 *Form1;
+TForm1* Form1;
 //---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
-}
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {}
 //---------------------------------------------------------------------------
-void __fastcall TForm1::FormCreate(TObject *Sender)
+void __fastcall TForm1::FormCreate(TObject* Sender)
 {
-    TFileName Path = GetCurrentAssetPath();
+	TGLLibMaterial* LibMat;
+	TFileName Path = GetCurrentAssetPath() + "\\texture";
+	SetCurrentDir(Path);
 
-    // Add the specular pass
-    // tmBlend for shiny background
-    //Material->Texture->TextureMode = tmBlend;
-    // tmModulate for shiny text
-    GLMaterialLibrary1->AddTextureMaterial("specular", "GLScene_alpha.bmp")
-        ->Material->Texture->TextureMode = tmModulate;
-    GLMaterialLibrary1->AddTextureMaterial("specular", "GLScene_alpha.bmp")
-        ->Material->BlendingMode = bmAdditive;
-    GLMaterialLibrary1->AddTextureMaterial("specular", "GLScene_alpha.bmp")
-        ->Texture2Name = "specular_tex2";
+	// GLMatLib1 is the source of the first image
+	// Add the specular material using tmModulate for shiny text
+    GLMatLib1->AddTextureMaterial("specular", "glscene_alpha.bmp");
+    GLMatLib1->Materials->GetLibMaterialByName("specular")->Material->Texture->TextureMode = tmModulate;
+  // use TextureMode := tmBlend; for shiny background
+    GLMatLib1->Materials->GetLibMaterialByName("specular")->Material->BlendingMode = bmAdditive;
+    GLMatLib1->Materials->GetLibMaterialByName("specular")->Texture2Name = "specular_tex2";
 
-    GLMaterialLibrary1->AddTextureMaterial("specular_tex2", "chrome_buckle.bmp")
-        ->Material->Texture->MappingMode = tmmCubeMapReflection;
-    GLMaterialLibrary1->AddTextureMaterial("specular_tex2", "chrome_buckle.bmp")
-        ->Material->Texture->ImageBrightness = 0.3;
+    GLMatLib1->AddTextureMaterial("specular_tex2", "rainbow.bmp");
+    GLMatLib1->Materials->GetLibMaterialByName("specular_tex2")->Material->Texture->MappingMode = tmmCubeMapReflection;
+    GLMatLib1->Materials->GetLibMaterialByName("specular_tex2")->Material->Texture->ImageBrightness = 0.3;
 
-	// GLMaterialLibrary2 is the source of the GLMultiMaterialShader passes.
-	// Pass 1 : Base texture
-    GLMaterialLibrary2->AddTextureMaterial("Pass1", "glscene.bmp"); //}
+  // GLMatLib2 is the source of the GLMultiMaterialShader passes.
 
-    // Pass 2 : Add a bit of detail
-    GLMaterialLibrary2->AddTextureMaterial("Pass2", "detailmap.jpg")
-		->Material->Texture->TextureMode = tmBlend;
-    GLMaterialLibrary2->AddTextureMaterial("Pass2", "detailmap.jpg")
-        ->Material->BlendingMode = bmAdditive;
+  // Pass 1: Base texture
+  GLMatLib2->AddTextureMaterial("Pass1", "glscene.bmp"); // or use glscene_delphi.bmp  
 
-    // Pass 3 : And a little specular reflection
-    (new TGLLibMaterial(GLMaterialLibrary2->Materials))
-        ->Material->MaterialLibrary = GLMaterialLibrary1;
-    (new TGLLibMaterial(GLMaterialLibrary2->Materials))
-        ->Material->LibMaterialName = "specular";
+  // Pass 2: Add a bit of detail
+  GLMatLib2->AddTextureMaterial("Pass2", "detailmap.jpg");
+  GLMatLib2->Materials->GetLibMaterialByName("Pass2")->Material->Texture->TextureMode = tmBlend;
+  GLMatLib2->Materials->GetLibMaterialByName("Pass2")->Material->BlendingMode = bmAdditive;
 
-    // This isn't limited to 3, try adding some more passes!
+   // Pass 3 : And a little specular reflection
+   LibMat = new TGLLibMaterial(GLMatLib2->Materials);
+   LibMat->Material->MaterialLibrary = GLMatLib1;
+   LibMat->Material->LibMaterialName = "specular";
+
+	// This isn't limited to 3, try adding some more passes!
 }
 //---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender, TMouseButton Button,
-          TShiftState Shift, int X, int Y)
+void __fastcall TForm1::GLSceneViewer1MouseDown(
+	TObject* Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
 {
-  mx=X;
-  my=Y;
+	mx = X;
+	my = Y;
 }
 //---------------------------------------------------------------------------
 
-void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta,
-          TPoint &MousePos, bool &Handled)
+void __fastcall TForm1::FormMouseWheel(TObject* Sender, TShiftState Shift,
+	int WheelDelta, TPoint &MousePos, bool &Handled)
 {
-  GLCamera1->AdjustDistanceToTarget(Power(1.1, WheelDelta/120));
-  Handled = true;
+    GLCamera1->AdjustDistanceToTarget(Power(1.1, WheelDelta / 120));
+    Handled = true;
 }
 //---------------------------------------------------------------------------
 
-void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
-          const double newTime)
+void __fastcall TForm1::GLCadencer1Progress(
+    TObject* Sender, const double deltaTime, const double newTime)
 {
-  GLCube1->Turn(deltaTime*100);
+	GLCube1->Turn(deltaTime * 10);
 }
 //---------------------------------------------------------------------------
 
-void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
-          int X, int Y)
+void __fastcall TForm1::GLSceneViewer1MouseMove(
+    TObject* Sender, TShiftState Shift, int X, int Y)
 {
-  if (Shift.Contains(ssLeft))
-	GLCamera1->MoveAroundTarget(my-Y,mx-X);
-  mx=X;
-  my=Y;
+    if (Shift.Contains(ssLeft))
+        GLCamera1->MoveAroundTarget(my - Y, mx - X);
+    mx = X;
+    my = Y;
 }
 //---------------------------------------------------------------------------
 
-

+ 12 - 9
Examples/Demos/materials/multimaterial/fMultiMaterialC.dfm

@@ -2,8 +2,8 @@ object Form1: TForm1
   Left = 0
   Top = 0
   Caption = 'MultiMaterial'
-  ClientHeight = 410
-  ClientWidth = 526
+  ClientHeight = 532
+  ClientWidth = 734
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
@@ -17,16 +17,18 @@ object Form1: TForm1
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Top = 0
-    Width = 526
-    Height = 410
+    Width = 734
+    Height = 532
     Camera = GLCamera1
     Buffer.BackgroundColor = clTeal
-    FieldOfView = 152.586074829101600000
+    FieldOfView = 158.708679199218800000
     PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove
     TabOrder = 0
+    ExplicitWidth = 527
+    ExplicitHeight = 411
   end
   object GLScene1: TGLScene
     Left = 24
@@ -36,6 +38,7 @@ object Form1: TForm1
       object GLCamera1: TGLCamera
         DepthOfView = 100.000000000000000000
         FocalLength = 50.000000000000000000
+        SceneScale = 2.000000000000000000
         TargetObject = GLDummyCube1
         Position.Coordinates = {0000803F000040400000A0C00000803F}
         object GLLightSource1: TGLLightSource
@@ -45,12 +48,12 @@ object Form1: TForm1
       end
     end
     object GLCube1: TGLCube
-      Material.MaterialLibrary = GLMaterialLibrary1
+      Material.MaterialLibrary = GLMatLib1
       Material.LibMaterialName = 'MultipassMat'
       CubeSize = {000000400000004000000040}
     end
   end
-  object GLMaterialLibrary1: TGLMaterialLibrary
+  object GLMatLib1: TGLMaterialLibrary
     Materials = <
       item
         Name = 'MultipassMat'
@@ -60,12 +63,12 @@ object Form1: TForm1
     Left = 120
     Top = 8
   end
-  object GLMaterialLibrary2: TGLMaterialLibrary
+  object GLMatLib2: TGLMaterialLibrary
     Left = 120
     Top = 64
   end
   object GLMultiMaterialShader1: TGLMultiMaterialShader
-    MaterialLibrary = GLMaterialLibrary2
+    MaterialLibrary = GLMatLib2
     VisibleAtDesignTime = False
     ShaderStyle = ssReplace
     Left = 240

+ 2 - 2
Examples/Demos/materials/multimaterial/fMultiMaterialC.h

@@ -35,8 +35,8 @@ __published:	// IDE-managed Components
 	TGLCamera *GLCamera1;
 	TGLLightSource *GLLightSource1;
 	TGLCube *GLCube1;
-	TGLMaterialLibrary *GLMaterialLibrary1;
-	TGLMaterialLibrary *GLMaterialLibrary2;
+	TGLMaterialLibrary *GLMatLib1;
+	TGLMaterialLibrary *GLMatLib2;
 	TGLMultiMaterialShader *GLMultiMaterialShader1;
 	TGLCadencer *GLCadencer1;
 	TGLTexCombineShader *GLTexCombineShader1;

+ 13 - 12
Examples/Demos/materials/multimaterial/fMultiMaterialD.dfm

@@ -2,8 +2,8 @@ object FormMultiMat: TFormMultiMat
   Left = 225
   Top = 115
   Caption = 'Multi Material'
-  ClientHeight = 280
-  ClientWidth = 428
+  ClientHeight = 449
+  ClientWidth = 620
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
@@ -16,14 +16,17 @@ object FormMultiMat: TFormMultiMat
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Top = 0
-    Width = 428
-    Height = 280
+    Width = 620
+    Height = 449
     Camera = GLCamera1
-    FieldOfView = 140.692352294921900000
+    Buffer.BackgroundColor = clTeal
+    FieldOfView = 154.888351440429700000
     PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     TabOrder = 0
+    ExplicitWidth = 447
+    ExplicitHeight = 312
   end
   object GLScene1: TGLScene
     Left = 24
@@ -33,7 +36,7 @@ object FormMultiMat: TFormMultiMat
       object GLCamera1: TGLCamera
         DepthOfView = 100.000000000000000000
         FocalLength = 50.000000000000000000
-        SceneScale = 2.000000000000000000
+        SceneScale = 3.000000000000000000
         TargetObject = GLDummyCube1
         Position.Coordinates = {0000803F000040400000A0C00000803F}
         object GLLightSource1: TGLLightSource
@@ -43,30 +46,28 @@ object FormMultiMat: TFormMultiMat
       end
     end
     object GLCube1: TGLCube
-      Material.MaterialLibrary = GLMaterialLibrary1
+      Material.MaterialLibrary = GLMatLib1
       Material.LibMaterialName = 'MultipassMat'
       Scale.Coordinates = {0000003F0000003F0000003F00000000}
       CubeSize = {000000400000004000000040}
     end
   end
-  object GLMaterialLibrary1: TGLMaterialLibrary
+  object GLMatLib1: TGLMaterialLibrary
     Materials = <
       item
         Name = 'MultipassMat'
         Tag = 0
         Shader = GLMultiMaterialShader1
       end>
-    TexturePaths = '..\..\media'
     Left = 120
     Top = 8
   end
-  object GLMaterialLibrary2: TGLMaterialLibrary
-    TexturePaths = '..\..\media'
+  object GLMatLib2: TGLMaterialLibrary
     Left = 120
     Top = 64
   end
   object GLMultiMaterialShader1: TGLMultiMaterialShader
-    MaterialLibrary = GLMaterialLibrary2
+    MaterialLibrary = GLMatLib2
     VisibleAtDesignTime = False
     ShaderStyle = ssReplace
     Left = 240

+ 34 - 29
Examples/Demos/materials/multimaterial/fMultiMaterialD.pas

@@ -32,13 +32,13 @@ uses
 type
   TFormMultiMat = class(TForm)
     GLScene1: TGLScene;
-    GLMaterialLibrary1: TGLMaterialLibrary;
+    GLMatLib1: TGLMaterialLibrary;
     GLSceneViewer1: TGLSceneViewer;
     GLCamera1: TGLCamera;
     GLDummyCube1: TGLDummyCube;
     GLCube1: TGLCube;
     GLLightSource1: TGLLightSource;
-    GLMaterialLibrary2: TGLMaterialLibrary;
+    GLMatLib2: TGLMaterialLibrary;
     GLMultiMaterialShader1: TGLMultiMaterialShader;
     GLCadencer1: TGLCadencer;
     GLTexCombineShader1: TGLTexCombineShader;
@@ -64,45 +64,50 @@ var
 implementation
 
 {$R *.dfm}
-{ TForm1 }
 
 procedure TFormMultiMat.FormCreate(Sender: TObject);
+var
+  Path: TFileName;
+  LibMat: TGLLibMaterial;
 begin
-  var Path: TFileName := GetCurrentAssetPath();
+  Path := GetCurrentAssetPath();
   SetCurrentDir(Path  + '\texture');
-  // Add the specular pass
-  with GLMaterialLibrary1.AddTextureMaterial('specular', 'glscene_alpha.bmp') do
+
+	// GLMatLib1 is the source of the first image
+	// Add the specular material using tmModulate for shiny text
+  GLMatLib1.AddTextureMaterial('specular', 'glscene_alpha.bmp');
+  GLMatLib1.Materials.GetLibMaterialByName('specular').Material.Texture.TextureMode := tmModulate;
+  // use TextureMode := tmBlend; for shiny background
+  GLMatLib1.Materials.GetLibMaterialByName('specular').Material.BlendingMode := bmAdditive;
+  GLMatLib1.Materials.GetLibMaterialByName('specular').Texture2Name := 'specular_tex2';
+
+  (* or with delphi with do more short
+  with GLMatLib1.AddTextureMaterial('specular', 'glscene_alpha.bmp') do
   begin
-    // tmBlend for shiny background
-    // Material.Texture.TextureMode := tmBlend;
-    // tmModulate for shiny text
     Material.Texture.TextureMode := tmModulate;
     Material.BlendingMode := bmAdditive;
     Texture2Name := 'specular_tex2';
   end;
-  with GLMaterialLibrary1.AddTextureMaterial('specular_tex2', 'chrome_buckle.bmp') do
-  begin
-    Material.Texture.MappingMode := tmmCubeMapReflection;
-    Material.Texture.ImageBrightness := 0.3;
-  end;
+  //*)
 
-  // GLMaterialLibrary2 is the source of the GLMultiMaterialShader passes.
-  // Pass 1 : Base texture
-  GLMaterialLibrary2.AddTextureMaterial('Pass1', 'glscene.bmp'); // }
+  GLMatLib1.AddTextureMaterial('specular_tex2', 'rainbow.bmp');
+  GLMatLib1.Materials.GetLibMaterialByName('specular_tex2').Material.Texture.MappingMode := tmmCubeMapReflection;
+  GLMatLib1.Materials.GetLibMaterialByName('specular_tex2').Material.Texture.ImageBrightness := 0.3;
 
-  // Pass 2 : Add a bit of detail
-  with GLMaterialLibrary2.AddTextureMaterial('Pass2', 'detailmap.jpg') do
-  begin
-    Material.Texture.TextureMode := tmBlend;
-    Material.BlendingMode := bmAdditive;
-  end; // }
+  // GLMatLib2 is the source of the GLMultiMaterialShader passes.
 
-  // Pass 3 : And a little specular reflection
-  with TGLLibMaterial.Create(GLMaterialLibrary2.Materials) do
-  begin
-    Material.MaterialLibrary := GLMaterialLibrary1;
-    Material.LibMaterialName := 'specular';
-  end; // }
+  // Pass 1: Base texture
+  GLMatLib2.AddTextureMaterial('Pass1', 'glscene.bmp'); // or use glscene_delphi.bmp  
+
+  // Pass 2: Add a bit of detail
+  GLMatLib2.AddTextureMaterial('Pass2', 'detailmap.jpg');
+  GLMatLib2.Materials.GetLibMaterialByName('Pass2').Material.Texture.TextureMode := tmBlend;
+  GLMatLib2.Materials.GetLibMaterialByName('Pass2').Material.BlendingMode := bmAdditive;
+
+  // Pass 3: And a little specular reflection
+  LibMat := TGLLibMaterial.Create(GLMatLib2.Materials);
+  LibMat.Material.MaterialLibrary := GLMatLib1;
+  LibMat.Material.LibMaterialName := 'specular';
 
   // This isn't limited to 3, try adding some more passes!
 end;

+ 15 - 3
Examples/Demos/movements/movements.groupproj

@@ -51,6 +51,9 @@
         <Projects Include="SmoothNavigator\SmoothNaviC.cbproj">
             <Dependencies/>
         </Projects>
+        <Projects Include="tweening\TweeningD.dproj">
+            <Dependencies/>
+        </Projects>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Default.Personality.12</Borland.Personality>
@@ -203,14 +206,23 @@
     <Target Name="SmoothNaviC:Make">
         <MSBuild Projects="SmoothNavigator\SmoothNaviC.cbproj" Targets="Make"/>
     </Target>
+    <Target Name="TweeningD">
+        <MSBuild Projects="tweening\TweeningD.dproj"/>
+    </Target>
+    <Target Name="TweeningD:Clean">
+        <MSBuild Projects="tweening\TweeningD.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="TweeningD:Make">
+        <MSBuild Projects="tweening\TweeningD.dproj" Targets="Make"/>
+    </Target>
     <Target Name="Build">
-        <CallTarget Targets="ColumnD;ColumnC;EventsD;EventsC;HierarchD;HierarchC;ManualD;ManualC;ObjmoveD;ObjmoveC;PointtoD;PointtoC;PongD;PongC;SmoothNaviD;SmoothNaviC"/>
+        <CallTarget Targets="ColumnD;ColumnC;EventsD;EventsC;HierarchD;HierarchC;ManualD;ManualC;ObjmoveD;ObjmoveC;PointtoD;PointtoC;PongD;PongC;SmoothNaviD;SmoothNaviC;TweeningD"/>
     </Target>
     <Target Name="Clean">
-        <CallTarget Targets="ColumnD:Clean;ColumnC:Clean;EventsD:Clean;EventsC:Clean;HierarchD:Clean;HierarchC:Clean;ManualD:Clean;ManualC:Clean;ObjmoveD:Clean;ObjmoveC:Clean;PointtoD:Clean;PointtoC:Clean;PongD:Clean;PongC:Clean;SmoothNaviD:Clean;SmoothNaviC:Clean"/>
+        <CallTarget Targets="ColumnD:Clean;ColumnC:Clean;EventsD:Clean;EventsC:Clean;HierarchD:Clean;HierarchC:Clean;ManualD:Clean;ManualC:Clean;ObjmoveD:Clean;ObjmoveC:Clean;PointtoD:Clean;PointtoC:Clean;PongD:Clean;PongC:Clean;SmoothNaviD:Clean;SmoothNaviC:Clean;TweeningD:Clean"/>
     </Target>
     <Target Name="Make">
-        <CallTarget Targets="ColumnD:Make;ColumnC:Make;EventsD:Make;EventsC:Make;HierarchD:Make;HierarchC:Make;ManualD:Make;ManualC:Make;ObjmoveD:Make;ObjmoveC:Make;PointtoD:Make;PointtoC:Make;PongD:Make;PongC:Make;SmoothNaviD:Make;SmoothNaviC:Make"/>
+        <CallTarget Targets="ColumnD:Make;ColumnC:Make;EventsD:Make;EventsC:Make;HierarchD:Make;HierarchC:Make;ManualD:Make;ManualC:Make;ObjmoveD:Make;ObjmoveC:Make;PointtoD:Make;PointtoC:Make;PongD:Make;PongC:Make;SmoothNaviD:Make;SmoothNaviC:Make;TweeningD:Make"/>
     </Target>
     <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
 </Project>

+ 2 - 2
Examples/Demos/movements/tweening/Tweening.dpr → Examples/Demos/movements/tweening/TweeningD.dpr

@@ -8,11 +8,11 @@
 
 *)
 
-program Tweening;
+program TweeningD;
 
 uses
   Forms,
-  TweeningFm in 'TweeningFm.pas' {FormTweening};
+  fTweeningD in 'fTweeningD.pas' {FormTweening};
 
 {$R *.res}
 

+ 319 - 17
Examples/Demos/movements/tweening/Tweening.dproj → Examples/Demos/movements/tweening/TweeningD.dproj

@@ -1,13 +1,13 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
         <ProjectGuid>{0F18A1C6-C66F-4BF5-A70E-075C1B9381AD}</ProjectGuid>
-        <MainSource>Tweening.dpr</MainSource>
+        <MainSource>TweeningD.dpr</MainSource>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.0</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -52,7 +52,7 @@
         <Base>true</Base>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base)'!=''">
-        <SanitizedProjectName>Tweening</SanitizedProjectName>
+        <SanitizedProjectName>TweeningD</SanitizedProjectName>
         <VerInfo_Locale>1049</VerInfo_Locale>
         <DCC_F>false</DCC_F>
         <DCC_E>false</DCC_E>
@@ -123,13 +123,9 @@
         <DelphiCompile Include="$(MainSource)">
             <MainSource>MainSource</MainSource>
         </DelphiCompile>
-        <DCCReference Include="TweeningFm.pas">
+        <DCCReference Include="fTweeningD.pas">
             <Form>FormTweening</Form>
         </DCCReference>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -137,6 +133,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>
@@ -144,7 +144,7 @@
         <BorlandProject>
             <Delphi.Personality>
                 <Source>
-                    <Source Name="MainSource">Tweening.dpr</Source>
+                    <Source Name="MainSource">TweeningD.dpr</Source>
                 </Source>
                 <Excluded_Packages>
                     <Excluded_Packages Name="$(BDSBIN)\bcboffice2k270.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
@@ -158,9 +158,9 @@
                 <Platform value="Win64">True</Platform>
             </Platforms>
             <Deployment Version="3">
-                <DeployFile LocalName="Win32\Debug\Tweening.exe" Configuration="Debug" Class="ProjectOutput">
+                <DeployFile LocalName="Win32\Debug\TweeningD.exe" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="Win32">
-                        <RemoteName>Tweening.exe</RemoteName>
+                        <RemoteName>TweeningD.exe</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -176,6 +176,16 @@
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="AndroidClasses">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="AndroidClassesDexFile">
                     <Platform Name="Android">
                         <RemoteDir>classes</RemoteDir>
@@ -187,6 +197,10 @@
                         <RemoteDir>res\xml</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
@@ -199,6 +213,10 @@
                         <RemoteDir>library\lib\armeabi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
                     <Platform Name="Android64">
@@ -211,6 +229,10 @@
                         <RemoteDir>library\lib\mips</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidLibnativeX86File"/>
                 <DeployClass Name="AndroidServiceOutput">
@@ -218,6 +240,10 @@
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidServiceOutput_Android32">
                     <Platform Name="Android64">
@@ -230,120 +256,210 @@
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStyles">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStylesV21">
                     <Platform Name="Android">
                         <RemoteDir>res\values-v21</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Colors">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon144">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon192">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon24">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage426">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-small</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage470">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-normal</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage640">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-large</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage960">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Strings">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="DebugSymbols">
                     <Platform Name="iOSSimulator">
@@ -368,6 +484,11 @@
                         <Operation>1</Operation>
                         <Extensions>.framework</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -395,6 +516,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.dll;.bpl</Extensions>
@@ -423,6 +549,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.bpl</Extensions>
@@ -432,6 +563,9 @@
                     <Platform Name="Android">
                         <Operation>0</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="iOSDevice32">
                         <Operation>0</Operation>
                     </Platform>
@@ -449,10 +583,40 @@
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon152">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon167">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch1024">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -627,6 +791,56 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_SpotLight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon180">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_Launch1125">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -821,10 +1035,73 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification60">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting87">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectAndroidManifest">
                     <Platform Name="Android">
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
@@ -891,6 +1168,10 @@
                         <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXEntitlements">
                     <Platform Name="OSX32">
@@ -901,6 +1182,10 @@
                         <RemoteDir>..\</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
@@ -911,6 +1196,10 @@
                         <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXResource">
                     <Platform Name="OSX32">
@@ -921,12 +1210,20 @@
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Required="true" Name="ProjectOutput">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
@@ -947,6 +1244,10 @@
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -985,16 +1286,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 15 - 14
Examples/Demos/movements/tweening/TweeningFm.dfm → Examples/Demos/movements/tweening/fTweeningD.dfm

@@ -2,41 +2,42 @@ object FormTweening: TFormTweening
   Left = 325
   Top = 237
   Caption = 'Tweener'
-  ClientHeight = 482
-  ClientWidth = 716
+  ClientHeight = 624
+  ClientWidth = 792
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Height = -11
   Font.Name = 'Tahoma'
   Font.Style = []
-  OldCreateOrder = False
   Position = poScreenCenter
   OnCreate = FormCreate
-  PixelsPerInch = 96
   TextHeight = 13
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Top = 129
-    Width = 716
-    Height = 353
+    Width = 792
+    Height = 495
     Camera = GLCamera1
     Buffer.BackgroundColor = clMedGray
     Buffer.Lighting = False
-    FieldOfView = 148.366622924804700000
+    FieldOfView = 157.157623291015600000
     PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     TabOrder = 0
+    ExplicitWidth = 859
+    ExplicitHeight = 353
   end
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 716
+    Width = 792
     Height = 129
     Align = alTop
     BevelOuter = bvLowered
     TabOrder = 1
+    ExplicitWidth = 716
     object Label2: TLabel
       Left = 6
       Top = 77
@@ -162,8 +163,8 @@ object FormTweening: TFormTweening
     end
   end
   object GLScene1: TGLScene
-    Left = 544
-    Top = 8
+    Left = 24
+    Top = 146
     object GLCamera1: TGLCamera
       DepthOfView = 100.000000000000000000
       FocalLength = 50.000000000000000000
@@ -208,8 +209,8 @@ object FormTweening: TFormTweening
   end
   object GLCadencer1: TGLCadencer
     Scene = GLScene1
-    Left = 576
-    Top = 8
+    Left = 24
+    Top = 226
   end
   object GLWindowsBitmapFont1: TGLWindowsBitmapFont
     Font.Charset = DEFAULT_CHARSET
@@ -217,7 +218,7 @@ object FormTweening: TFormTweening
     Font.Height = -11
     Font.Name = 'Tahoma'
     Font.Style = []
-    Left = 608
-    Top = 8
+    Left = 160
+    Top = 146
   end
 end

+ 8 - 4
Examples/Demos/movements/tweening/TweeningFm.pas → Examples/Demos/movements/tweening/fTweeningD.pas

@@ -1,4 +1,4 @@
-unit TweeningFm;
+unit fTweeningD;
 
 interface
 
@@ -22,7 +22,7 @@ uses
   GLS.Objects,
   GLS.Coordinates,
   GLS.SceneViewer,
- 
+
   GLS.BaseClasses,
   GLS.Cadencer,
   GLS.AnimationUtils,
@@ -46,8 +46,12 @@ type
     Diff: Double;
   end;
 
-  // You can customize TAnimation for your own purpose, you can add InitialXValue for your custom data (Matrix or anything else).
-  // Note that you will maybe have to create your own Tweener function to use your custom Current/Target type.
+  (*
+     You can customize TAnimation for your own purpose,
+     you can add InitialXValue for your custom data (Matrix or anything else).
+     Note that you will maybe have to create your own Tweener function
+     to use your custom Current/Target type.
+  *)
   TAnimation = record
     State: TAnimationState;
     Time: TAnimationTime;

+ 50 - 50
Examples/Demos/sound/3DSound/SoundAroundC.cbproj

@@ -1,7 +1,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
         <ProjectGuid>{DB31B8A4-9B73-4967-BC00-C2AE52DD2FD1}</ProjectGuid>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <AppType>Application</AppType>
         <MainSource>SoundAroundC.cpp</MainSource>
@@ -121,7 +121,7 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <VerInfo_Locale>1033</VerInfo_Locale>
-        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <Defines>_DEBUG;$(Defines)</Defines>
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi;GLScene_Sounds_RT.bpi;GLScene_Sounds_RT.bpi;GLScene_Sounds_RT.bpi</LinkPackageImports>
@@ -223,53 +223,56 @@
                 </ProjectProperties>
             </CPlusPlusBuilder.Personality>
             <Deployment Version="3">
-                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin\borlndmm.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin64\borlndmm.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgcrtl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64220.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64220mt.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64230.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64230mt.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64260.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64230mt.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c280mt.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64280.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin64\borlndmm.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64280mt.dll" Class="DependencyModule">
                     <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64230.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32230mt.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c280.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin\borlndmm.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgstl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32220.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32220mt.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32230.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32230mt.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32230.dll" Class="DependencyModule"/>
-                <DeployFile LocalName=".\Win32\Debug\SoundAroundC.tds" Configuration="Debug" Class="DebugSymbols">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32260mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
-                        <RemoteName>SoundAroundC.tds</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32280.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -278,58 +281,55 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64280.dll" Class="DependencyModule">
-                    <Platform Name="Win64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgstl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64220.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64260.dll" Class="DependencyModule">
-                    <Platform Name="Win64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c280.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c260mt.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c280mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32260mt.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64220mt.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32220.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64260mt.dll" Class="DependencyModule">
-                    <Platform Name="Win64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgstl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32260.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32280.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgstl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32220mt.dll" Class="DependencyModule"/>
                 <DeployFile LocalName=".\Win32\Debug\SoundAroundC.exe" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="Win32">
                         <RemoteName>SoundAroundC.exe</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64280mt.dll" Class="DependencyModule">
-                    <Platform Name="Win64">
+                <DeployFile LocalName=".\Win32\Debug\SoundAroundC.tds" Configuration="Debug" Class="DebugSymbols">
+                    <Platform Name="Win32">
+                        <RemoteName>SoundAroundC.tds</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -1410,17 +1410,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>

+ 8 - 8
Examples/Demos/sound/3DSound/SoundAroundD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1240,17 +1240,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 48 - 93
Examples/Demos/sound/3DSound/fSoundAroundD.dfm

@@ -2,118 +2,89 @@ object FormSoundAround: TFormSoundAround
   Left = 209
   Top = 92
   Caption = 'Sound Around'
-  ClientHeight = 459
-  ClientWidth = 601
+  ClientHeight = 367
+  ClientWidth = 481
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -14
+  Font.Height = -11
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   OnCreate = FormCreate
-  PixelsPerInch = 120
-  TextHeight = 16
+  TextHeight = 13
   object GLSceneViewer: TGLSceneViewer
     Left = 0
-    Top = 91
-    Width = 601
-    Height = 334
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 73
+    Width = 481
+    Height = 267
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.AntiAliasing = aaNone
-    FieldOfView = 146.664474487304700000
+    FieldOfView = 138.934951782226600000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
   object TrackBar: TTrackBar
     Left = 0
-    Top = 425
-    Width = 601
-    Height = 34
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 340
+    Width = 481
+    Height = 27
     Align = alBottom
     Max = 180
     Min = -180
     PageSize = 45
     Frequency = 45
     TabOrder = 1
-    ThumbLength = 13
+    ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBarChange
   end
   object TrackBar1: TTrackBar
     Left = 0
-    Top = 51
-    Width = 601
-    Height = 40
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 41
+    Width = 481
+    Height = 32
     Align = alTop
     Max = 50
     Min = -50
     PageSize = 45
     Frequency = 10
     TabOrder = 2
-    ThumbLength = 13
+    ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBar1Change
   end
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 601
-    Height = 51
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 481
+    Height = 41
     Align = alTop
     BevelOuter = bvNone
     TabOrder = 3
     DesignSize = (
-      601
-      51)
+      481
+      41)
     object Label1: TLabel
-      Left = 13
-      Top = 10
-      Width = 102
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 10
+      Top = 8
+      Width = 82
+      Height = 13
       Caption = 'Sound Manager :'
     end
     object LabelFPS: TLabel
-      Left = 13
-      Top = 34
-      Width = 26
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 10
+      Top = 27
+      Width = 20
+      Height = 13
       Caption = 'FPS'
     end
     object RBBass: TRadioButton
-      Left = 123
-      Top = 8
-      Width = 71
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 98
+      Top = 6
+      Width = 57
+      Height = 17
       Caption = 'BASS'
       Checked = True
       TabOrder = 0
@@ -121,55 +92,39 @@ object FormSoundAround: TFormSoundAround
       OnClick = RBFMODClick
     end
     object RBFMOD: TRadioButton
-      Left = 201
-      Top = 8
-      Width = 72
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 161
+      Top = 6
+      Width = 57
+      Height = 17
       Caption = 'FMOD'
       TabOrder = 1
       OnClick = RBFMODClick
     end
     object Button1: TButton
-      Left = 488
-      Top = 3
-      Width = 103
-      Height = 31
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 390
+      Top = 2
+      Width = 83
+      Height = 25
       Anchors = [akTop, akRight]
       Caption = 'Chimes (WAV)'
       TabOrder = 2
       OnClick = Button1Click
     end
     object btnHowl: TButton
-      Left = 376
-      Top = 3
-      Width = 104
-      Height = 31
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 301
+      Top = 2
+      Width = 83
+      Height = 25
       Anchors = [akTop, akRight]
       Caption = 'Howl (MP3)'
       TabOrder = 3
       OnClick = btnHowlClick
     end
     object RBOpenAL: TRadioButton
-      Left = 280
-      Top = 8
-      Width = 81
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 224
+      Top = 6
+      Width = 65
+      Height = 17
       Caption = 'OpenAL'
       TabOrder = 4
       OnClick = RBFMODClick

+ 8 - 8
Examples/Demos/sound/3DSoundBASS/SoundBASS.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1241,17 +1241,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 35 - 63
Examples/Demos/sound/3DSoundBASS/fSoundBASS.dfm

@@ -2,121 +2,93 @@ object FormSoundBASS: TFormSoundBASS
   Left = 209
   Top = 92
   Caption = 'Sound BASS'
-  ClientHeight = 434
-  ClientWidth = 594
+  ClientHeight = 407
+  ClientWidth = 536
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -14
+  Font.Height = -11
   Font.Name = 'MS Sans Serif'
   Font.Style = []
+  Position = poScreenCenter
   OnCreate = FormCreate
-  PixelsPerInch = 120
-  TextHeight = 16
+  TextHeight = 13
   object GLSceneViewer: TGLSceneViewer
     Left = 0
-    Top = 83
-    Width = 594
-    Height = 317
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 66
+    Width = 536
+    Height = 314
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.AntiAliasing = aaNone
-    FieldOfView = 144.983474731445300000
+    FieldOfView = 144.669631958007800000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
   object TrackBar: TTrackBar
     Left = 0
-    Top = 400
-    Width = 594
-    Height = 34
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 380
+    Width = 536
+    Height = 27
     Align = alBottom
     Max = 180
     Min = -180
     PageSize = 45
     Frequency = 45
     TabOrder = 1
-    ThumbLength = 13
+    ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBarChange
   end
   object TrackBar1: TTrackBar
     Left = 0
-    Top = 41
-    Width = 594
-    Height = 42
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Top = 33
+    Width = 536
+    Height = 33
     Align = alTop
     Max = 50
     Min = -50
     PageSize = 45
     Frequency = 10
     TabOrder = 2
-    ThumbLength = 13
+    ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBar1Change
   end
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 594
-    Height = 41
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 536
+    Height = 33
     Align = alTop
     BevelOuter = bvNone
     TabOrder = 3
     DesignSize = (
-      594
-      41)
+      536
+      33)
     object LabelFPS: TLabel
-      Left = 30
-      Top = 9
-      Width = 26
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 24
+      Top = 7
+      Width = 20
+      Height = 13
       Caption = 'FPS'
     end
-    object Button1: TButton
-      Left = 480
-      Top = 5
-      Width = 104
-      Height = 31
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+    object btnChimes: TButton
+      Left = 445
+      Top = 4
+      Width = 83
+      Height = 25
       Anchors = [akTop, akRight]
       Caption = 'Chimes (WAV)'
       TabOrder = 0
-      OnClick = Button1Click
+      OnClick = btnChimesClick
     end
     object btnHowl: TButton
-      Left = 369
-      Top = 3
-      Width = 104
-      Height = 31
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 356
+      Top = 2
+      Width = 83
+      Height = 25
       Anchors = [akTop, akRight]
       Caption = 'Howl (MP3)'
       TabOrder = 1

+ 3 - 3
Examples/Demos/sound/3DSoundBASS/fSoundBASS.pas

@@ -50,7 +50,7 @@ type
     Torus1: TGLTorus;
     TrackBar1: TTrackBar;
     Panel1: TPanel;
-    Button1: TButton;
+    btnChimes: TButton;
     btnHowl: TButton;
     LabelFPS: TLabel;
     procedure SphereProgress(Sender: TObject; const deltaTime, newTime: Double);
@@ -58,7 +58,7 @@ type
     procedure TrackBarChange(Sender: TObject);
     procedure TrackBar1Change(Sender: TObject);
     procedure FormCreate(Sender: TObject);
-    procedure Button1Click(Sender: TObject);
+    procedure btnChimesClick(Sender: TObject);
     procedure btnHowlClick(Sender: TObject);
   private
 
@@ -125,7 +125,7 @@ begin
   GLSceneViewer.ResetPerformanceMonitor;
 end;
 
-procedure TFormSoundBASS.Button1Click(Sender: TObject);
+procedure TFormSoundBASS.btnChimesClick(Sender: TObject);
 begin
   with TGLBSoundEmitter.Create(Sphere.Behaviours) do
   begin

+ 2 - 2
Examples/Demos/sound/3DSoundFMOD/SoundFMOD.dpr

@@ -42,12 +42,12 @@ program SoundFMOD;
 
 uses
   Forms,
-  fSoundFMOD in 'fSoundFMOD.pas' {FormSoundFMOF};
+  fSoundFMOD in 'fSoundFMOD.pas' {FormSoundFMOD};
 
 {$R *.RES}
 
 begin
   Application.Initialize;
-  Application.CreateForm(TFormSoundFMOF, FormSoundFMOF);
+  Application.CreateForm(TFormSoundFMOD, FormSoundFMOD);
   Application.Run;
 end.

+ 9 - 9
Examples/Demos/sound/3DSoundFMOD/SoundFMOD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -123,7 +123,7 @@
             <MainSource>MainSource</MainSource>
         </DelphiCompile>
         <DCCReference Include="fSoundFMOD.pas">
-            <Form>FormSoundFMOF</Form>
+            <Form>FormSoundFMOD</Form>
         </DCCReference>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
@@ -1240,17 +1240,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 13 - 15
Examples/Demos/sound/3DSoundFMOD/fSoundFMOD.dfm

@@ -1,36 +1,34 @@
-object FormSoundFMOF: TFormSoundFMOF
+object FormSoundFMOD: TFormSoundFMOD
   Left = 209
   Top = 92
   Caption = 'Sound FMOD'
-  ClientHeight = 347
-  ClientWidth = 475
+  ClientHeight = 373
+  ClientWidth = 538
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Height = -11
   Font.Name = 'MS Sans Serif'
   Font.Style = []
-  OldCreateOrder = False
   OnCreate = FormCreate
-  PixelsPerInch = 96
   TextHeight = 13
   object GLSceneViewer: TGLSceneViewer
     Left = 0
     Top = 66
-    Width = 475
-    Height = 254
+    Width = 538
+    Height = 280
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.AntiAliasing = aaNone
-    FieldOfView = 137.020797729492200000
+    FieldOfView = 140.692352294921900000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
   object TrackBar: TTrackBar
     Left = 0
-    Top = 320
-    Width = 475
+    Top = 346
+    Width = 538
     Height = 27
     Align = alBottom
     Max = 180
@@ -45,7 +43,7 @@ object FormSoundFMOF: TFormSoundFMOF
   object TrackBar1: TTrackBar
     Left = 0
     Top = 33
-    Width = 475
+    Width = 538
     Height = 33
     Align = alTop
     Max = 50
@@ -60,13 +58,13 @@ object FormSoundFMOF: TFormSoundFMOF
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 475
+    Width = 538
     Height = 33
     Align = alTop
     BevelOuter = bvNone
     TabOrder = 3
     DesignSize = (
-      475
+      538
       33)
     object LabelFPS: TLabel
       Left = 8
@@ -76,7 +74,7 @@ object FormSoundFMOF: TFormSoundFMOF
       Caption = 'FPS'
     end
     object Button1: TButton
-      Left = 384
+      Left = 447
       Top = 4
       Width = 83
       Height = 25
@@ -86,7 +84,7 @@ object FormSoundFMOF: TFormSoundFMOF
       OnClick = Button1Click
     end
     object btnHowl: TButton
-      Left = 295
+      Left = 358
       Top = 4
       Width = 83
       Height = 25

+ 53 - 53
Examples/Demos/sound/3DSoundFMOD/fSoundFMOD.pas

@@ -20,7 +20,7 @@ uses
   Sounds.FMOD,
   GLS.SceneViewer,
   GLS.GeomObjects,
- 
+
   GLS.Coordinates,
   GLS.BaseClasses,
   GLS.FileWAV,
@@ -28,9 +28,8 @@ uses
   GLS.VectorGeometry,
   GLS.Utils;
 
-
 type
-  TFormSoundFMOF = class(TForm)
+  TFormSoundFMOD = class(TForm)
     GLScene: TGLScene;
     GLSceneViewer: TGLSceneViewer;
     GLCamera1: TGLCamera;
@@ -54,8 +53,7 @@ type
     Button1: TButton;
     btnHowl: TButton;
     LabelFPS: TLabel;
-    procedure SphereProgress(Sender: TObject; const deltaTime,
-      newTime: Double);
+    procedure SphereProgress(Sender: TObject; const deltaTime, newTime: Double);
     procedure TimerTimer(Sender: TObject);
     procedure TrackBarChange(Sender: TObject);
     procedure TrackBar1Change(Sender: TObject);
@@ -63,85 +61,87 @@ type
     procedure Button1Click(Sender: TObject);
     procedure btnHowlClick(Sender: TObject);
   private
-     
+
   public
-     
+
   end;
 
 var
-  FormSoundFMOF: TFormSoundFMOF;
+  FormSoundFMOD: TFormSoundFMOD;
 
 implementation
 
 {$R *.DFM}
 
-procedure TFormSoundFMOF.FormCreate(Sender: TObject);
+procedure TFormSoundFMOD.FormCreate(Sender: TObject);
 begin
-   var Path: TFileName := GetCurrentAssetPath();
-   SetCurrentDir(Path  + '\audio');
+  var Path: TFileName := GetCurrentAssetPath();
+  SetCurrentDir(Path + '\audio');
 
-   // Load our sound sample
-   GLSoundLibrary.Samples.AddFile('drumloop.wav','drumloop.wav');
-   GLSoundLibrary.Samples.AddFile('chimes.wav','chimes.wav');
-   GLSoundLibrary.Samples.AddFile('howl.mp3','howl.mp3');
+  // Load our sound sample
+  GLSoundLibrary.Samples.AddFile('drumloop.wav', 'drumloop.wav');
+  GLSoundLibrary.Samples.AddFile('chimes.wav', 'chimes.wav');
+  GLSoundLibrary.Samples.AddFile('howl.mp3', 'howl.mp3');
 end;
 
-procedure TFormSoundFMOF.SphereProgress(Sender: TObject; const deltaTime,
-  newTime: Double);
+procedure TFormSoundFMOD.SphereProgress(Sender: TObject; const deltaTime, newTime: Double);
 var
-   alpha : Single;
+  alpha: Single;
 begin
-   // Move the red sphere (sound source) along an elliptic path
-   alpha:=60*DegToRad(newTime);
-   TGLSphere(Sender).Position.SetPoint(sin(alpha)*2, 0.5, cos(alpha)*5);
+  // Move the red sphere (sound source) along an elliptic path
+  alpha := 60 * DegToRad(newTime);
+  TGLSphere(Sender).Position.SetPoint(sin(alpha) * 2, 0.5, cos(alpha) * 5);
 end;
 
-procedure TFormSoundFMOF.TrackBarChange(Sender: TObject);
+procedure TFormSoundFMOD.TrackBarChange(Sender: TObject);
 begin
-   // Rotate the listener around the vertical axis
-   DummyCube.TurnAngle:=TrackBar.Position;
-   Application.ProcessMessages;
+  // Rotate the listener around the vertical axis
+  DummyCube.TurnAngle := TrackBar.Position;
+  Application.ProcessMessages;
 end;
 
-procedure TFormSoundFMOF.TrackBar1Change(Sender: TObject);
+procedure TFormSoundFMOD.TrackBar1Change(Sender: TObject);
 begin
-   // Move the listener forward/back
-   Mickey.Position.Z:=TrackBar1.Position/10;
-   Application.ProcessMessages;
+  // Move the listener forward/back
+  Mickey.Position.Z := TrackBar1.Position / 10;
+  Application.ProcessMessages;
 end;
 
-procedure TFormSoundFMOF.TimerTimer(Sender: TObject);
+procedure TFormSoundFMOD.TimerTimer(Sender: TObject);
 var
-   mngName : String;
+  mngName: String;
 begin
-   // some stats
-   if ActiveSoundManager is TGLSMFMOD then
-      mngName:='FMOD'
-   else mngName:='';
-   if ActiveSoundManager<>nil then
-      LabelFPS.Caption:=Format('%.2f FPS, %s CPU use : %.2f%%',
-                      [GLSceneViewer.FramesPerSecond, mngName,
-                       ActiveSoundManager.CPUUsagePercent])
-   else LabelFPS.Caption:='No active sound manager.';
-   GLSceneViewer.ResetPerformanceMonitor;
+  // some stats
+  if ActiveSoundManager is TGLSMFMOD then
+    mngName := 'FMOD'
+  else
+    mngName := '';
+  if ActiveSoundManager <> nil then
+    LabelFPS.Caption := Format('%.2f FPS, %s CPU use : %.2f%%',
+      [GLSceneViewer.FramesPerSecond, mngName, ActiveSoundManager.CPUUsagePercent])
+  else
+    LabelFPS.Caption := 'No active sound manager.';
+  GLSceneViewer.ResetPerformanceMonitor;
 end;
 
-procedure TFormSoundFMOF.Button1Click(Sender: TObject);
+procedure TFormSoundFMOD.Button1Click(Sender: TObject);
 begin
-   with TGLBSoundEmitter.Create(Sphere.Behaviours) do begin
-      Source.SoundLibrary:=GLSoundLibrary;
-      Source.SoundName:='chimes.wav';
-      Playing:=True;
-   end;
+  with TGLBSoundEmitter.Create(Sphere.Behaviours) do
+  begin
+    Source.SoundLibrary := GLSoundLibrary;
+    Source.SoundName := 'chimes.wav';
+    Playing := True;
+  end;
 end;
 
-procedure TFormSoundFMOF.btnHowlClick(Sender: TObject);
+procedure TFormSoundFMOD.btnHowlClick(Sender: TObject);
 begin
-   with TGLBSoundEmitter.Create(Sphere.Behaviours) do begin
-      Source.SoundLibrary:=GLSoundLibrary;
-      Source.SoundName:='howl.mp3';
-      Playing:=True;
-   end;       
+  with TGLBSoundEmitter.Create(Sphere.Behaviours) do
+  begin
+    Source.SoundLibrary := GLSoundLibrary;
+    Source.SoundName := 'howl.mp3';
+    Playing := True;
+  end;
 end;
 
 end.

+ 8 - 8
Examples/Demos/sound/3DSoundOpenAL/SoundOpenAL.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1240,17 +1240,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 8 - 8
Examples/Demos/sound/3DSoundWaveOut/SoundWaveOut.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1241,17 +1241,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 1 - 1
Examples/Demos/specialsFX/shadowvolumes/fShadowVolumesD.pas

@@ -131,7 +131,7 @@ begin
           GLShadowVolume.Occluders.AddCaster(sphere, 0, scmParentVisible);
         end;
   DCSpheres.MoveTo(GLShadowVolume);
-  GLFreeForm.LoadFromFile('trinityrage.smd');
+  GLFreeForm.LoadFromFile('trinityrage.smd'); //with chrome_glass.bmp & chrome_buckle.bmp
   GLFreeForm.BuildSilhouetteConnectivityData;
   GLShadowVolume.Occluders.AddCaster(GLFreeForm);
   CBBlueLightClick(Self);

+ 1 - 8
Source/GLS.AnimationUtils.pas

@@ -1,10 +1,9 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.AnimationUtils;
 
-(* Main purpose is to give an easy way to create an interpolation. *)
+(* Main purpose is to give an easy way to create a linear interpolation *)
 
 interface
 
@@ -600,8 +599,6 @@ begin
   end;
 end;
 
-
-
 (*
    Easing equation function for an elastic (exponentially decaying sine wave) easing out: decelerating from zero velocity.
  
@@ -671,8 +668,6 @@ begin
   end;
 end;
 
-
-
 (*
    Easing equation function for an elastic (exponentially decaying sine wave) easing out/in: deceleration until halfway, then acceleration.
  
@@ -774,8 +769,6 @@ begin
     Result := easeInBack((t*2)-d, b+c/2, c/2, d);
 end;
 
-
-
 (*
    Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity.