瀏覽代碼

Added guidegls.pdf

glscene 1 年之前
父節點
當前提交
3f3f7a2528
共有 57 個文件被更改,包括 3385 次插入591 次删除
  1. 1 3
      Examples/AdvDemos/Earth/EarthD.dpr
  2. 11 11
      Examples/AdvDemos/Earth/fEarthD.dfm
  3. 2 1
      Examples/AdvDemos/Earth/fEarthD.pas
  4. 29 1
      Examples/AdvDemos/GLSViewer/Source/dImages.dfm
  5. 5 2
      Examples/AdvDemos/GLSViewer/Source/dImages.pas
  6. 0 2
      Examples/AdvDemos/GLSViewer/Source/fGLOptions.dfm
  7. 1 32
      Examples/AdvDemos/GLSViewer/Source/fGLSViewer.dfm
  8. 83 38
      Examples/AdvDemos/GLSViewer/Source/fGLSViewer.pas
  9. 4 3
      Examples/Demos/extrusion/ExtrusionC.cbproj
  10. 1249 0
      Examples/Demos/materials/MaterialsC.cbproj
  11. 35 0
      Examples/Demos/materials/MaterialsC.cpp
  12. 46 0
      Examples/Demos/materials/MaterialsD.dpr
  13. 1183 0
      Examples/Demos/materials/MaterialsD.dproj
  14. 0 1
      Examples/Demos/materials/TransparAdv/fTransparAdvD.pas
  15. 1 1
      Examples/Demos/materials/cubemap/CubemapD.dpr
  16. 5 0
      Examples/Demos/materials/cubemap/CubemapD.dproj
  17. 4 1
      Examples/Demos/materials/cubemap/fCubemapD.dfm
  18. 2 14
      Examples/Demos/materials/cubemap/fCubemapD.pas
  19. 16 7
      Examples/Demos/materials/dynamictexture/fDynTextureD.dfm
  20. 3 1
      Examples/Demos/materials/dynamictexture/fDynTextureD.pas
  21. 0 8
      Examples/Demos/materials/dyncubemap/fDynCubemapD.pas
  22. 16 0
      Examples/Demos/materials/fcMaterials.cpp
  23. 64 0
      Examples/Demos/materials/fcMaterials.dfm
  24. 23 0
      Examples/Demos/materials/fcMaterials.h
  25. 66 0
      Examples/Demos/materials/fdMaterials.dfm
  26. 204 0
      Examples/Demos/materials/fdMaterials.pas
  27. 25 21
      Examples/Demos/materials/multipass/fMultiPassD.dfm
  28. 5 5
      Examples/Demos/materials/multipass/fMultiPassD.pas
  29. 90 86
      Examples/Demos/materials/transparency/fTransparencyD.dfm
  30. 8 8
      Examples/Demos/materials/transparency/fTransparencyD.pas
  31. 5 5
      Examples/Demos/movements/MovementsC.cbproj
  32. 47 0
      Examples/Demos/specialsFX/Atmosphere/AtmosphereC.cbproj
  33. 127 62
      Examples/Demos/specialsFX/Atmosphere/fAtmosphereD.dfm
  34. 1 0
      Examples/_cleanexamples.cmd
  35. 0 2
      Help/#IDH/IdhFiles.txt
  36. 0 13
      Help/#IDH/Idh_Main.h
  37. 0 4
      Help/#IDH/Idh_Popup.h
  38. 0 12
      Help/GLSGuide/GLSGuide.hhc
  39. 0 9
      Help/GLSGuide/GLSGuide.hhk
  40. 0 29
      Help/GLSGuide/GLSGuide.hhp
  41. 0 187
      Help/GLSGuide/Introduction/Introduction.htm
  42. 二進制
      Help/GuideGLS.pdf
  43. 二進制
      Help/GuideGLS_ru.pdf
  44. 0 0
      Help/Installation_ru.pdf
  45. 3 3
      Packages/GLScene_RT.dproj
  46. 1 3
      Source/FmInfo.dfm
  47. 6 6
      Source/GLS.Atmosphere.pas
  48. 5 3
      Source/GLS.Coordinates.pas
  49. 1 1
      Source/GLS.FileSTL.pas
  50. 1 0
      Source/GLS.Particles.pas
  51. 1 1
      Source/GLS.Scene.pas
  52. 1 1
      Source/Physics.SPIFields.pas
  53. 1 1
      Source/Physics.SPIForces.pas
  54. 1 1
      Source/Physics.SPIInertias.pas
  55. 1 1
      Source/Physics.SPIJoints.pas
  56. 1 1
      Source/Physics.SPIManager.pas
  57. 1 0
      _cleandebug.cmd

+ 1 - 3
Examples/AdvDemos/Earth/EarthD.dpr

@@ -1,11 +1,9 @@
 (*
   "Earth"
-   See accompanying Readme.txt for user instructions.
    The atmospheric effect is rendered in GLDirectOpenGL1Render, which essentially
    renders a disk, with color of the vertices computed via ray-tracing. Not that
    the tesselation of the disk has been hand-optimized so as to reduce CPU use
-   while retaining quality. On anything >1 GHz, the rendering is fill-rate
-   limited on a GeForce 4 Ti 4200.
+   while retaining quality.
    Stars support is built into the TGLSkyDome, but constellations are rendered
    via a TGLLines, which is filled in the LoadConstellationLines method.
 *)

+ 11 - 11
Examples/AdvDemos/Earth/fEarthD.dfm

@@ -136,6 +136,16 @@ object FormEarth: TFormEarth
         Options = []
       end
     end
+    object LightSourceSun: TGLLightSource
+      ConstAttenuation = 1.000000000000000000
+      Position.Coordinates = {00D0044600D00446000000000000803F}
+      Specular.Color = {0000803F0000803F0000803F0000803F}
+      SpotCutOff = 180.000000000000000000
+      object LensFlareSun: TGLLensFlare
+        Seed = 1465
+        FlareIsNotOccluded = True
+      end
+    end
     object dcEarth: TGLDummyCube
       ObjectsSorting = osNone
       CubeSize = 1.000000000000000000
@@ -405,16 +415,6 @@ object FormEarth: TFormEarth
       Direction.Coordinates = {0000803F000000000000008000000000}
       Up.Coordinates = {00000000000000000000803F00000000}
     end
-    object LightSourceSun: TGLLightSource
-      ConstAttenuation = 1.000000000000000000
-      Position.Coordinates = {00D0044600D00446000000000000803F}
-      Specular.Color = {0000803F0000803F0000803F0000803F}
-      SpotCutOff = 180.000000000000000000
-      object LensFlareSun: TGLLensFlare
-        Seed = 1465
-        FlareIsNotOccluded = True
-      end
-    end
   end
   object GLCadencer: TGLCadencer
     Scene = GLScene
@@ -64897,7 +64897,7 @@ object FormEarth: TFormEarth
       item
         CollectionIndex = 11
         CollectionName = 'Planet'
-        Name = 'Planet'
+        Name = 'Planetoid'
       end>
     ImageCollection = PlanetSymbols
     Width = 32

+ 2 - 1
Examples/AdvDemos/Earth/fEarthD.pas

@@ -44,7 +44,8 @@ uses
   Vcl.BaseImageCollection,
   Vcl.ImageCollection,
   Vcl.ImgList,
-  Vcl.VirtualImageList, GLS.GeomObjects;
+  Vcl.VirtualImageList,
+  GLS.GeomObjects;
 
 type
   TFormEarth = class(TForm)

+ 29 - 1
Examples/AdvDemos/GLSViewer/Source/dImages.dfm

@@ -27632,7 +27632,7 @@ object dmImages: TdmImages
     Left = 360
     Top = 26
   end
-  object ImageListObjects: TImageList
+  object ImageListGLS: TImageList
     Left = 352
     Top = 144
     Bitmap = {
@@ -30943,4 +30943,32 @@ object dmImages: TdmImages
       C0FFF80FFFFF8001FFFFFC0FFFFFFFFF00000000000000000000000000000000
       000000000000}
   end
+  object MaterialLib: TGLMaterialLibrary
+    Left = 590
+    Top = 34
+  end
+  object MLTree: TGLMaterialLibrary
+    Materials = <
+      item
+        Name = 'TreeBark'
+        Tag = 0
+        Material.Texture.ImageClassName = 'TGLPicFileImage'
+        Material.Texture.TextureWrap = twVertical
+      end
+      item
+        Name = 'LeafTexture'
+        Tag = 0
+        Material.Texture.ImageClassName = 'TGLPicFileImage'
+        Material.Texture.Image.PictureFileName = '..\..\..\Texture\leaf.tga'
+      end
+      item
+        Name = 'FruitTexture'
+        Tag = 0
+        Material.Texture.ImageAlpha = tiaSuperBlackTransparent
+        Material.Texture.TextureMode = tmModulate
+        Material.Texture.TextureWrap = twNone
+      end>
+    Left = 586
+    Top = 164
+  end
 end

+ 5 - 2
Examples/AdvDemos/GLSViewer/Source/dImages.pas

@@ -15,16 +15,19 @@ uses
   System.ImageList,
   Vcl.ImgList,
   Vcl.VirtualImageList,
+  Vcl.Controls,
 
   GLS.BaseClasses,
-  GLS.Material, Vcl.Controls;
+  GLS.Material;
 
 type
   TdmImages = class(TDataModule)
     VirtualImageList: TVirtualImageList;
     ImageCollection: TImageCollection;
     LightmapLib: TGLMaterialLibrary;
-    ImageListObjects: TImageList;
+    ImageListGLS: TImageList;
+    MaterialLib: TGLMaterialLibrary;
+    MLTree: TGLMaterialLibrary;
   private
 
   public

+ 0 - 2
Examples/AdvDemos/GLSViewer/Source/fGLOptions.dfm

@@ -7,8 +7,6 @@ inherited FormOptions: TFormOptions
   StyleElements = [seFont, seClient, seBorder]
   OnClick = rgLanguageClick
   OnClose = FormClose
-  ExplicitLeft = 4
-  ExplicitTop = 4
   ExplicitWidth = 476
   ExplicitHeight = 352
   TextHeight = 25

+ 1 - 32
Examples/AdvDemos/GLSViewer/Source/fGLSViewer.dfm

@@ -317,7 +317,7 @@ object FormGLSViewer: TFormGLSViewer
       Margins.Right = 5
       Margins.Bottom = 5
       Align = alClient
-      Images = dmImages.ImageListObjects
+      Images = dmImages.ImageListGLS
       Indent = 33
       ParentShowHint = False
       ShowHint = True
@@ -563,7 +563,6 @@ object FormGLSViewer: TFormGLSViewer
       Direction.Coordinates = {000000000000803F0000008000000000}
       Up.Coordinates = {00000000000000000000803F00000000}
       AutoCentering = [macCenterX, macCenterY, macCenterZ, macUseBarycenter]
-      MaterialLibrary = MaterialLib
     end
     object dcAxis: TGLDummyCube
       Direction.Coordinates = {000000000000803F0000000000000000}
@@ -713,18 +712,12 @@ object FormGLSViewer: TFormGLSViewer
         AutoCenter = False
         AutoRebuild = True
         CenterBranchConstant = 0.500000000000000000
-        MaterialLibrary = MLTree
         LeafMaterialName = 'LeafFront'
         LeafBackMaterialName = 'LeafBack'
         BranchMaterialName = 'TreeBark'
       end
     end
   end
-  object MaterialLib: TGLMaterialLibrary
-    OnTextureNeeded = MaterialLibTextureNeeded
-    Left = 296
-    Top = 544
-  end
   object Cadencer: TGLCadencer
     Scene = Scene
     Enabled = False
@@ -2619,28 +2612,4 @@ object FormGLSViewer: TFormGLSViewer
     Left = 552
     Top = 278
   end
-  object MLTree: TGLMaterialLibrary
-    Materials = <
-      item
-        Name = 'TreeBark'
-        Tag = 0
-        Material.Texture.ImageClassName = 'TGLPicFileImage'
-        Material.Texture.TextureWrap = twVertical
-      end
-      item
-        Name = 'LeafTexture'
-        Tag = 0
-        Material.Texture.ImageClassName = 'TGLPicFileImage'
-        Material.Texture.Image.PictureFileName = '..\..\..\Texture\leaf.tga'
-      end
-      item
-        Name = 'FruitTexture'
-        Tag = 0
-        Material.Texture.ImageAlpha = tiaSuperBlackTransparent
-        Material.Texture.TextureMode = tmModulate
-        Material.Texture.TextureWrap = twNone
-      end>
-    Left = 554
-    Top = 498
-  end
 end

+ 83 - 38
Examples/AdvDemos/GLSViewer/Source/fGLSViewer.pas

@@ -84,7 +84,6 @@ type
     Scene: TGLScene;
     ffObject: TGLFreeForm;
     LightSource: TGLLightSource;
-    MaterialLib: TGLMaterialLibrary;
     CubeLines: TGLCube;
     dcObject: TGLDummyCube;
     Camera: TGLCamera;
@@ -158,7 +157,6 @@ type
     Torus: TGLTorus;
     Teapot: TGLTeapot;
     Tree: TGLTree;
-    MLTree: TGLMaterialLibrary;
     acClear: TAction;
     acLandscape: TAction;
     acRoom: TAction;
@@ -249,6 +247,8 @@ type
     RevolutionSolid: TGLRevolutionSolid;
     ExtrusionSolid: TGLExtrusionSolid;
 
+    Actor: TGLActor;
+
     procedure DoResetCamera;
     procedure SetupFreeFormShading;
     procedure ApplyShadeModeToMaterial(aMaterial: TGLMaterial);
@@ -353,7 +353,7 @@ begin
   end;
 end;
 
-//---------------------------------------------------------------------------
+//---------------------------------------------------------------
 procedure TFormGLSViewer.FormCreate(Sender: TObject);
 begin
   AssetPath := GetCurrentAssetPath();
@@ -374,6 +374,7 @@ begin
   inherited;
 end;
 
+//---------------------------------------------------------------
 procedure TFormGLSViewer.FormShow(Sender: TObject);
 begin
   if not nthShow then
@@ -391,9 +392,7 @@ begin
   end;
 end;
 
-//---------------------------------------------------------------------------
-// OpenDialog
-//---------------------------------------------------------------------------
+//---------------------------------------------------------------
 procedure TFormGLSViewer.acFileOpenExecute(Sender: TObject);
 begin
   NaviCube.ActiveMouse := False;
@@ -401,29 +400,30 @@ begin
     DoOpen(dmDialogs.OpenDialog.FileName);
 end;
 
+//---------------------------------------------------------------
 procedure TFormGLSViewer.acFileOpenTexLibExecute(Sender: TObject);
 var
   I: Integer;
 begin
   dmDialogs.ODTextures.InitialDir := AssetPath + '\texture';;
   if dmDialogs.ODTextures.Execute then
-    with MaterialLib do
-    begin
-      LoadFromFile(dmDialogs.ODTextures.FileName);
-      for I := 0 to Materials.Count - 1 do
-        with Materials[I].Material do
-          BackProperties.Assign(FrontProperties);
-      ApplyShadeMode;
-      ApplyTexturing;
-    end;
+  begin
+    dmImages.MaterialLib.LoadFromFile(dmDialogs.ODTextures.FileName);
+    for I := 0 to dmImages.MaterialLib.Materials.Count - 1 do
+      with dmImages.MaterialLib.Materials[I].Material do
+        BackProperties.Assign(FrontProperties);
+    ApplyShadeMode;
+    ApplyTexturing;
+  end;
 end;
 
+//---------------------------------------------------------------
 procedure TFormGLSViewer.acFilePickExecute(Sender: TObject);
 begin
   dmDialogs.ODTextures.InitialDir := AssetPath + '\texture';;
   if dmDialogs.opDialog.Execute then
   begin
-    with MaterialLib.Materials do
+    with dmImages.MaterialLib.Materials do
     begin
       with Items[Count - 1] do
       begin
@@ -436,6 +436,7 @@ begin
   end;
 end;
 
+//---------------------------------------------------------------
 procedure TFormGLSViewer.acFileSaveAsExecute(Sender: TObject);
 var
   ext: String;
@@ -450,7 +451,7 @@ begin
         (dmDialogs.SaveDialog.FilterIndex, False, True));
     if GetVectorFileFormats.FindFromFileName(dmDialogs.SaveDialog.FileName) = nil
     then
-      ShowMessage(_('Unsupported or unspecified file extension.'))
+      ShowMessage(_('Unsupported file extension'))
     else
       ffObject.SaveToFile(dmDialogs.SaveDialog.FileName);
   end;
@@ -459,7 +460,7 @@ end;
 procedure TFormGLSViewer.acFileSaveTexturesExecute(Sender: TObject);
 begin
   if dmDialogs.SDTextures.Execute then
-    MaterialLib.SaveToFile(dmDialogs.SDTextures.FileName);
+    dmImages.MaterialLib.SaveToFile(dmDialogs.SDTextures.FileName);
 end;
 
 procedure TFormGLSViewer.snViewerBeforeRender(Sender: TObject);
@@ -549,7 +550,7 @@ procedure TFormGLSViewer.ApplyShadeMode;
 var
   I: Integer;
 begin
-  with MaterialLib.Materials do
+  with dmImages.MaterialLib.Materials do
     for I := 0 to Count - 1 do
     begin
       ApplyShadeModeToMaterial(Items[I].Material);
@@ -623,7 +624,7 @@ procedure TFormGLSViewer.ApplyTexturing;
 var
   I: Integer;
 begin
-  with MaterialLib.Materials do
+  with dmImages.MaterialLib.Materials do
     for I := 0 to Count - 1 do
     begin
       with Items[I].Material.Texture do
@@ -636,7 +637,7 @@ begin
   ffObject.StructureChanged;
 end;
 
-//--------------------------------------------------------------------------
+//--------------------------------------------------------
 procedure TFormGLSViewer.AsyncTimerTimer(Sender: TObject);
 begin
   snViewer.ResetPerformanceMonitor;
@@ -662,15 +663,15 @@ var
   I: Integer;
   LibMat: TGLLibMaterial;
 begin
-  if MaterialLib.Materials.Count = 0 then
+  if dmImages.MaterialLib.Materials.Count = 0 then
   begin
-    ffObject.Material.MaterialLibrary := MaterialLib;
-    LibMat := MaterialLib.Materials.Add;
+    ffObject.Material.MaterialLibrary := dmImages.MaterialLib;
+    LibMat := dmImages.MaterialLib.Materials.Add;
     ffObject.Material.LibMaterialName := LibMat.Name;
     LibMat.Material.FrontProperties.Diffuse.Red := 0;
   end;
-  for I := 0 to MaterialLib.Materials.Count - 1 do
-    with MaterialLib.Materials[I].Material do
+  for I := 0 to dmImages.MaterialLib.Materials.Count - 1 do
+    with dmImages.MaterialLib.Materials[I].Material do
       BackProperties.Assign(FrontProperties);
   ApplyShadeMode;
   ApplyTexturing;
@@ -686,12 +687,12 @@ begin
     Exit;
   Screen.Cursor := crHourGlass;
   FormGLSViewer.Caption := 'GLSViewer - ' + FileName;
-  MaterialLib.Materials.Clear;
+  dmImages.MaterialLib.Materials.Clear;
   ffObject.MeshObjects.Clear;
   ffObject.LoadFromFile(FileName);
   SetupFreeFormShading;
-  acFileSaveTextures.Enabled := (MaterialLib.Materials.Count > 0);
-  acFileOpenTexLib.Enabled := (MaterialLib.Materials.Count > 0);
+  acFileSaveTextures.Enabled := (dmImages.MaterialLib.Materials.Count > 0);
+  acFileOpenTexLib.Enabled := (dmImages.MaterialLib.Materials.Count > 0);
   lastFileName := FileName;
   lastLoadWithTextures := acToolsTexturing.Enabled;
   ffObject.GetExtents(min, max);
@@ -892,7 +893,7 @@ begin
   finally
     v.Free;
   end;
-  MaterialLib.Materials.Clear;
+  dmImages.MaterialLib.Materials.Clear;
   SetupFreeFormShading;
 end;
 
@@ -1170,6 +1171,10 @@ end;
 procedure TFormGLSViewer.tvSceneClick(Sender: TObject);
 var
   I: Integer;
+  pos1, pos2: TGLVector;
+
+const
+  Nlines = 1000;
 begin
   dcObject.DeleteChildren;
 
@@ -1185,10 +1190,16 @@ begin
       acPointsExecute(Sender);
     end;
     5: //Lines
+    for i := 0 to Nlines - 1 do
     begin
-      // RandomFrom([100])
       Lines := TGLLines.CreateAsChild(dcObject);
-      Lines.Material.FrontProperties.Diffuse.RandomColor();
+      SetVector(pos1, Random()-0.5, Random()-0.5, Random()-0.5);
+      SetVector(pos2, Random()-0.5, Random()-0.5, Random()-0.5);
+      Lines.NodesAspect := lnaInvisible;
+      Lines.AddNode(pos1);
+      Lines.AddNode(pos2);
+      Lines.LineColor.RandomColor;
+      /// e.g. Lines.AddChild(ff);
     end;
     6: //Plane
     begin
@@ -1271,7 +1282,10 @@ begin
       SuperEllipsoid := TGLSuperEllipsoid.CreateAsChild(dcObject);
       SuperEllipsoid.Material.FrontProperties.Diffuse.Color := clrTeal;
     end;
-    //21... Animated sprite
+    21: //Animated sprite
+    begin
+      //
+    end;
     22: // ArrowLine
     begin
       ArrowLine := TGLArrowLine.CreateAsChild(dcObject);
@@ -1307,12 +1321,43 @@ begin
       RevolutionSolid := TGLRevolutionSolid.CreateAsChild(dcObject);
       RevolutionSolid.Material.FrontProperties.Diffuse.RandomColor();
     end;
-    29: // Torus in dcWorld
+    29: // Torus exists in dcWorld
     begin
       Torus.Visible := True;
       Torus.Material.FrontProperties.Diffuse.RandomColor();
     end;
-    // 30...
+    30: //Actor
+    begin
+      Actor := TGLActor.CreateAsChild(dcObject);
+      SetCurrentDir(AssetPath  + '\modelext');
+      Actor.LoadFromFile('waste.md2');
+      Actor.Material.Texture.Disabled := False;
+      Actor.Material.Texture.Image.LoadFromFile('Waste.jpg');
+      Actor.Roll(90);
+      Actor.Pitch(90);
+      Actor.Turn(90);
+      Actor.Scale.Scale(0.05);
+    end;
+    31: //FreeForm
+    begin
+      //
+    end;
+    32: //Mesh
+    begin
+      //
+    end;
+    33: //TilePlane
+    begin
+      //
+    end;
+    34: //Portal
+    begin
+      //
+    end;
+    35: //TerrainRenderer
+    begin
+      //
+    end;
     79: // Teapot in dcWorld
     begin
       Teapot.Visible := True;
@@ -1323,9 +1368,9 @@ begin
     begin
       Tree.Visible := True;
       Tree.Scale.SetVector(0.5,0.5,0.5);
-      MLTree.AddTextureMaterial('TreeBark', 'zbark_016.jpg').Material.Texture.TextureMode := tmModulate;
-      MLTree.AddTextureMaterial('LeafTexture', 'leaf.tga').Material.Texture.TextureMode := tmModulate;
-      MLTree.AddTextureMaterial('FrutTexture', 'maple_multi.tga').Material.Texture.TextureMode := tmModulate;
+      dmImages.MLTree.AddTextureMaterial('TreeBark', 'zbark_016.jpg').Material.Texture.TextureMode := tmModulate;
+      dmImages.MLTree.AddTextureMaterial('LeafTexture', 'leaf.tga').Material.Texture.TextureMode := tmModulate;
+      dmImages.MLTree.AddTextureMaterial('FrutTexture', 'maple_multi.tga').Material.Texture.TextureMode := tmModulate;
     end;
   end;
 end;

+ 4 - 3
Examples/Demos/extrusion/ExtrusionC.cbproj

@@ -8,9 +8,9 @@
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
-        <CC_Suffix Condition="'$(CC_Suffix)'==''">c</CC_Suffix>
-        <TargetedPlatforms>1</TargetedPlatforms>
+        <TargetedPlatforms>1048577</TargetedPlatforms>
         <ProjectName Condition="'$(ProjectName)'==''">ExtrusionC</ProjectName>
+        <CC_Suffix Condition="'$(CC_Suffix)'==''">c</CC_Suffix>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>
@@ -142,6 +142,7 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64x)'!=''">
         <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <LinkPackageStatics>rtl.lib;vcl.lib;GLScene_RT.lib;xmlrtl.lib;vclimg.lib</LinkPackageStatics>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <Defines>NDEBUG;$(Defines)</Defines>
@@ -1271,7 +1272,7 @@
             <Platforms>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win64">False</Platform>
-                <Platform value="Win64x">False</Platform>
+                <Platform value="Win64x">True</Platform>
             </Platforms>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 1249 - 0
Examples/Demos/materials/MaterialsC.cbproj

@@ -0,0 +1,1249 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{9D9BFF41-86C7-4EC0-A146-729D1C6C38F6}</ProjectGuid>
+        <ProjectVersion>20.1</ProjectVersion>
+        <FrameworkType>VCL</FrameworkType>
+        <AppType>Application</AppType>
+        <MainSource>MaterialsC.cpp</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+        <ProjectName Condition="'$(ProjectName)'==''">MaterialsC</ProjectName>
+        <TargetedPlatforms>1048577</TargetedPlatforms>
+        <CC_Suffix Condition="'$(CC_Suffix)'==''">c</CC_Suffix>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Base)'=='true') or '$(Base_Win64x)'!=''">
+        <Base_Win64x>true</Base_Win64x>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
+        <Cfg_1_Win32>true</Cfg_1_Win32>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
+        <Cfg_1_Win64>true</Cfg_1_Win64>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64x)'!=''">
+        <Cfg_1_Win64x>true</Cfg_1_Win64x>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
+        <Cfg_2_Win64>true</Cfg_2_Win64>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64x)'!=''">
+        <Cfg_2_Win64x>true</Cfg_2_Win64x>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
+        <DynamicRTL>true</DynamicRTL>
+        <UsePackages>true</UsePackages>
+        <IntermediateOutputDir>.\$(Platform)\$(Config)</IntermediateOutputDir>
+        <FinalOutputDir>.\$(Platform)\$(Config)</FinalOutputDir>
+        <BCC_wpar>false</BCC_wpar>
+        <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
+        <BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
+        <ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
+        <ProjectType>CppVCLApplication</ProjectType>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
+        <AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
+        <_TCHARMapping>wchar_t</_TCHARMapping>
+        <Multithreaded>true</Multithreaded>
+        <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
+        <IncludePath>D:\GLScene\Examples\Demos\materials\;$(IncludePath)</IncludePath>
+        <ILINK_LibraryPath>D:\GLScene\Examples\Demos\materials\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <SanitizedProjectName>MaterialsC</SanitizedProjectName>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <PackageImports>adortl;appanalytics;bcbie;bcbsmp;bdertl;bindcomp;bindcompdbx;bindcompfmx;bindcompvcl;bindcompvclsmp;bindcompvclwinx;bindengine;CloudService;CustomIPTransport;DataSnapClient;DataSnapCommon;DataSnapConnectors;DatasnapConnectorsFreePascal;DataSnapFireDAC;DataSnapIndy10ServerTransport;DataSnapNativeClient;DataSnapProviderClient;DataSnapServer;DataSnapServerMidas;dbexpress;dbrtl;dbxcds;DbxClientDriver;DbxCommonDriver;DBXDb2Driver;DBXFirebirdDriver;DBXInformixDriver;DBXInterBaseDriver;DBXMSSQLDriver;DBXMySQLDriver;DBXOdbcDriver;DBXOracleDriver;DBXSqliteDriver;DBXSybaseASADriver;DBXSybaseASEDriver;dsnap;dsnapcon;dsnapxml;emsclient;emsclientfiredac;emsedge;emshosting;emsserverresource;FireDAC;FireDACADSDriver;FireDACASADriver;FireDACCommon;FireDACCommonDriver;FireDACCommonODBC;FireDACDb2Driver;FireDACDBXDriver;FireDACDSDriver;FireDACIBDriver;FireDACInfxDriver;FireDACMongoDBDriver;FireDACMSAccDriver;FireDACMSSQLDriver;FireDACMySQLDriver;FireDACODBCDriver;FireDACOracleDriver;FireDACPgDriver;FireDACSqliteDriver;FireDACTDataDriver;fmx;fmxase;fmxdae;fmxFireDAC;fmxobj;FMXTee;FmxTeeUI;GBComps;GLScene_Cg_RT;GLScene_GPU_RT;GLScene_Physics_RT;GLScene_RT;GLScene_Sounds_RT;GR32_DT;GR32_RT;IndyCore;IndyIPClient;IndyIPCommon;IndyIPServer;IndyProtocols;IndySystem;inet;inetdb;inetdbxpress;RESTBackendComponents;RESTComponents;rtl;Skia;soapmidas;soaprtl;soapserver;Tee;TeeDB;TeeUI;tethering;vcl;vclactnband;vcldb;vcldbx;vcldsnap;vcledge;vclFireDAC;vclie;vclimg;VCLRESTComponents;VclSmp;vcltouch;vclwinx;vclx;xmlrtl;$(PackageImports)</PackageImports>
+        <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <PackageImports>adortl;appanalytics;bcbie;bcbsmp;bindcomp;bindcompdbx;bindcompfmx;bindcompvcl;bindcompvclsmp;bindcompvclwinx;bindengine;CloudService;CustomIPTransport;DataSnapClient;DataSnapCommon;DataSnapConnectors;DatasnapConnectorsFreePascal;DataSnapFireDAC;DataSnapIndy10ServerTransport;DataSnapNativeClient;DataSnapProviderClient;DataSnapServer;DataSnapServerMidas;dbexpress;dbrtl;dbxcds;DbxClientDriver;DbxCommonDriver;DBXDb2Driver;DBXFirebirdDriver;DBXInformixDriver;DBXInterBaseDriver;DBXMSSQLDriver;DBXMySQLDriver;DBXOdbcDriver;DBXOracleDriver;DBXSqliteDriver;DBXSybaseASADriver;DBXSybaseASEDriver;dsnap;dsnapcon;dsnapxml;emsclient;emsclientfiredac;emsedge;emshosting;emsserverresource;FireDAC;FireDACADSDriver;FireDACASADriver;FireDACCommon;FireDACCommonDriver;FireDACCommonODBC;FireDACDb2Driver;FireDACDBXDriver;FireDACDSDriver;FireDACIBDriver;FireDACInfxDriver;FireDACMongoDBDriver;FireDACMSAccDriver;FireDACMSSQLDriver;FireDACMySQLDriver;FireDACODBCDriver;FireDACOracleDriver;FireDACPgDriver;FireDACSqliteDriver;FireDACTDataDriver;fmx;fmxase;fmxdae;fmxFireDAC;fmxobj;FMXTee;FmxTeeUI;GLScene_Cg_RT;GLScene_GPU_RT;GLScene_Physics_RT;GLScene_Sounds_RT;GR32_RT;IndyCore;IndyIPClient;IndyIPCommon;IndyIPServer;IndyProtocols;IndySystem;inet;inetdb;inetdbxpress;RESTBackendComponents;RESTComponents;rtl;Skia;soapmidas;soaprtl;soapserver;Tee;TeeDB;TeeUI;tethering;vcl;vclactnband;vcldb;vcldsnap;vcledge;vclFireDAC;vclie;vclimg;VCLRESTComponents;VclSmp;vcltouch;vclwinx;vclx;xmlrtl;$(PackageImports)</PackageImports>
+        <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64x)'!=''">
+        <PackageImports>adortl;bindcomp;bindcompdbx;bindcompfmx;bindcompvcl;bindcompvclsmp;bindcompvclwinx;bindengine;CustomIPTransport;dbexpress;dbrtl;dbxcds;DbxClientDriver;DbxCommonDriver;DBXDb2Driver;DBXFirebirdDriver;DBXInformixDriver;DBXInterBaseDriver;DBXMSSQLDriver;DBXMySQLDriver;DBXOdbcDriver;DBXOracleDriver;DBXSqliteDriver;DBXSybaseASADriver;DBXSybaseASEDriver;dsnap;dsnapcon;dsnapxml;FireDAC;FireDACADSDriver;FireDACASADriver;FireDACCommon;FireDACCommonDriver;FireDACCommonODBC;FireDACDb2Driver;FireDACDBXDriver;FireDACIBDriver;FireDACInfxDriver;FireDACMongoDBDriver;FireDACMSAccDriver;FireDACMSSQLDriver;FireDACMySQLDriver;FireDACODBCDriver;FireDACOracleDriver;FireDACPgDriver;FireDACSqliteDriver;FireDACTDataDriver;fmx;fmxase;fmxdae;fmxFireDAC;fmxobj;GLScene_RT;IndyCore;IndyIPClient;IndyIPCommon;IndyIPServer;IndyProtocols;IndySystem;inet;RESTBackendComponents;RESTComponents;rtl;Skia;vcl;vclactnband;vcldb;vcldsnap;vcledge;vclFireDAC;vclie;vclimg;VCLRESTComponents;VclSmp;vcltouch;vclwinx;vclx;xmlrtl;$(PackageImports)</PackageImports>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
+        <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
+        <Defines>_DEBUG;$(Defines)</Defines>
+        <BCC_InlineFunctionExpansion>false</BCC_InlineFunctionExpansion>
+        <BCC_UseRegisterVariables>None</BCC_UseRegisterVariables>
+        <DCC_Define>DEBUG</DCC_Define>
+        <BCC_DebugLineNumbers>true</BCC_DebugLineNumbers>
+        <TASM_DisplaySourceLines>true</TASM_DisplaySourceLines>
+        <BCC_StackFrames>true</BCC_StackFrames>
+        <ILINK_FullDebugInfo>true</ILINK_FullDebugInfo>
+        <TASM_Debugging>Full</TASM_Debugging>
+        <BCC_SourceDebuggingOn>true</BCC_SourceDebuggingOn>
+        <BCC_EnableCPPExceptions>true</BCC_EnableCPPExceptions>
+        <BCC_DisableFramePtrElimOpt>true</BCC_DisableFramePtrElimOpt>
+        <BCC_DisableSpellChecking>true</BCC_DisableSpellChecking>
+        <CLANG_UnwindTables>true</CLANG_UnwindTables>
+        <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\debug\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <LinkPackageImports>rtl.bpi;vcl.bpi</LinkPackageImports>
+        <BCC_UseClassicCompiler>false</BCC_UseClassicCompiler>
+        <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64x)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <Defines>NDEBUG;$(Defines)</Defines>
+        <TASM_Debugging>None</TASM_Debugging>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <BCC_UseClassicCompiler>false</BCC_UseClassicCompiler>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64x)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <ItemGroup>
+        <CppCompile Include="fcMaterials.cpp">
+            <Form>FormMaterials</Form>
+            <FormType>dfm</FormType>
+            <DependentOn>fcMaterials.h</DependentOn>
+            <BuildOrder>2</BuildOrder>
+        </CppCompile>
+        <CppCompile Include="MaterialsC.cpp">
+            <BuildOrder>0</BuildOrder>
+        </CppCompile>
+        <FormResources Include="fcMaterials.dfm"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>CPlusPlusBuilder.Personality.12</Borland.Personality>
+        <Borland.ProjectType>CppVCLApplication</Borland.ProjectType>
+        <BorlandProject>
+            <CPlusPlusBuilder.Personality>
+                <ProjectProperties>
+                    <ProjectProperties Name="AutoShowDeps">False</ProjectProperties>
+                    <ProjectProperties Name="ManagePaths">True</ProjectProperties>
+                    <ProjectProperties Name="VerifyPackages">True</ProjectProperties>
+                    <ProjectProperties Name="IndexFiles">False</ProjectProperties>
+                </ProjectProperties>
+                <Source>
+                    <Source Name="MainSource">MaterialsC.cpp</Source>
+                </Source>
+            </CPlusPlusBuilder.Personality>
+            <Deployment Version="4">
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgstl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin64\borlndmm.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64290.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64290mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(UsingDelphiRTL)'=='true'" LocalName="$(BDS)\bin\borlndmm.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32290.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32290mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c290.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c290mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName=".\Win32\Debug\MaterialsC.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>MaterialsC.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName=".\Win32\Debug\MaterialsC.tds" Configuration="Debug" Class="DebugSymbols">
+                    <Platform Name="Win32">
+                        <RemoteName>MaterialsC.tds</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployClass Name="AdditionalDebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <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="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <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">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput">
+                    <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>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <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="AndroidSplashImageDefV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v21</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="AndroidSplashStylesV31">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_AdaptiveIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v26</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v26</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_AdaptiveIconBackground">
+                    <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_AdaptiveIconForeground">
+                    <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_AdaptiveIconMonochrome">
+                    <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_AdaptiveIconV33">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v33</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v33</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_ColorsDark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-night-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-night-v21</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="Android_VectorizedNotificationIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v24</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v24</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplash">
+                    <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_VectorizedSplashDark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplashV31">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplashV31Dark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <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">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Linux64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64x">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_CppLogo150">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64x">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_CppLogo44">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64x">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimARM64" 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)"/>
+                <ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/>
+            </Deployment>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+                <Platform value="Win64x">True</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Cpp.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Cpp.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 35 - 0
Examples/Demos/materials/MaterialsC.cpp

@@ -0,0 +1,35 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+#include <tchar.h>
+//---------------------------------------------------------------------------
+USEFORM("fcMaterials.cpp", FormMaterials);
+//---------------------------------------------------------------------------
+int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
+{
+	try
+	{
+		Application->Initialize();
+		Application->MainFormOnTaskBar = true;
+		Application->CreateForm(__classid(TFormMaterials), &FormMaterials);
+		Application->Run();
+	}
+	catch (Exception &exception)
+	{
+		Application->ShowException(&exception);
+	}
+	catch (...)
+	{
+		try
+		{
+			throw Exception("");
+		}
+		catch (Exception &exception)
+		{
+			Application->ShowException(&exception);
+		}
+	}
+	return 0;
+}
+//---------------------------------------------------------------------------

+ 46 - 0
Examples/Demos/materials/MaterialsD.dpr

@@ -0,0 +1,46 @@
+program MaterialsD;
+
+uses
+  Vcl.Forms,
+  fdMaterials in 'fdMaterials.pas' {FormMaterials},
+  fCubemapD in 'cubemap\fCubemapD.pas' {FormCubeMap},
+  fCustomQuadD in 'customquad\fCustomQuadD.pas' {FormCustomQuad},
+  fDynTextureD in 'dynamictexture\fDynTextureD.pas' {FormDynamicTexture},
+  fDynCubemapD in 'dyncubemap\fDynCubemapD.pas' {FormDynCubeMap},
+  fMatScriptD in 'MaterialScript\fMatScriptD.pas' {FormMatScript},
+  fMirrorD in 'mirror\fMirrorD.pas' {FormMirror},
+  fMultiMaterialD in 'multimaterial\fMultiMaterialD.pas' {FormMultiMat},
+  fMultiPassD in 'multipass\fMultiPassD.pas' {FormMultiPass},
+  fMultiTextureD in 'multitexture\fMultiTextureD.pas' {FormMultiTexture},
+  fObjMaterialD in 'objmaterial\fObjMaterialD.pas' {FormMO},
+  fProcCloudsD in 'proceduralclouds\fProcCloudsD.pas' {FormClouds},
+  fTexAnimD in 'texanim\fTexAnimD.pas' {FormTexAnim},
+  fTexCombineD in 'texcombine\fTexCombineD.pas' {FormTexCombine},
+  fTexFormatD in 'texformat\fTexFormatD.pas' {FormTexFormat},
+  fTransparAdvD in 'TransparAdv\fTransparAdvD.pas' {FormTransparAdv},
+  fTransparencyD in 'transparency\fTransparencyD.pas' {FormTransparency};
+
+{$R *.res}
+
+begin
+  Application.Initialize;
+  Application.MainFormOnTaskbar := True;
+  Application.CreateForm(TFormMaterials, FormMaterials);
+  Application.CreateForm(TFormCubeMap, FormCubeMap);
+  Application.CreateForm(TFormCustomQuad, FormCustomQuad);
+  Application.CreateForm(TFormDynamicTexture, FormDynamicTexture);
+  Application.CreateForm(TFormDynCubeMap, FormDynCubeMap);
+  Application.CreateForm(TFormMatScript, FormMatScript);
+  Application.CreateForm(TFormMirror, FormMirror);
+  Application.CreateForm(TFormMultiMat, FormMultiMat);
+  Application.CreateForm(TFormMultiPass, FormMultiPass);
+  Application.CreateForm(TFormMultiTexture, FormMultiTexture);
+  Application.CreateForm(TFormMO, FormMO);
+  Application.CreateForm(TFormClouds, FormClouds);
+  Application.CreateForm(TFormTexAnim, FormTexAnim);
+  Application.CreateForm(TFormTexCombine, FormTexCombine);
+  Application.CreateForm(TFormTexFormat, FormTexFormat);
+  Application.CreateForm(TFormTransparAdv, FormTransparAdv);
+  Application.CreateForm(TFormTransparency, FormTransparency);
+  Application.Run;
+end.

+ 1183 - 0
Examples/Demos/materials/MaterialsD.dproj

@@ -0,0 +1,1183 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{9C179E63-6380-43FE-BCFB-0520CF10EF1D}</ProjectGuid>
+        <ProjectVersion>20.1</ProjectVersion>
+        <FrameworkType>VCL</FrameworkType>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+        <ProjectName Condition="'$(ProjectName)'==''">MaterialsD</ProjectName>
+        <TargetedPlatforms>3</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <MainSource>MaterialsD.dpr</MainSource>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
+        <Cfg_1_Win32>true</Cfg_1_Win32>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
+        <Cfg_1_Win64>true</Cfg_1_Win64>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
+        <Cfg_2_Win64>true</Cfg_2_Win64>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
+        <DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
+        <DCC_E>false</DCC_E>
+        <DCC_N>false</DCC_N>
+        <DCC_S>false</DCC_S>
+        <DCC_F>false</DCC_F>
+        <DCC_K>false</DCC_K>
+        <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
+        <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <SanitizedProjectName>MaterialsD</SanitizedProjectName>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_UsePackage>GLScene_Cg_RT;vclwinx;DataSnapServer;bdertl;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;GEdgeIODB;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;Skia.Package.FMX;FireDACOracleDriver;fmxdae;TeeDB;GEdgeIO;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;GLScene_GPU_RT;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;GLScene_Physics_RT;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;GBComps;DBXSybaseASEDriver;DBXDb2Driver;GLScene_Sounds_RT;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;DataSnapNativeClient;FMXTee;DatasnapConnectorsFreePascal;soaprtl;GLScene_RT;vcldbx;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <DCC_UsePackage>GLScene_Cg_RT;vclwinx;DataSnapServer;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;FmxTeeUI;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;Tee;soapmidas;vclactnband;TeeUI;fmxFireDAC;dbexpress;FireDACInfxDriver;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;FireDACOracleDriver;fmxdae;TeeDB;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;GLScene_GPU_RT;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;GLScene_Physics_RT;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;GLScene_Sounds_RT;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;fmxobj;bindcompvclsmp;DataSnapNativeClient;FMXTee;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage)</DCC_UsePackage>
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_DebugDCUs>true</DCC_DebugDCUs>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
+        <DCC_RemoteDebug>true</DCC_RemoteDebug>
+        <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
+        <DCC_RangeChecking>true</DCC_RangeChecking>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
+        <DCC_RemoteDebug>false</DCC_RemoteDebug>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="fdMaterials.pas">
+            <Form>FormMaterials</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="cubemap\fCubemapD.pas">
+            <Form>FormCubeMap</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="customquad\fCustomQuadD.pas">
+            <Form>FormCustomQuad</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="dynamictexture\fDynTextureD.pas">
+            <Form>FormDynamicTexture</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="dyncubemap\fDynCubemapD.pas">
+            <Form>FormDynCubeMap</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="MaterialScript\fMatScriptD.pas">
+            <Form>FormMatScript</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="mirror\fMirrorD.pas">
+            <Form>FormMirror</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="multimaterial\fMultiMaterialD.pas">
+            <Form>FormMultiMat</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="multipass\fMultiPassD.pas">
+            <Form>FormMultiPass</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="multitexture\fMultiTextureD.pas">
+            <Form>FormMultiTexture</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="objmaterial\fObjMaterialD.pas">
+            <Form>FormMO</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="proceduralclouds\fProcCloudsD.pas">
+            <Form>FormClouds</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="texanim\fTexAnimD.pas">
+            <Form>FormTexAnim</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="texcombine\fTexCombineD.pas">
+            <Form>FormTexCombine</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="texformat\fTexFormatD.pas">
+            <Form>FormTexFormat</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="TransparAdv\fTransparAdvD.pas">
+            <Form>FormTransparAdv</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <DCCReference Include="transparency\fTransparencyD.pas">
+            <Form>FormTransparency</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType>Application</Borland.ProjectType>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">MaterialsD.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Deployment Version="4">
+                <DeployFile LocalName="Win32\Debug\MaterialsD.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>MaterialsD.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployClass Name="AdditionalDebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <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="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <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">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput">
+                    <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>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <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="AndroidSplashImageDefV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v21</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="AndroidSplashStylesV31">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_AdaptiveIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v26</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v26</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_AdaptiveIconBackground">
+                    <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_AdaptiveIconForeground">
+                    <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_AdaptiveIconMonochrome">
+                    <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_AdaptiveIconV33">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v33</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v33</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_ColorsDark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-night-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-night-v21</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="Android_VectorizedNotificationIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v24</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v24</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplash">
+                    <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_VectorizedSplashDark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-night-anydpi-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplashV31">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_VectorizedSplashV31Dark">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-night-anydpi-v31</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <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>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <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">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Linux64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64x">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo150">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo44">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <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="iOSSimARM64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimARM64" 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)"/>
+                <ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/>
+            </Deployment>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">True</Platform>
+            </Platforms>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 0 - 1
Examples/Demos/materials/TransparAdv/fTransparAdvD.pas

@@ -136,7 +136,6 @@ const
   vLtYellow: TGLColorVector = (X: 0.98; Y:0.96; Z:0.14; W:0.30);
   vLtMagenta: TGLColorVector = (X: 0.83; Y:0.04; Z:0.83; W:0.70);
   vLtGreen: TGLColorVector = (X: 0.05; Y:0.98; Z:0.14; W:0.30);
-
 var
   vd: array [0 .. 3] of TGLVertexData;
 

+ 1 - 1
Examples/Demos/materials/cubemap/CubemapD.dpr

@@ -1,6 +1,6 @@
 (* Basic sample for loading and applying a cube map.
 
-   In this extremely simple demo, with a single teapot, we just setup and
+   In this simple demo, with a teapot and cone, we just setup and
    enabled reflection cube map environment mapping. Cube maps allow higher
    quality reflections than sphere map (no singularity) at the expense of
    memory use (they require 6 images instead of one).

+ 5 - 0
Examples/Demos/materials/cubemap/CubemapD.dproj

@@ -9,6 +9,7 @@
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>20.1</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
+        <ProjectName Condition="'$(ProjectName)'==''">CubemapD</ProjectName>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>
@@ -810,6 +811,9 @@
                     <Platform Name="Win64">
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Win64x">
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
@@ -1103,6 +1107,7 @@
                 <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 4 - 1
Examples/Demos/materials/cubemap/fCubemapD.dfm

@@ -15,7 +15,7 @@ object FormCubeMap: TFormCubeMap
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Position = poScreenCenter
-  OnCreate = FormCreate
+  OnShow = FormShow
   PixelsPerInch = 168
   TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
@@ -69,12 +69,14 @@ object FormCubeMap: TFormCubeMap
         Material.FrontProperties.Ambient.Color = {A7A6263FCDCC4C3ECDCC4C3E0000803F}
         Material.FrontProperties.Shininess = 46
         Material.FrontProperties.Specular.Color = {0000000000000000000000007F6A1C3F}
+        Material.Texture.ImageClassName = 'TGLCubeMapImage'
         Material.Texture.ImageAlpha = tiaAlphaFromIntensity
         Material.Texture.MinFilter = miNearest
         Material.Texture.TextureMode = tmReplace
         Position.Coordinates = {00000000000080BE000000000000803F}
       end
       object Cylinder1: TGLCylinder
+        Material.Texture.ImageClassName = 'TGLCubeMapImage'
         Position.Coordinates = {000000BF000000000000803F0000803F}
         Scale.Coordinates = {0000003F0000003F0000003F00000000}
         BottomRadius = 0.500000000000000000
@@ -82,6 +84,7 @@ object FormCubeMap: TFormCubeMap
         TopRadius = 0.500000000000000000
       end
       object Cone1: TGLCone
+        Material.Texture.ImageClassName = 'TGLCubeMapImage'
         Position.Coordinates = {0000803F00000000000000BF0000803F}
         Scale.Coordinates = {9A99193F9A99193F9A99193F00000000}
         BottomRadius = 0.500000000000000000

+ 2 - 14
Examples/Demos/materials/cubemap/fCubemapD.pas

@@ -39,10 +39,9 @@ type
       X, Y: Integer);
     procedure btnApplyClick(Sender: TObject);
     procedure GLSceneViewer1BeforeRender(Sender: TObject);
-    procedure FormCreate(Sender: TObject);
+    procedure FormShow(Sender: TObject);
   private
     Path: TFileName;
-    CubmapSupported: Boolean;
     CubemapPath: TFileName;
     Cubemap: TGLTexture;
   public
@@ -56,7 +55,7 @@ implementation
 
 {$R *.dfm}
 
-procedure TFormCubeMap.FormCreate(Sender: TObject);
+procedure TFormCubeMap.FormShow(Sender: TObject);
 begin
   // Our cube map images are here
   Path := GetCurrentAssetPath();
@@ -65,22 +64,11 @@ end;
 
 procedure TFormCubeMap.GLSceneViewer1BeforeRender(Sender: TObject);
 begin
-  CubmapSupported := GL.ARB_texture_cube_map;
   GLSceneViewer1.BeforeRender := nil;
 end;
 
 procedure TFormCubeMap.btnApplyClick(Sender: TObject);
 begin
-  // Cube map warning message
-  // If you don't check and turn off cube maps yourself in your apps when
-  // cube maps aren't supported and will just turn off texturing
-  // (ie. no error generated, just a different output)
-  if not CubmapSupported then
-  begin
-    ShowMessage('Your graphics board does not support cube maps...');
-    Exit;
-  end;
-
   with Teapot1.Material.Texture do
   begin
     // We need a CubeMapImage, which unlike the "regular Images" stores

+ 16 - 7
Examples/Demos/materials/dynamictexture/fDynTextureD.dfm

@@ -1,28 +1,37 @@
 object FormDynamicTexture: TFormDynamicTexture
   Left = 407
   Top = 201
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   Caption = 'Dynamic Texture'
-  ClientHeight = 415
-  ClientWidth = 600
+  ClientHeight = 726
+  ClientWidth = 1064
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'Tahoma'
   Font.Style = []
   Position = poScreenCenter
   OnCreate = FormCreate
   OnKeyDown = FormKeyDown
   OnResize = FormResize
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 23
   object SceneViewer: TGLSceneViewer
     Left = 0
     Top = 0
-    Width = 600
-    Height = 415
+    Width = 1064
+    Height = 726
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = GLCamera1
     Buffer.BackgroundColor = clGray
-    FieldOfView = 152.904129028320300000
+    FieldOfView = 164.314743041992200000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0

+ 3 - 1
Examples/Demos/materials/dynamictexture/fDynTextureD.pas

@@ -23,7 +23,9 @@ uses
   GLS.RenderContextInfo, 
   GLS.Context, 
   GLS.DynamicTexture, 
-  GLS.Utils, GLS.Navigator, GLS.SimpleNavigation;
+  GLS.Utils,
+  GLS.Navigator,
+  GLS.SimpleNavigation;
 
 type
   TFormDynamicTexture = class(TForm)

+ 0 - 8
Examples/Demos/materials/dyncubemap/fDynCubemapD.pas

@@ -71,14 +71,6 @@ implementation
 
 procedure TFormDynCubeMap.GenerateCubeMap;
 begin
-   // Don't do anything if cube maps aren't supported
-   if not CubmapSupported then begin
-      if not cubeMapWarnDone then
-         ShowMessage('Your graphics hardware does not support cube maps...');
-      cubeMapWarnDone:=True;
-      Exit;
-   end;
-   // Here we generate the new cube map, from CubeMapCamera (a child of the
    // teapot in the scene hierarchy)
    with Teapot1 do begin
       // hide the teapot while rendering the cube map

+ 16 - 0
Examples/Demos/materials/fcMaterials.cpp

@@ -0,0 +1,16 @@
+//---------------------------------------------------------------------------
+
+#include <vcl.h>
+#pragma hdrstop
+
+#include "fcMaterials.h"
+//---------------------------------------------------------------------------
+#pragma package(smart_init)
+#pragma resource "*.dfm"
+TFormMaterials *FormMaterials;
+//---------------------------------------------------------------------------
+__fastcall TFormMaterials::TFormMaterials(TComponent* Owner)
+	: TForm(Owner)
+{
+}
+//---------------------------------------------------------------------------

+ 64 - 0
Examples/Demos/materials/fcMaterials.dfm

@@ -0,0 +1,64 @@
+object FormMaterials: TFormMaterials
+  Left = 0
+  Top = 0
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
+  Caption = 'Materials'
+  ClientHeight = 776
+  ClientWidth = 1096
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -21
+  Font.Name = 'Segoe UI'
+  Font.Style = []
+  Position = poScreenCenter
+  PixelsPerInch = 168
+  TextHeight = 30
+  object TreeViewMaterials: TTreeView
+    Left = 0
+    Top = 0
+    Width = 211
+    Height = 776
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
+    Align = alLeft
+    Indent = 33
+    TabOrder = 0
+    Items.NodeData = {
+      071000000009540054007200650065004E006F00640065002D00000000000000
+      00000000FFFFFFFFFFFFFFFF0000000000000000000000000001076300750062
+      0065006D00610070000000330000000000000000000000FFFFFFFFFFFFFFFF00
+      000000000000000000000000010A63007500730074006F006D00710075006100
+      640000003B0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000
+      0000000000010E640079006E0061006D00690063007400650078007400750072
+      0065000000330000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+      000000000000010A640079006E0063007500620065006D006100700000003B00
+      00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+      0E4D006100740065007200690061006C0053006300720069007000740000002B
+      0000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000
+      01066D006900720072006F0072000000390000000000000000000000FFFFFFFF
+      FFFFFFFF00000000000000000000000000010D6D0075006C00740069006D0061
+      00740065007200690061006C000000310000000000000000000000FFFFFFFFFF
+      FFFFFF0000000000000000000000000001096D0075006C007400690070006100
+      730073000000370000000000000000000000FFFFFFFFFFFFFFFF000000000000
+      00000000000000010C6D0075006C007400690074006500780074007500720065
+      000000350000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
+      00000000010B6F0062006A006D006100740065007200690061006C0000003F00
+      00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+      10700072006F006300650064007500720061006C0063006C006F007500640073
+      0000002D0000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
+      00000000010774006500780061006E0069006D00000033000000000000000000
+      0000FFFFFFFFFFFFFFFF00000000000000000000000000010A74006500780063
+      006F006D00620069006E0065000000310000000000000000000000FFFFFFFFFF
+      FFFFFF00000000000000000000000000010974006500780066006F0072006D00
+      610074000000350000000000000000000000FFFFFFFFFFFFFFFF000000000000
+      00000000000000010B5400720061006E00730070006100720041006400760000
+      00370000000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000
+      0000010C7400720061006E00730070006100720065006E0063007900}
+  end
+end

+ 23 - 0
Examples/Demos/materials/fcMaterials.h

@@ -0,0 +1,23 @@
+//---------------------------------------------------------------------------
+
+#ifndef fcMaterialsH
+#define fcMaterialsH
+//---------------------------------------------------------------------------
+#include <System.Classes.hpp>
+#include <Vcl.Controls.hpp>
+#include <Vcl.StdCtrls.hpp>
+#include <Vcl.Forms.hpp>
+#include <Vcl.ComCtrls.hpp>
+//---------------------------------------------------------------------------
+class TFormMaterials : public TForm
+{
+__published:	// IDE-managed Components
+	TTreeView *TreeViewMaterials;
+private:	// User declarations
+public:		// User declarations
+	__fastcall TFormMaterials(TComponent* Owner);
+};
+//---------------------------------------------------------------------------
+extern PACKAGE TFormMaterials *FormMaterials;
+//---------------------------------------------------------------------------
+#endif

+ 66 - 0
Examples/Demos/materials/fdMaterials.dfm

@@ -0,0 +1,66 @@
+object FormMaterials: TFormMaterials
+  Left = 0
+  Top = 0
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
+  Caption = 'Materials'
+  ClientHeight = 776
+  ClientWidth = 1096
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -21
+  Font.Name = 'Segoe UI'
+  Font.Style = []
+  Position = poScreenCenter
+  OnShow = FormShow
+  PixelsPerInch = 168
+  TextHeight = 30
+  object tvMaterials: TTreeView
+    Left = 0
+    Top = 0
+    Width = 211
+    Height = 776
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
+    Align = alLeft
+    Indent = 33
+    TabOrder = 0
+    OnClick = tvMaterialsClick
+    Items.NodeData = {
+      071000000009540054007200650065004E006F00640065002D00000000000000
+      00000000FFFFFFFFFFFFFFFF0000000000000000000000000001076300750062
+      0065006D00610070000000330000000000000000000000FFFFFFFFFFFFFFFF00
+      000000000000000000000000010A63007500730074006F006D00710075006100
+      640000003B0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000
+      0000000000010E640079006E0061006D00690063007400650078007400750072
+      0065000000330000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+      000000000000010A640079006E0063007500620065006D006100700000003B00
+      00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+      0E4D006100740065007200690061006C0053006300720069007000740000002B
+      0000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000
+      01066D006900720072006F0072000000390000000000000000000000FFFFFFFF
+      FFFFFFFF00000000000000000000000000010D6D0075006C00740069006D0061
+      00740065007200690061006C000000310000000000000000000000FFFFFFFFFF
+      FFFFFF0000000000000000000000000001096D0075006C007400690070006100
+      730073000000370000000000000000000000FFFFFFFFFFFFFFFF000000000000
+      00000000000000010C6D0075006C007400690074006500780074007500720065
+      000000350000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
+      00000000010B6F0062006A006D006100740065007200690061006C0000003F00
+      00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+      10700072006F006300650064007500720061006C0063006C006F007500640073
+      0000002D0000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
+      00000000010774006500780061006E0069006D00000033000000000000000000
+      0000FFFFFFFFFFFFFFFF00000000000000000000000000010A74006500780063
+      006F006D00620069006E0065000000310000000000000000000000FFFFFFFFFF
+      FFFFFF00000000000000000000000000010974006500780066006F0072006D00
+      610074000000350000000000000000000000FFFFFFFFFFFFFFFF000000000000
+      00000000000000010B5400720061006E00730070006100720041006400760000
+      00370000000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000
+      0000010C7400720061006E00730070006100720065006E0063007900}
+  end
+end

+ 204 - 0
Examples/Demos/materials/fdMaterials.pas

@@ -0,0 +1,204 @@
+unit fdMaterials;
+
+interface
+
+uses
+  Winapi.Windows,
+  Winapi.Messages,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.ComCtrls,
+
+  fCubemapD,
+  fCustomquadD,
+  fDynTextureD,
+  fDynCubemapD,
+  fMatScriptD,
+  fMirrorD,
+  fMultiMaterialD,
+  fMultiPassD,
+  fMultiTextureD,
+  fObjMaterialD,
+  fProcCloudsD,
+  fTexAnimD,
+  fTexCombineD,
+  fTexFormatD,
+  fTransparAdvD,
+  fTransparencyD;
+
+type
+  TFormMaterials = class(TForm)
+    tvMaterials: TTreeView;
+    procedure tvMaterialsClick(Sender: TObject);
+    procedure FormShow(Sender: TObject);
+  private
+  public
+  end;
+
+var
+  FormMaterials: TFormMaterials;
+
+implementation
+
+{$R *.dfm}
+
+procedure TFormMaterials.FormShow(Sender: TObject);
+begin
+  tvMaterials.Select(tvMaterials.Items[0]);  // goto to column 0
+  tvMaterials.Items[0].DropHighlighted := True;
+  tvMaterialsClick(Self);
+end;
+
+procedure TFormMaterials.tvMaterialsClick(Sender: TObject);
+begin
+  tvMaterials.Items[0].DropHighlighted := False;
+  case tvMaterials.Selected.Index of
+    0:
+      begin // Cubemap
+        FormCubemap := TFormCubemap.Create(FormMaterials);
+        FormCubemap.Parent := FormMaterials;
+        FormCubemap.Align := alClient;
+        FormCubemap.BorderStyle := bsNone;
+        FormCubemap.Show;
+      end;
+    1:
+      begin // Customquad
+        FormCustomquad := TFormCustomquad.Create(FormMaterials);
+        FormCustomquad.Parent := FormMaterials;
+        FormCustomquad.Align := alClient;
+        FormCustomquad.BorderStyle := bsNone;
+        FormCustomquad.Show;
+      end;
+    2:
+      begin // FormDynamictexture
+        FormDynamicTexture := TFormDynamicTexture.Create(FormMaterials);
+        FormDynamicTexture.Parent := FormMaterials;
+        FormDynamicTexture.Align := alClient;
+        FormDynamicTexture.BorderStyle := bsNone;
+        FormDynamicTexture.Show;
+      end;
+    3:
+      begin // DynCubemap
+        FormDynCubemap := TFormDynCubemap.Create(FormMaterials);
+        FormDynCubemap.Parent := FormMaterials;
+        FormDynCubemap.Align := alClient;
+        FormDynCubemap.BorderStyle := bsNone;
+        FormDynCubemap.Show;
+      end;
+    4:
+      begin
+        // MatScript
+        FormMatScript := TFormMatScript.Create(FormMaterials);
+        FormMatScript.Parent := FormMaterials;
+        FormMatScript.Align := alClient;
+        FormMatScript.BorderStyle := bsNone;
+        FormMatScript.Show;
+      end;
+    5:
+      begin
+        // Mirror
+        FormMirror := TFormMirror.Create(FormMaterials);
+        FormMirror.Parent := FormMaterials;
+        FormMirror.Align := alClient;
+        FormMirror.BorderStyle := bsNone;
+        FormMirror.Show;
+      end;
+    6:
+      begin
+        // MultiMat
+        FormMultiMat := TFormMultiMat.Create(FormMaterials);
+        FormMultiMat.Parent := FormMaterials;
+        FormMultiMat.Align := alClient;
+        FormMultiMat.BorderStyle := bsNone;
+        FormMultiMat.Show;
+      end;
+    7:
+      begin
+        // MultiPass
+        FormMultiPass := TFormMultiPass.Create(FormMaterials);
+        FormMultiPass.Parent := FormMaterials;
+        FormMultiPass.Align := alClient;
+        FormMultiPass.BorderStyle := bsNone;
+        FormMultiPass.Show;
+      end;
+    8:
+      begin
+        // MultiTexture
+        FormMultiTexture := TFormMultiTexture.Create(FormMaterials);
+        FormMultiTexture.Parent := FormMaterials;
+        FormMultiTexture.Align := alClient;
+        FormMultiTexture.BorderStyle := bsNone;
+        FormMultiTexture.Show;
+      end;
+    9:
+      begin
+        // ObjMaterial
+        FormMO := TFormMO.Create(FormMaterials);
+        FormMO.Parent := FormMaterials;
+        FormMO.Align := alClient;
+        FormMO.BorderStyle := bsNone;
+        FormMO.Show;
+      end;
+    10:
+      begin
+        // Clouds
+        FormClouds := TFormClouds.Create(FormMaterials);
+        FormClouds.Parent := FormMaterials;
+        FormClouds.Align := alClient;
+        FormClouds.BorderStyle := bsNone;
+        FormClouds.Show;
+      end;
+    11:
+      begin
+        // TexAnim
+        FormTexAnim := TFormTexAnim.Create(FormMaterials);
+        FormTexAnim.Parent := FormMaterials;
+        FormTexAnim.Align := alClient;
+        FormTexAnim.BorderStyle := bsNone;
+        FormTexAnim.Show;
+      end;
+    12:
+      begin
+        // TexCombine
+        FormTexCombine := TFormTexCombine.Create(FormMaterials);
+        FormTexCombine.Parent := FormMaterials;
+        FormTexCombine.Align := alClient;
+        FormTexCombine.BorderStyle := bsNone;
+        FormTexCombine.Show;
+      end;
+    13:
+      begin
+        // TexFormat
+        FormTexFormat := TFormTexFormat.Create(FormMaterials);
+        FormTexFormat.Parent := FormMaterials;
+        FormTexFormat.Align := alClient;
+        FormTexFormat.BorderStyle := bsNone;
+        FormTexFormat.Show;
+      end;
+    14:
+      begin
+        // TransparAdv
+        FormTransparAdv := TFormTransparAdv.Create(FormMaterials);
+        FormTransparAdv.Parent := FormMaterials;
+        FormTransparAdv.Align := alClient;
+        FormTransparAdv.BorderStyle := bsNone;
+        FormTransparAdv.Show;
+      end;
+    15:
+      begin
+        // Transparency
+        FormTransparency := TFormTransparency.Create(FormMaterials);
+        FormTransparency.Parent := FormMaterials;
+        FormTransparency.Align := alClient;
+        FormTransparency.BorderStyle := bsNone;
+        FormTransparency.Show;
+      end;
+  end;
+end;
+
+end.

+ 25 - 21
Examples/Demos/materials/multipass/fMultiPassD.dfm

@@ -1,28 +1,32 @@
-object FormMultiPath: TFormMultiPath
+object FormMultiPass: TFormMultiPass
   Left = 239
   Top = 100
+  Margins.Left = 4
+  Margins.Top = 4
+  Margins.Right = 4
+  Margins.Bottom = 4
   Caption = 'Multi Pass'
-  ClientHeight = 406
-  ClientWidth = 538
+  ClientHeight = 568
+  ClientWidth = 762
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -14
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Style = []
-  PixelsPerInch = 120
-  TextHeight = 16
+  PixelsPerInch = 168
+  TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Top = 0
-    Width = 538
-    Height = 406
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 762
+    Height = 568
+    Margins.Left = 6
+    Margins.Top = 6
+    Margins.Right = 6
+    Margins.Bottom = 6
     Camera = GLCamera1
-    FieldOfView = 152.326324462890600000
+    FieldOfView = 160.030075073242200000
     PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
@@ -30,14 +34,14 @@ object FormMultiPath: TFormMultiPath
     TabOrder = 0
   end
   object BUBind: TButton
-    Left = 210
-    Top = 10
-    Width = 94
-    Height = 31
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Left = 294
+    Top = 14
+    Width = 132
+    Height = 43
+    Margins.Left = 6
+    Margins.Top = 6
+    Margins.Right = 6
+    Margins.Bottom = 6
     Caption = 'Bind Shaders'
     TabOrder = 1
     OnClick = BUBindClick

+ 5 - 5
Examples/Demos/materials/multipass/fMultiPassD.pas

@@ -27,7 +27,7 @@ uses
   GLS.BaseClasses;
 
 type
-  TFormMultiPath = class(TForm)
+  TFormMultiPass = class(TForm)
     GLScene1: TGLScene;
     GLSceneViewer1: TGLSceneViewer;
     GLCamera1: TGLCamera;
@@ -53,7 +53,7 @@ type
   end;
 
 var
-  FormMultiPath: TFormMultiPath;
+  FormMultiPass: TFormMultiPass;
 
 implementation
 
@@ -186,7 +186,7 @@ begin
   end;
 end;
 
-procedure TFormMultiPath.BUBindClick(Sender: TObject);
+procedure TFormMultiPass.BUBindClick(Sender: TObject);
 var
   shader1: THiddenLineShader;
   shader2, shader3: TOutLineShader;
@@ -232,14 +232,14 @@ end;
 // Classic mouse movement bits
 //
 
-procedure TFormMultiPath.GLSceneViewer1MouseDown(Sender: TObject;
+procedure TFormMultiPass.GLSceneViewer1MouseDown(Sender: TObject;
   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
 begin
   mx := x;
   my := y;
 end;
 
-procedure TFormMultiPath.GLSceneViewer1MouseMove(Sender: TObject;
+procedure TFormMultiPass.GLSceneViewer1MouseMove(Sender: TObject;
   Shift: TShiftState; X, Y: Integer);
 begin
   if Shift = [ssLeft] then

+ 90 - 86
Examples/Demos/materials/transparency/fTransparencyD.dfm

@@ -1,54 +1,58 @@
-object Form1: TForm1
+object FormTransparency: TFormTransparency
   Left = 200
   Top = 110
+  Margins.Left = 4
+  Margins.Top = 4
+  Margins.Right = 4
+  Margins.Bottom = 4
   Caption = 'Transparency'
-  ClientHeight = 404
-  ClientWidth = 629
+  ClientHeight = 566
+  ClientWidth = 881
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -14
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Style = []
-  PixelsPerInch = 120
-  TextHeight = 16
+  PixelsPerInch = 168
+  TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Top = 0
-    Width = 380
-    Height = 404
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 532
+    Height = 566
+    Margins.Left = 6
+    Margins.Top = 6
+    Margins.Right = 6
+    Margins.Bottom = 6
     Camera = GLCamera1
     Buffer.BackgroundColor = 13224393
-    FieldOfView = 144.948867797851600000
+    FieldOfView = 154.577728271484400000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
   object Panel1: TPanel
-    Left = 380
+    Left = 532
     Top = 0
-    Width = 249
-    Height = 404
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 349
+    Height = 566
+    Margins.Left = 6
+    Margins.Top = 6
+    Margins.Right = 6
+    Margins.Bottom = 6
     Align = alRight
     Caption = ' '
     TabOrder = 1
     object Label1: TLabel
-      Left = 16
-      Top = 10
-      Width = 215
-      Height = 144
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 22
+      Top = 14
+      Width = 307
+      Height = 216
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 
         'With Transparency and  Z-Buffering, '#13#10'ordering your objects is i' +
         'mportant.'#13#10#13#10'In this sample, only the spheres are'#13#10'transparent.'#13 +
@@ -56,74 +60,74 @@ object Form1: TForm1
         ' blending'#13#10'mode make.'
     end
     object Label2: TLabel
-      Left = 26
-      Top = 170
-      Width = 113
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 36
+      Top = 238
+      Width = 159
+      Height = 25
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Central objects :'
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWindowText
-      Font.Height = -14
+      Font.Height = -20
       Font.Name = 'MS Sans Serif'
       Font.Style = [fsBold]
       ParentFont = False
     end
     object Label3: TLabel
-      Left = 30
-      Top = 300
-      Width = 123
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 42
+      Top = 420
+      Width = 173
+      Height = 25
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Orbiting spheres :'
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWindowText
-      Font.Height = -14
+      Font.Height = -20
       Font.Name = 'MS Sans Serif'
       Font.Style = [fsBold]
       ParentFont = False
     end
     object RBSTC: TRadioButton
-      Left = 64
-      Top = 200
-      Width = 171
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 90
+      Top = 280
+      Width = 239
+      Height = 29
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Sphere, Torus, Cone'
       TabOrder = 0
       OnClick = RBSTCClick
     end
     object RBTSC: TRadioButton
-      Left = 64
-      Top = 230
-      Width = 171
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 90
+      Top = 322
+      Width = 239
+      Height = 29
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Torus, Sphere, Cone'
       TabOrder = 1
       OnClick = RBTSCClick
     end
     object RBTCS: TRadioButton
-      Left = 64
-      Top = 260
-      Width = 171
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 90
+      Top = 364
+      Width = 239
+      Height = 29
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Torus, Cone, Sphere'
       Checked = True
       TabOrder = 2
@@ -131,27 +135,27 @@ object Form1: TForm1
       OnClick = RBTCSClick
     end
     object CBAdditive: TCheckBox
-      Left = 66
-      Top = 330
-      Width = 132
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 92
+      Top = 462
+      Width = 185
+      Height = 29
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'Additive blending'
       TabOrder = 3
       OnClick = CBAdditiveClick
     end
     object CBSorting: TCheckBox
-      Left = 66
-      Top = 360
-      Width = 122
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 92
+      Top = 504
+      Width = 171
+      Height = 29
+      Margins.Left = 6
+      Margins.Top = 6
+      Margins.Right = 6
+      Margins.Bottom = 6
       Caption = 'osFarthestFirst'
       Checked = True
       State = cbChecked

+ 8 - 8
Examples/Demos/materials/transparency/fTransparencyD.pas

@@ -30,7 +30,7 @@ uses
   GLS.RenderContextInfo;
 
 type
-  TForm1 = class(TForm)
+  TFormTransparency = class(TForm)
     GLSceneViewer1: TGLSceneViewer;
     GLScene1: TGLScene;
     GLCamera1: TGLCamera;
@@ -64,20 +64,20 @@ type
   end;
 
 var
-  Form1: TForm1;
+  FormTransparency: TFormTransparency;
 
 implementation
 
 {$R *.DFM}
 
-procedure TForm1.RBSTCClick(Sender: TObject);
+procedure TFormTransparency.RBSTCClick(Sender: TObject);
 begin
    // we have 3 objects, move up twice and we're on the top !
    CentralSphere.MoveUp;
    CentralSphere.MoveUp;
 end;
 
-procedure TForm1.RBTSCClick(Sender: TObject);
+procedure TFormTransparency.RBTSCClick(Sender: TObject);
 begin
    // we have 3 objects, move down twice and we're on the top,
    // then once down, we're in the middle !
@@ -86,14 +86,14 @@ begin
    CentralSphere.MoveDown;
 end;
 
-procedure TForm1.RBTCSClick(Sender: TObject);
+procedure TFormTransparency.RBTCSClick(Sender: TObject);
 begin
    // we have 3 objects, move down twice and we're on the bottom !
    CentralSphere.MoveDown;
    CentralSphere.MoveDown;
 end;
 
-procedure TForm1.CBAdditiveClick(Sender: TObject);
+procedure TFormTransparency.CBAdditiveClick(Sender: TObject);
 begin
    // adjust blending mode for both orbiting spheres
    if CBAdditive.Checked then
@@ -102,7 +102,7 @@ begin
    OrbitingSphere2.Material.BlendingMode:=OrbitingSphere1.Material.BlendingMode;
 end;
 
-procedure TForm1.CBSortingClick(Sender: TObject);
+procedure TFormTransparency.CBSortingClick(Sender: TObject);
 begin
    // adjust sorting on the parent object
    if CBSorting.Checked then
@@ -110,7 +110,7 @@ begin
    else BaseDummyCube.ObjectsSorting:=osNone;
 end;
 
-procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
+procedure TFormTransparency.GLCadencer1Progress(Sender: TObject; const deltaTime,
   newTime: Double);
 var
    alpha : Double;

+ 5 - 5
Examples/Demos/movements/MovementsC.cbproj

@@ -7,9 +7,8 @@
         <MainSource>MovementsC.cpp</MainSource>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
-        <Platform Condition="'$(Platform)'==''">Win32</Platform>
-        <TargetedPlatforms>3</TargetedPlatforms>
-        <CC_Suffix Condition="'$(CC_Suffix)'==''">c</CC_Suffix>
+        <Platform Condition="'$(Platform)'==''">Win64x</Platform>
+        <TargetedPlatforms>1048577</TargetedPlatforms>
         <ProjectName Condition="'$(ProjectName)'==''">MovementsC</ProjectName>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -161,6 +160,7 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64x)'!=''">
         <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <LinkPackageStatics>rtl.lib;vcl.lib;GLScene_RT.lib;xmlrtl.lib;vclimg.lib</LinkPackageStatics>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <Defines>NDEBUG;$(Defines)</Defines>
@@ -1307,8 +1307,8 @@
             </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>
-                <Platform value="Win64">True</Platform>
-                <Platform value="Win64x">False</Platform>
+                <Platform value="Win64">False</Platform>
+                <Platform value="Win64x">True</Platform>
             </Platforms>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 47 - 0
Examples/Demos/specialsFX/Atmosphere/AtmosphereC.cbproj

@@ -9,6 +9,7 @@
         <Config Condition="'$(Config)'==''">Debug</Config>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
+        <ProjectName Condition="'$(ProjectName)'==''">AtmosphereC</ProjectName>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>
@@ -23,6 +24,11 @@
         <CfgParent>Base</CfgParent>
         <Base>true</Base>
     </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Base)'=='true') or '$(Base_Win64x)'!=''">
+        <Base_Win64x>true</Base_Win64x>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
         <Cfg_1>true</Cfg_1>
         <CfgParent>Base</CfgParent>
@@ -40,6 +46,12 @@
         <Cfg_1>true</Cfg_1>
         <Base>true</Base>
     </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64x)'!=''">
+        <Cfg_1_Win64x>true</Cfg_1_Win64x>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
         <Cfg_2>true</Cfg_2>
         <CfgParent>Base</CfgParent>
@@ -57,6 +69,12 @@
         <Cfg_2>true</Cfg_2>
         <Base>true</Base>
     </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64x' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64x)'!=''">
+        <Cfg_2_Win64x>true</Cfg_2_Win64x>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Base)'!=''">
         <SanitizedProjectName>AtmosphereC</SanitizedProjectName>
         <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
@@ -73,6 +91,8 @@
         <BCC_wpar>false</BCC_wpar>
         <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
         <BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
@@ -97,6 +117,14 @@
         <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
         <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64x)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
         <BCC_DisableOptimizations>true</BCC_DisableOptimizations>
@@ -135,6 +163,9 @@
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
         <Defines>_DEBUG;$(Defines)</Defines>
     </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64x)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">
         <TASM_Debugging>None</TASM_Debugging>
     </PropertyGroup>
@@ -144,6 +175,9 @@
     <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
         <Defines>NDEBUG;$(Defines)</Defines>
     </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64x)'!=''">
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
     <ItemGroup>
         <CppCompile Include="AtmosphereC.cpp">
             <BuildOrder>0</BuildOrder>
@@ -948,6 +982,9 @@
                     <Platform Name="Win64">
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Win64x">
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
@@ -1018,6 +1055,10 @@
                         <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Win64x">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="UWP_CppLogo44">
                     <Platform Name="Win32">
@@ -1028,6 +1069,10 @@
                         <RemoteDir>Assets</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Win64x">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="iOS_AppStore1024">
                     <Platform Name="iOSDevice64">
@@ -1241,10 +1286,12 @@
                 <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64x" Name="$(PROJECTNAME)"/>
             </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win64">False</Platform>
+                <Platform value="Win64x">False</Platform>
             </Platforms>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 127 - 62
Examples/Demos/specialsFX/Atmosphere/fAtmosphereD.dfm

@@ -1,27 +1,36 @@
 object FormAtmosphere: TFormAtmosphere
   Left = 244
   Top = 109
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   Caption = 'Atmosphere'
-  ClientHeight = 475
-  ClientWidth = 678
+  ClientHeight = 831
+  ClientWidth = 1187
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Position = poScreenCenter
   OnClose = FormClose
   OnCreate = FormCreate
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
-    Left = 153
+    Left = 268
     Top = 0
-    Width = 525
-    Height = 475
+    Width = 919
+    Height = 831
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
-    FieldOfView = 165.601531982421900000
+    FieldOfView = 171.740570068359400000
     PenAsTouch = False
     Align = alClient
     TabOrder = 0
@@ -29,89 +38,133 @@ object FormAtmosphere: TFormAtmosphere
   object Panel1: TPanel
     Left = 0
     Top = 0
-    Width = 153
-    Height = 475
+    Width = 268
+    Height = 831
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Align = alLeft
     TabOrder = 1
     object Label1: TLabel
-      Left = 13
-      Top = 368
-      Width = 41
-      Height = 13
+      Left = 23
+      Top = 644
+      Width = 74
+      Height = 24
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Controls:'
     end
     object Label2: TLabel
-      Left = 13
-      Top = 387
-      Width = 103
-      Height = 13
+      Left = 23
+      Top = 677
+      Width = 186
+      Height = 24
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Mouse Wheel = zoom'
     end
     object Label3: TLabel
-      Left = 13
-      Top = 406
-      Width = 120
-      Height = 13
+      Left = 23
+      Top = 711
+      Width = 213
+      Height = 24
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Hold Mouse and Move = '
     end
     object Label4: TLabel
-      Left = 19
-      Top = 425
-      Width = 68
-      Height = 13
+      Left = 33
+      Top = 744
+      Width = 121
+      Height = 24
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = ' = turn camera'
     end
     object Button1: TButton
-      Left = 13
-      Top = 15
-      Width = 74
-      Height = 25
+      Left = 23
+      Top = 26
+      Width = 129
+      Height = 44
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Rotate Planet'
       TabOrder = 0
       OnClick = Button1Click
     end
     object Button4: TButton
-      Left = 13
-      Top = 46
-      Width = 108
-      Height = 25
+      Left = 23
+      Top = 81
+      Width = 189
+      Height = 43
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Move Planet Right'
       TabOrder = 1
       OnClick = Button4Click
     end
     object Button5: TButton
-      Left = 13
-      Top = 78
-      Width = 108
-      Height = 24
+      Left = 23
+      Top = 137
+      Width = 189
+      Height = 42
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Move Planet Left'
       TabOrder = 2
       OnClick = Button5Click
     end
     object Button2: TButton
-      Left = 13
-      Top = 109
-      Width = 88
-      Height = 25
+      Left = 23
+      Top = 191
+      Width = 154
+      Height = 44
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Move Sun Right'
       TabOrder = 3
       OnClick = Button2Click
     end
     object Button3: TButton
-      Left = 13
-      Top = 140
-      Width = 88
-      Height = 25
+      Left = 23
+      Top = 245
+      Width = 154
+      Height = 44
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Move Sun Left'
       TabOrder = 4
       OnClick = Button3Click
     end
     object Button9: TButton
-      Left = 11
-      Top = 171
-      Width = 54
-      Height = 25
+      Left = 19
+      Top = 299
+      Width = 95
+      Height = 44
       Hint = 'Mouse Wheel Can change zoom too'
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Zoom in'
       ParentShowHint = False
       ShowHint = True
@@ -119,11 +172,15 @@ object FormAtmosphere: TFormAtmosphere
       OnClick = Button9Click
     end
     object Button10: TButton
-      Left = 76
-      Top = 171
-      Width = 58
-      Height = 25
+      Left = 133
+      Top = 299
+      Width = 102
+      Height = 44
       Hint = 'Mouse Wheel Can change zoom too'
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Zoom out'
       ParentShowHint = False
       ShowHint = True
@@ -131,19 +188,27 @@ object FormAtmosphere: TFormAtmosphere
       OnClick = Button10Click
     end
     object Button8: TButton
-      Left = 10
-      Top = 336
-      Width = 122
-      Height = 26
+      Left = 18
+      Top = 588
+      Width = 213
+      Height = 46
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Change Blending Mode'
       TabOrder = 7
       OnClick = Button8Click
     end
     object rgAtmosphere: TRadioGroup
-      Left = 10
-      Top = 218
-      Width = 124
-      Height = 103
+      Left = 18
+      Top = 382
+      Width = 217
+      Height = 180
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Atmosphere'
       ItemIndex = 0
       Items.Strings = (

+ 1 - 0
Examples/_cleanexamples.cmd

@@ -62,6 +62,7 @@ echo---------------------------------------------------------
 echo delete debug and Platform directories with all subdirectories and files 
 for /r %1 %%R in (Win32) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Win64) do if exist "%%R" (rd /s /q "%%R")
+for /r %1 %%R in (Win64x) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Debug) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Release) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Debug_Build) do if exist "%%R" (rd /s /q "%%R")

+ 0 - 2
Help/#IDH/IdhFiles.txt

@@ -1,2 +0,0 @@
-..\Help\#IDH\IDH_MAIN.H
-..\Help\#IDH\IDH_POPUP.H

+ 0 - 13
Help/#IDH/Idh_Main.h

@@ -1,13 +0,0 @@
-#define IDH_Introduction 0
-#define IDH_Basement 1000
-#define IDH_DesignTime 2000
-#define IDH_FileFormats 3000
-#define IDH_Geometry 4000
-#define IDH_Physics 5000
-#define IDH_Scripting 6000
-#define IDH_Shaders 7000
-#define IDH_Sounds 8000
-#define IDH_Help 9000
-#define IDH_HelpContents 9001
-#define IDH_HelpGlossary 9002
-#define IDH_HelpAbout 9009

+ 0 - 4
Help/#IDH/Idh_Popup.h

@@ -1,4 +0,0 @@
-#define IDH_POPUP_NEWBTN 61
-#define IDH_POPUP_OPENBTN 62
-#define IDH_POPUP_FNAMEEDIT 63
-#define IDH_POPUP_LNAMEEDIT 64

+ 0 - 12
Help/GLSGuide/GLSGuide.hhc

@@ -1,12 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML>
-<HEAD>
-<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
-<!-- Sitemap 1.0 -->
-</HEAD><BODY>
-<OBJECT type="text/site properties">
-	<param name="Auto Generated" value="Yes">
-</OBJECT>
-<UL>
-</UL>
-</BODY></HTML>

+ 0 - 9
Help/GLSGuide/GLSGuide.hhk

@@ -1,9 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<HTML>
-<HEAD>
-<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
-<!-- Sitemap 1.0 -->
-</HEAD><BODY>
-<UL>
-</UL>
-</BODY></HTML>

+ 0 - 29
Help/GLSGuide/GLSGuide.hhp

@@ -1,29 +0,0 @@
-[OPTIONS]
-Auto Index=Yes
-Auto TOC=9
-Binary TOC=Yes
-Compatibility=1.1 or later
-Compiled file=GLSGuide.chm
-Contents file=GLSGuide.hhc
-Default topic=Installation\Installation.htm
-Display compile progress=No
-Full-text search=Yes
-Index file=GLSGuide.hhk
-Language=0x409 Àíãëèéñêèé (ÑØÀ)
-Title=GLScene Guide
-
-
-[FILES]
-Installation\Installation.htm
-Introduction\Introduction.htm
-Introduction\Welcome.htm
-
-[MAP]
-#include ..\..\#IDH\Idh_Main.h
-
-[TEXT POPUPS]
-..\..\#IDH\Idh_Popup.h
-..\..\#IDH\IdhFiles.txt
-
-[INFOTYPES]
-

+ 0 - 187
Help/GLSGuide/Introduction/Introduction.htm

@@ -1,187 +0,0 @@
-<html>
-
-<head>
-<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
-<meta name=Generator content="Microsoft Word 15 (filtered)">
-<style>
-<!--
- /* Font Definitions */
- @font-face
-	{font-family:"Cambria Math";
-	panose-1:2 4 5 3 5 4 6 3 2 4;}
-@font-face
-	{font-family:Calibri;
-	panose-1:2 15 5 2 2 2 4 3 2 4;}
-@font-face
-	{font-family:Consolas;
-	panose-1:2 11 6 9 2 2 4 3 2 4;}
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-	{margin-top:0cm;
-	margin-right:0cm;
-	margin-bottom:8.0pt;
-	margin-left:0cm;
-	line-height:107%;
-	font-size:11.0pt;
-	font-family:"Calibri",sans-serif;}
-p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
-	{mso-style-link:"Òåêñò Çíàê";
-	margin:0cm;
-	margin-bottom:.0001pt;
-	font-size:10.5pt;
-	font-family:Consolas;}
-span.a
-	{mso-style-name:"Òåêñò Çíàê";
-	mso-style-link:Òåêñò;
-	font-family:Consolas;}
-.MsoChpDefault
-	{font-family:"Calibri",sans-serif;}
-.MsoPapDefault
-	{margin-bottom:8.0pt;
-	line-height:107%;}
-@page WordSection1
-	{size:595.3pt 841.9pt;
-	margin:2.0cm 66.75pt 2.0cm 66.7pt;}
-div.WordSection1
-	{page:WordSection1;}
--->
-</style>
-
-</head>
-
-<body lang=RU>
-
-<div class=WordSection1>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Intro</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>-------------------------------------------------------</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>GLScene
-is an OpenGL based 3D library for Delphi, C++Builder and Lazarus. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>It
-provides visual components and objects allowing description and rendering of 3D
-scenes in an easy, </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>no-hassle,
-yet powerfull manner.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>GLScene
-is not just an OpenGL wrapper or utility library, it has grown to become a set
-of founding classes </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>for a
-generic 3D engine with Rapid Application Development in mind. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>GLScene
-allows you to quickly design and render 3D scenes without having to learn the
-intricacies of OpenGL: </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>if you
-know how to design a TForm, you'll easily master the basic operation of
-TGLScene. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Make
-sure to checkout the introduction tutorial included in the help folder.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>GLScene
-includes more than many components and a variety of founding classes. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>The
-library comes with a comfortable set of demos showcasing the ease of use and
-demonstrating RAD wasn't done </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>at the
-expense of CPU horsepower. Advanced demos and samples can be found in the project
-repository </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>at
-http://sourceforge/projects/glscene/</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>The
-GLScene Sound System allows positional 3D audio via low-level APIs like </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>FMOD,
-BASS, OpenAL and WaveOut.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>---------------------------------------------------------</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>To
-Install GLScene follow the instruction in installation directory. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>To
-compile GLScene, after having installed all the necessary units and updated
-your environment library paths </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>(and
-after making sure you have no duplicates or leftover units from other/older
-packages), </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>open
-and install the package appropriate in the corresponding directory. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>If you
-checked out from the SVN, compile issues are possible, it's the bleeding edge, </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>and it
-is not called &quot;bleeding&quot; without reason. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Otherwise,
-check your Delphi paths for duplicates or old .pas/.dcu that's where the
-problem lies 99% of the time.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>If you
-have installed a current version, make sure no files of the previous version
-remains, </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>some
-files may have been renamed, moved or removed in between versions. </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Use
-MassReplace utility in Utilities folder to update apps/demos for old versions </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>to
-current one.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'> </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>Compile
-options (activated/deactivated in GLScene.inc, all are inactive by default):</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>The
-option DEFINE GLS_Graphics32_SUPPORT  controls support and dependency to Alex
-Denissov's Graphics32 library </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>(http://www.graphics32.org),
-once activated in GLScene.inc, TGLBitmap32 will redirect </span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>assignments
-from TBitmap32.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>See
-http://www.sourceforge.net/projects/glscene for more details.</span></p>
-
-<p class=MsoPlainText><span lang=EN-US style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span style='font-family:"Courier New"'>--------------------------------------------------------------</span></p>
-
-<p class=MsoPlainText><span style='font-family:"Courier New"'>&nbsp;</span></p>
-
-<p class=MsoPlainText><span style='font-family:"Courier New"'>GLSTeam</span></p>
-
-</div>
-
-</body>
-
-</html>

二進制
Help/GuideGLS.pdf


二進制
Help/GuideGLS_ru.pdf


+ 0 - 0
Help/Инсталляция.pdf → Help/Installation_ru.pdf


+ 3 - 3
Packages/GLScene_RT.dproj

@@ -4,7 +4,7 @@
         <MainSource>GLScene_RT.dpk</MainSource>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
-        <TargetedPlatforms>3</TargetedPlatforms>
+        <TargetedPlatforms>1048577</TargetedPlatforms>
         <AppType>Package</AppType>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>20.1</ProjectVersion>
@@ -420,8 +420,8 @@
             </Delphi.Personality>
             <Platforms>
                 <Platform value="Win32">True</Platform>
-                <Platform value="Win64">True</Platform>
-                <Platform value="Win64x">False</Platform>
+                <Platform value="Win64">False</Platform>
+                <Platform value="Win64x">True</Platform>
             </Platforms>
             <Deployment Version="4">
                 <DeployFile LocalName="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GLScene_RT.bpl" Configuration="Debug" Class="ProjectOutput"/>

+ 1 - 3
Source/FmInfo.dfm

@@ -37,7 +37,7 @@ object GLInfoForm: TGLInfoForm
     Margins.Top = 5
     Margins.Right = 5
     Margins.Bottom = 5
-    ActivePage = TabSheetContributors
+    ActivePage = TabSheetGLScene
     Align = alTop
     TabOrder = 0
     object TabSheetGLScene: TTabSheet
@@ -3813,8 +3813,6 @@ object GLInfoForm: TGLInfoForm
         ReadOnly = True
         ScrollBars = ssVertical
         TabOrder = 0
-        ExplicitLeft = 5
-        ExplicitTop = 56
       end
     end
     object TabSheetAbout: TTabSheet

+ 6 - 6
Source/GLS.Atmosphere.pas

@@ -80,7 +80,7 @@ type
       write SetAtmosphereRadius stored StoreAtmosphereRadius;
     property PlanetRadius: Single read FPlanetRadius write SetPlanetRadius
       stored StorePlanetRadius;
-    // Use value slightly lower than actual radius, for antialiasing effect.
+    // Use value slightly lower than actual radius, for antialiasing effect
     property LowAtmColor: TGLColor read FLowAtmColor write SetLowAtmColor
       stored StoreLowAtmColor;
     property HighAtmColor: TGLColor read FHighAtmColor write SetHighAtmColor
@@ -90,14 +90,14 @@ type
     procedure SetOptimalAtmosphere(const ARadius: Single); // absolute
     procedure SetOptimalAtmosphere2(const ARadius: Single); // relative
     procedure TogleBlendingMode; // changes between 2 blending modes
-    // Standard component stuff.
+    // Standard component stuff
     procedure Assign(Source: TPersistent); override;
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
-    // Main rendering procedure.
+    // Main rendering procedure
     procedure DoRender(var rci: TGLRenderContextInfo;
       renderSelf, renderChildren: Boolean); override;
-    // Used to determine extents.
+    // Used to determine extents
     function AxisAlignedDimensionsUnscaled: TGLVector; override;
   end;
 
@@ -158,8 +158,8 @@ end;
 
 destructor TGLCustomAtmosphere.Destroy;
 begin
-  FLowAtmColor.Free;
-  FHighAtmColor.Free;
+  FreeAndNil(FLowAtmColor);
+  FreeAndNil(FHighAtmColor);
   FreeMem(pVertex);
   FreeMem(pColor);
   inherited;

+ 5 - 3
Source/GLS.Coordinates.pas

@@ -309,6 +309,8 @@ procedure BipolarCylindrical_Cartesian(const u, v, z1, a: single;
 procedure BipolarCylindrical_Cartesian(const u, v, z1, a: double;
   var x, y, z: double; var ierr: integer); overload;
 
+
+
 var
   (* Specifies if TGLCustomCoordinates should allocate memory for
     their default values (ie. design-time) or not (run-time) *)
@@ -319,9 +321,9 @@ implementation
 //==================================================================
 
 const
-  csVectorHelp = 'If you are getting assertions here, consider using the SetPoint procedure';
-  csPointHelp = 'If you are getting assertions here, consider using the SetVector procedure';
-  csPoint2DHelp = 'If you are getting assertions here, consider using one of the SetVector or SetPoint procedures';
+  csVectorHelp = 'When getting assertions here use the SetPoint procedure';
+  csPointHelp = 'When getting assertions here use the SetVector procedure';
+  csPoint2DHelp = 'When getting assertions here use one of the SetVector or SetPoint procedures';
 
   // ------------------
   // ------------------ TGLCustomCoordinates ------------------

+ 1 - 1
Source/GLS.FileSTL.pas

@@ -316,4 +316,4 @@ initialization
   STLUseEmbeddedColors := False;
   RegisterVectorFileFormat('stl', 'Stereolithography files', TGLSTLVectorFile);
 
-end.
+end.

+ 1 - 0
Source/GLS.Particles.pas

@@ -368,3 +368,4 @@ initialization
 
 end.
 
+

+ 1 - 1
Source/GLS.Scene.pas

@@ -60,7 +60,7 @@ type
 const
   cDefaultProxyOptions = [pooEffects, pooObjects, pooTransformation];
   GLSCENE_REVISION = '$Revision: 2024$';
-  GLSCENE_VERSION = 'v2.5 %s';
+  GLSCENE_VERSION = 'v2.8 %s';
 
 type
 

+ 1 - 1
Source/Physics.SPIFields.pas

@@ -1,5 +1,5 @@
 //
-// The graphics rendering engine GLScene http://glscene.org
+// The graphics engine GLScene https://github.com/glscene
 //
 unit Physics.SPIFields;
 

+ 1 - 1
Source/Physics.SPIForces.pas

@@ -1,5 +1,5 @@
 //
-// The graphics rendering engine GLScene http://glscene.org
+// The graphics engine GLScene https://github.com/glscene
 //
 unit Physics.SPIForces;
 

+ 1 - 1
Source/Physics.SPIInertias.pas

@@ -1,5 +1,5 @@
 //
-// The graphics rendering engine GLScene http://glscene.org
+// The graphics engine GLScene https://github.com/glscene
 //
 unit Physics.SPIInertias;
 

+ 1 - 1
Source/Physics.SPIJoints.pas

@@ -1,5 +1,5 @@
 //
-// The graphics rendering engine GLScene http://glscene.org
+// The graphics engine GLScene https://github.com/glscene
 //
 unit Physics.SPIJoints;
 

+ 1 - 1
Source/Physics.SPIManager.pas

@@ -1,5 +1,5 @@
 //
-// The graphics rendering engine GLScene http://glscene.org
+// The graphics engine GLScene https://github.com/glscene
 //
 unit Physics.SPIManager;
 

+ 1 - 0
_cleandebug.cmd

@@ -73,6 +73,7 @@ echo---------------------------------------------------------
 echo delete debug and Platform directories with all subdirectories and files 
 rem    for /r %1 %%R in (Win32) do if exist "%%R" (rd /s /q "%%R")
 rem    for /r %1 %%R in (Win64) do if exist "%%R" (rd /s /q "%%R")
+rem    for /r %1 %%R in (Win64x) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Debug_Build) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Debug) do if exist "%%R" (rd /s /q "%%R")
 for /r %1 %%R in (Release_Build) do if exist "%%R" (rd /s /q "%%R")