Przeglądaj źródła

Added AdvDemos.htm

glscene 1 rok temu
rodzic
commit
5c11cc2f82
73 zmienionych plików z 2132 dodań i 407 usunięć
  1. 0 0
      Assets/Icon/Arena.ico
  2. BIN
      Assets/Icon/Earth.ico
  3. BIN
      Assets/Icon/Pyramid.ico
  4. 218 0
      Examples/AdvDemos.htm
  5. BIN
      Examples/AdvDemos/ActorMS3D/Actorms3d.jpg
  6. 8 12
      Examples/AdvDemos/ActorMS3D/Actorms3dD.dpr
  7. BIN
      Examples/AdvDemos/Archipelago/Archipelago.jpg
  8. 7 5
      Examples/AdvDemos/Archipelago/ArchipelagoC.cbproj
  9. 7 8
      Examples/AdvDemos/Archipelago/ArchipelagoD.dpr
  10. 7 5
      Examples/AdvDemos/Archipelago/ArchipelagoD.dproj
  11. 2 8
      Examples/AdvDemos/Archipelago/Readme.txt
  12. BIN
      Examples/AdvDemos/Christmas/Christmas.jpg
  13. 3 10
      Examples/AdvDemos/Christmas/ChristmasD.dpr
  14. 6 6
      Examples/AdvDemos/Christmas/fChrismasC.cpp
  15. 16 7
      Examples/AdvDemos/Christmas/fChrismasC.dfm
  16. 1 3
      Examples/AdvDemos/Christmas/fChrismasD.pas
  17. BIN
      Examples/AdvDemos/Earth/Earth.jpg
  18. 3 3
      Examples/AdvDemos/Earth/Readme.txt
  19. BIN
      Examples/AdvDemos/Forest/Forest.jpg
  20. 1212 0
      Examples/AdvDemos/Forest/ForestC.cbproj
  21. 35 0
      Examples/AdvDemos/Forest/ForestC.cpp
  22. 16 0
      Examples/AdvDemos/Forest/fForestC.cpp
  23. 20 0
      Examples/AdvDemos/Forest/fForestC.dfm
  24. 21 0
      Examples/AdvDemos/Forest/fForestC.h
  25. 16 9
      Examples/AdvDemos/Forest/fForestD.dfm
  26. 2 2
      Examples/AdvDemos/GLSViewer/GLSViewerD.dpr
  27. 12 3
      Examples/AdvDemos/GLSViewer/GLSViewerD.dproj
  28. 40 48
      Examples/AdvDemos/GLSViewer/Source/fGLAbout.dfm
  29. 0 1
      Examples/AdvDemos/GLSViewer/Source/fGLAbout.pas
  30. 2 4
      Examples/AdvDemos/GLSViewer/Source/fGLDialog.dfm
  31. 4 4
      Examples/AdvDemos/GLSViewer/Source/fGLForm.dfm
  32. 28 7
      Examples/AdvDemos/GLSViewer/Source/fGLOptions.dfm
  33. 4 4
      Examples/AdvDemos/GLSViewer/Source/fGLOptions.pas
  34. 3 5
      Examples/AdvDemos/GLSViewer/readme.txt
  35. BIN
      Examples/AdvDemos/IntensityMesh/IntensityMesh.jpg
  36. 2 2
      Examples/AdvDemos/IntensityMesh/IntensityMeshD.dpr
  37. 1 1
      Examples/AdvDemos/IntensityMesh/IntensityMeshD.dproj
  38. 59 31
      Examples/AdvDemos/IntensityMesh/fIntensityMeshD.dfm
  39. 10 10
      Examples/AdvDemos/IntensityMesh/fIntensityMeshD.pas
  40. BIN
      Examples/AdvDemos/PanoramViewer/PanoViewer.jpg
  41. 6 8
      Examples/AdvDemos/PanoramViewer/PanoViewerD.dpr
  42. 2 3
      Examples/Demos.htm
  43. 78 37
      Examples/Demos/behaviours/Torque/fTorqueC.dfm
  44. 1 1
      Examples/Demos/bench/pcBench.cbproj
  45. 1 1
      Examples/Demos/cgshaders/pdCGshaders.dproj
  46. 97 51
      Examples/Demos/collisions/TriangleBox/fTriangleBoxD.dfm
  47. 18 18
      Examples/Demos/collisions/TriangleBox/fTriangleBoxD.pas
  48. 3 2
      Examples/Demos/extrusion/fdExtrusion.dfm
  49. 3 3
      Examples/Demos/extrusion/pcExtrusion.cbproj
  50. 27 11
      Examples/Demos/glslshaders/fdGLSLshaders.dfm
  51. 11 2
      Examples/Demos/glslshaders/fdGLSLshaders.pas
  52. 1 1
      Examples/Demos/glslshaders/pdGLSLshaders.dproj
  53. 6 6
      Examples/Demos/graph/fcGraph.dfm
  54. 10 6
      Examples/Demos/graph/fdGraph.dfm
  55. 1 1
      Examples/Demos/graph/pcGraph.cbproj
  56. 3 3
      Examples/Demos/graph/pcGraph.cpp
  57. 26 11
      Examples/Demos/interface/fdInterface.dfm
  58. 1 1
      Examples/Demos/interface/pdInterface.dproj
  59. 14 14
      Examples/Demos/materials/fdMaterials.dfm
  60. 1 1
      Examples/Demos/materials/pdMaterials.dproj
  61. 1 1
      Examples/Demos/meshes/pdMeshes.dproj
  62. 1 1
      Examples/Demos/movements/pdMovements.dproj
  63. 1 1
      Examples/Demos/physics/pdPhysics.dproj
  64. 1 1
      Examples/Demos/rendering/pdRendering.dproj
  65. 1 1
      Examples/Demos/sound/pdSound.dproj
  66. 29 11
      Examples/Demos/specialsFX/fdSpecialsFX.dfm
  67. 11 2
      Examples/Demos/specialsFX/fdSpecialsFX.pas
  68. 1 1
      Examples/Demos/specialsFX/pdSpecialsFX.dproj
  69. 1 1
      Examples/Demos/sprites/pdSprites.dproj
  70. 1 1
      Examples/Demos/utilities/pdUtilities.dproj
  71. 3 1
      README.md
  72. 1 0
      Source/GLS.Graph.pas
  73. 5 6
      Source/GLS.Material.pas

+ 0 - 0
Examples/AdvDemos/Archipelago/Archipelago.ico → Assets/Icon/Arena.ico


BIN
Assets/Icon/Earth.ico


BIN
Assets/Icon/Pyramid.ico


+ 218 - 0
Examples/AdvDemos.htm

@@ -0,0 +1,218 @@
+<html>
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=Generator content="Microsoft Word 15 (filtered)">
+<title>GLScene AdvDemos :</title>
+<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:Consolas;
+	panose-1:2 11 6 9 2 2 4 3 2 4;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{margin:0cm;
+	margin-bottom:.0001pt;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:purple;
+	text-decoration:underline;}
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
+	{mso-style-link:"\0422\0435\043A\0441\0442 \0417\043D\0430\043A";
+	margin-right:0cm;
+	margin-left:0cm;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+p.msonormal0, li.msonormal0, div.msonormal0
+	{mso-style-name:msonormal;
+	margin-right:0cm;
+	margin-left:0cm;
+	font-size:12.0pt;
+	font-family:"Times New Roman",serif;}
+span.a
+	{mso-style-name:"\0422\0435\043A\0441\0442 \0417\043D\0430\043A";
+	mso-style-link:\0422\0435\043A\0441\0442;
+	font-family:Consolas;}
+p.msochpdefault, li.msochpdefault, div.msochpdefault
+	{mso-style-name:msochpdefault;
+	margin-right:0cm;
+	margin-left:0cm;
+	font-size:10.0pt;
+	font-family:"Times New Roman",serif;}
+.MsoChpDefault
+	{font-size:10.0pt;}
+@page WordSection1
+	{size:595.3pt 841.9pt;
+	margin:2.0cm 42.5pt 2.0cm 3.0cm;}
+div.WordSection1
+	{page:WordSection1;}
+ /* List Definitions */
+ ol
+	{margin-bottom:0cm;}
+ul
+	{margin-bottom:0cm;}
+-->
+</style>
+
+</head>
+
+<body bgcolor=white lang=RU link=blue vlink=purple>
+
+<div class=WordSection1>
+
+<div align=center>
+
+<table class=MsoNormalTable border=0 cellspacing=3 cellpadding=0 width="100%"
+ style='width:100.0%'>
+ <tr>
+  <td width="15%" style='width:15.0%;padding:.75pt .75pt .75pt .75pt'></td>
+  <td width="70%" style='width:70.0%;padding:.75pt .75pt .75pt .75pt'>
+  <p class=MsoNormal align=center style='text-align:center'><strong><span
+  lang=EN-US style='font-size:36.0pt;font-family:"Arial",sans-serif;color:#FF8000'>GLScene</span></strong><b><span
+  lang=EN-US style='font-family:"Arial",sans-serif;color:#FF8000'><br>
+  <strong><span style='font-family:"Arial",sans-serif'>OpenGL Solution for
+  Delphi &amp; C++Builder</span></strong></span></b></p>
+  <p class=MsoNormal align=center style='text-align:center'><span lang=EN-US
+  style='font-size:7.5pt;font-family:"Arial",sans-serif'>&nbsp;</span></p>
+  <p class=MsoNormal align=center style='text-align:center'><span
+  style='font-size:7.5pt;font-family:"Arial",sans-serif'>website: </span><a
+  href="http://glscene.org"><span style='font-size:7.5pt;font-family:"Arial",sans-serif'>http://glscene.org</span></a></p>
+  </td>
+  <td width="15%" style='width:15.0%;padding:.75pt .75pt .75pt .75pt'>
+  <p class=MsoNormal align=right style='text-align:right'>&nbsp;</p>
+  </td>
+ </tr>
+</table>
+
+</div>
+
+<div class=MsoNormal align=center style='text-align:center'><span lang=FR>
+
+<hr size=1 width="100%" noshade style='color:#FF8000' align=center>
+
+</span></div>
+
+<p class=MsoPlainText align=center style='text-align:center'><b><span lang=FR
+style='font-size:18.0pt;font-family:"Courier New";color:#FF8000'>GLScene AdvDemos</span></b></p>
+
+
+<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>Advanced demos of GLScene 
+are advanced more complex applications. They are all heavily commented and tips 
+and tricks are dispensed on the fly. </span></b></p>
+<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>
+Samples have been designed to run as smoothly 
+as possible with software using OpenGL.</span></p>
+<p class=MsoNormal><span lang=FR style='font-size:10.0pt'>All these samples are distributed 
+as free software, which basically means you can use them freely for free software.</span></p>
+<p class=MsoNormal><span lang=FR style='font-size:10.0pt'> 
+GLScene demos should always be distributed as a whole, in their original package.</span></p>
+<p></p>
+
+<body bgcolor=white lang=RU link=blue vlink=purple>
+
+<div class=WordSection1>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/ActorMS3D/ActorMS3dD.dpr"><b>ActorMS 3D</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>how easy to use milkshape animations</span></li>
+  <li class=MsoNormal><span lang=FR>animations also make use of MS3D's weighted vertexes needed to be more realistic</span></li>
+  <li class=MsoNormal><span lang=FR>model was made with MS3D, UVMapping and texturing with Paintshop</span></li>
+ </ul>
+</ul>
+
+<p class=MsoPlainText><b><span style='font-size:13.5pt;font-family:"Courier New"'><img
+border=0 width=455 height=301 src=AdvDemos/ActorMS3D/ActorMS3d.jpg></span></b></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/Archipelago/ArchipelagoD.dpr"><b>Archipelago</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>illustrates TerrainRenderer with a material library</span></li>
+  <li class=MsoNormal><span lang=FR>used HeightTileFileHDS as primary elevation datasource</span></li> 
+  <li class=MsoNormal><span lang=FR>and CustomHDS to attach texturing information to the elevation samples</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=446 height=363 src=AdvDemos/Archipelago/Archipelago.jpg></p>
+<p></p>
+<p class=MsoNormal><span lang=FR>&nbsp;</span></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/Christmas/ChristmasD.dpr"><b>Christmas</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>made up from meshes, objects, lens-flares and particle effects</span></li>
+  <li class=MsoNormal><span lang=FR>audio engine BASS is used for the sound part</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=472 height=368 src=AdvDemos/Christmas/Christmas.jpg></p>
+<p></p>
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/Earth/EarthD.dpr"><b>Earth</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>texture maps have different resolutions</span></li>
+  <li class=MsoNormal><span lang=FR>atmospheric effect is rendered in GLDirectOpenGL1Render</span></li>
+  <li class=MsoNormal><span lang=FR>stars are built into the TGLSkyDome, constellations are rendered via a TGLLines</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=432 height=325 src=AdvDemos/Earth/Earth.jpg></p>
+<p></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/Forest/ForestD.dpr"><b>Forest</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>the forest on islands in the sea</span></li>
+  <li class=MsoNormal><span lang=FR>water planes created using TGLDirectOpenGL object</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=432 height=325 src=AdvDemos/Forest/Forest.jpg></p>
+<p></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/GLSViewer/GLSViewerD.dpr"><b>GLSViewer</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>viewer of models with textures</span></li>
+  <li class=MsoNormal><span lang=FR>used treeview with TImageList and TImageCollection</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=464 height=361 src=AdvDemos/GLSViewer/GLSViewer.jpg></p>
+<p></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/IntensityMesh/IntensityMeshD.dpr"><b>IntensityMesh</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>interactive representation of Finite Element Analysis</span></li>
+  <li class=MsoNormal><span lang=FR>data usually is used to predict steel yielding</span></li>
+  <li class=MsoNormal><span lang=FR>multipass shader to overlay the model's wireframe using smoothed lines</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=387 height=287 src=AdvDemos/IntensityMesh/IntensityMesh.jpg></p>
+<p></p>
+
+<ul style='margin-top:0cm' type=disc>
+ <li class=MsoNormal><span lang=FR><a href="AdvDemos/PanoramViewer/PanoViewerD.dpr"><b>PanoramViewer</b></a><b>&nbsp;:</b></span></li>
+ <ul style='margin-top:0cm' type=circle>
+  <li class=MsoNormal><span lang=FR>Simple spherical panorama viewer</span></li>
+ </ul>
+</ul>
+
+<p class=MsoNormal><img border=0 width=387 height=287 src=AdvDemos/PanoramViewer/PanoViewer.jpg></p>
+<p></p>
+
+</div>
+
+</body>
+
+</html>

BIN
Examples/AdvDemos/ActorMS3D/Actorms3d.jpg


+ 8 - 12
Examples/AdvDemos/ActorMS3D/Actorms3dD.dpr

@@ -1,27 +1,23 @@
-{: This demo shows how easy it is to use milkshape animations in GLScene. The
+(* 
+    This demo shows how easy it is to use milkshape animations in GLScene. The
     animations are courtesy of Carnegie-Mellon's motion capture project. 
     animations are courtesy of Carnegie-Mellon's motion capture project. 
 
 
     Animations also make use of MS3D's weighted vertexes. This was really needed as
     Animations also make use of MS3D's weighted vertexes. This was really needed as
     it makes animations much more realistic, as you will see.
     it makes animations much more realistic, as you will see.
-
+	
     The demo also shows the use of double sided textures (her hair), specular lighting,
     The demo also shows the use of double sided textures (her hair), specular lighting,
     and transparency. To make a texture doublesided, just give it a tiny bit of transparency
     and transparency. To make a texture doublesided, just give it a tiny bit of transparency
     in Milkshape. This will cause the loader to turn off backface culling for any group that
     in Milkshape. This will cause the loader to turn off backface culling for any group that
-    uses that material. 
-
-    I have also utilized one of Yar's shader demos modified a little so the spotlight
-    will always follow the actor during the animation sequence.
-
+    uses that material. Оne of shader demos was modified by TL a little so the spotlight 
+	will always follow the actor during the animation sequence.
+	
     Model was made with MS3D, UVMapping and texturing were done with Paintshop and UVMapper Pro
     Model was made with MS3D, UVMapping and texturing were done with Paintshop and UVMapper Pro
-
     Note on the animations: There is a flaw in the MakeSkeletalTranslationStatic routine if you
     Note on the animations: There is a flaw in the MakeSkeletalTranslationStatic routine if you
     want to stop all root node translations. I'll be adding an overloaded method in the real soon.
     want to stop all root node translations. I'll be adding an overloaded method in the real soon.
     For now,  if you do not want root node transformations (i.e. you want her to stay in one spot)
     For now,  if you do not want root node transformations (i.e. you want her to stay in one spot)
     uncomment the line: //pos:=ms3d_joints^[i].Base.Position.V; where the animations are loaded
     uncomment the line: //pos:=ms3d_joints^[i].Base.Position.V; where the animations are loaded
-    in GLFileMS3D.
-
-    TL
-}
+    in GLS.FileMS3D. 
+*)
 
 
 program Actorms3dD;
 program Actorms3dD;
 
 

BIN
Examples/AdvDemos/Archipelago/Archipelago.jpg


+ 7 - 5
Examples/AdvDemos/Archipelago/ArchipelagoC.cbproj

@@ -119,13 +119,15 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <FinalOutputDir>.</FinalOutputDir>
         <FinalOutputDir>.</FinalOutputDir>
-        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <Defines>_DEBUG;$(Defines)</Defines>
         <Defines>_DEBUG;$(Defines)</Defines>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <LinkPackageImports>rtl.bpi;vcl.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi;GLScene_RT.bpi</LinkPackageImports>
         <LinkPackageImports>rtl.bpi;vcl.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi;GLScene_RT.bpi</LinkPackageImports>
         <BT_BuildType>Debug</BT_BuildType>
         <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys>
+        <Icon_MainIcon>..\..\..\Assets\Icon\Arena.ico</Icon_MainIcon>
+        <AppDPIAwarenessMode>none</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
@@ -216,10 +218,10 @@
                     <VersionInfoKeys Name="CFBundleExecutable"/>
                     <VersionInfoKeys Name="CFBundleExecutable"/>
                 </VersionInfoKeys>
                 </VersionInfoKeys>
                 <Excluded_Packages>
                 <Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k240.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp240.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k240.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp240.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k290.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp290.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
                 </Excluded_Packages>
                 </Excluded_Packages>
                 <ProjectProperties>
                 <ProjectProperties>
                     <ProjectProperties Name="AutoShowDeps">False</ProjectProperties>
                     <ProjectProperties Name="AutoShowDeps">False</ProjectProperties>

+ 7 - 8
Examples/AdvDemos/Archipelago/ArchipelagoD.dpr

@@ -1,6 +1,7 @@
-{: Archipelago GLScene demo.
+(* 
+   Archipelago GLScene advdemo.
 
 
-   This demo illustrates several GLScene components:
+   This advdemo illustrates several GLScene components:
    - TerrainRenderer, used with a material library
    - TerrainRenderer, used with a material library
    - TerrainRenderer's OnHeightDataPostRender, used to render sea surface
    - TerrainRenderer's OnHeightDataPostRender, used to render sea surface
    - HeightTileFileHDS, used as primary elevation datasource
    - HeightTileFileHDS, used as primary elevation datasource
@@ -10,15 +11,13 @@
    Note that both custom OpenGL rendering sections are interrelated, the sea
    Note that both custom OpenGL rendering sections are interrelated, the sea
    surface rendering code also setups the stencil buffer, which is used by
    surface rendering code also setups the stencil buffer, which is used by
    the wake rendering code.
    the wake rendering code.
-
+   Eric Grange
+   
    Credits:
    Credits:
    - Terrain elevation map and textures : Mattias Fagerlund
    - Terrain elevation map and textures : Mattias Fagerlund
-     (http://www.cambrianlabs.com/Mattias/)
-   - Sailboat model and textures : Daniel Polli / [email protected]
-     (http://virtualsailor.dansteph.com)
+   - Sailboat model and textures : Daniel Polli 
+*)
 
 
-   Eric Grange (http://glscene.org)
-}
 program ArchipelagoD;
 program ArchipelagoD;
 
 
 uses
 uses

+ 7 - 5
Examples/AdvDemos/Archipelago/ArchipelagoD.dproj

@@ -113,8 +113,10 @@
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
         <BT_BuildType>Debug</BT_BuildType>
         <BT_BuildType>Debug</BT_BuildType>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
-        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)</VerInfo_Keys>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <Icon_MainIcon>..\..\..\Assets\Icon\Arena.ico</Icon_MainIcon>
+        <AppDPIAwarenessMode>none</AppDPIAwarenessMode>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
         <BT_BuildType>Debug</BT_BuildType>
         <BT_BuildType>Debug</BT_BuildType>
@@ -153,10 +155,10 @@
                     <Source Name="MainSource">ArchipelagoD.dpr</Source>
                     <Source Name="MainSource">ArchipelagoD.dpr</Source>
                 </Source>
                 </Source>
                 <Excluded_Packages>
                 <Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k240.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp240.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k240.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
-                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp240.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k290.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp290.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
                 </Excluded_Packages>
                 </Excluded_Packages>
             </Delphi.Personality>
             </Delphi.Personality>
             <Platforms>
             <Platforms>

+ 2 - 8
Examples/AdvDemos/Archipelago/Readme.txt

@@ -1,5 +1,4 @@
-Archipelago demo v2.3 
-https://github.com/glscene/GLScene/tree/master/Examples/AdvDemos/Archipelago
+Archipelago demo 
 
 
 >>>>>> BEFORE starting the demo: <<<<<<
 >>>>>> BEFORE starting the demo: <<<<<<
 
 
@@ -33,10 +32,6 @@ Movements and camera orientation are controled by arrow keys and
 the mouse respectively, camera altitude is controled with 
 the mouse respectively, camera altitude is controled with 
 pageup/pagedown. Exit with the ESC key.
 pageup/pagedown. Exit with the ESC key.
 
 
-Approximative framerates at startup camera angle & position:
-- Athlon XP 1800+ / GF4 Ti 4200: >210 FPS
-- Athlon XP 1800+ / GF2 Pro: >140 FPS
-
 Credits and kindly contributed resources by:
 Credits and kindly contributed resources by:
 
 
 - Terrain elevation map and textures : Mattias Fagerlund
 - Terrain elevation map and textures : Mattias Fagerlund
@@ -60,5 +55,4 @@ Changes to v1.01:
 - added warning for graphics boards memory requirements
 - added warning for graphics boards memory requirements
 - splitter.exe includes basic (low quality) resampling support
 - splitter.exe includes basic (low quality) resampling support
 
 
-Eric Grange 
-http://glscene.org
+GLS Team

BIN
Examples/AdvDemos/Christmas/Christmas.jpg


+ 3 - 10
Examples/AdvDemos/Christmas/ChristmasD.dpr

@@ -1,21 +1,14 @@
 (* GLScene Christmas "ScreenSaver".
 (* GLScene Christmas "ScreenSaver".
 
 
-   Won't save your screen from anything though ;)
-   If placed in Windows\System32 directory you need also to copy data there
-
    The scene is made up from a few meshes, some GLScene objects, several
    The scene is made up from a few meshes, some GLScene objects, several
    lens-flares and particle effects components, and a 2 text. BASS is used
    lens-flares and particle effects components, and a 2 text. BASS is used
-   for the sound part (3D positionned fire loop, and mp3 playback).
-   Wrapped gifts appear around christmas every year.
-
-   Assembled from bits from the web, should be royalty free, but I don't have
-   the means to check... so if you have clues about any of them:
+   for the sound part (3D positioned fire loop, and mp3 playback).
+   Wrapped gifts appear around Christmas every year.
 
 
    Models: from 3DCafe.com
    Models: from 3DCafe.com
    Textures: various origins, some from 3dtextures.fr.st, others made by Eric Grange
    Textures: various origins, some from 3dtextures.fr.st, others made by Eric Grange
    Music: unknown origin, was in a "royalty free" download package
    Music: unknown origin, was in a "royalty free" download package
-
-   https://github.com/GLScene *)
+*)
 
 
 program ChristmasD;
 program ChristmasD;
 
 

+ 6 - 6
Examples/AdvDemos/Christmas/fChrismasC.cpp

@@ -87,7 +87,7 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
 
 
 	// if (miMerryCristmas->Checked)
 	// if (miMerryCristmas->Checked)
 	TheChristmas = false; // Merry Christmas or Happy New Year!
 	TheChristmas = false; // Merry Christmas or Happy New Year!
-    ///Caption = Format("%.1f FPS", ARRAYOFCONST((Viewer->FramesPerSecond())));
+	Caption = Viewer->FramesPerSecond();
 	Viewer->ResetPerformanceMonitor();
 	Viewer->ResetPerformanceMonitor();
 
 
 	if ((GLSMBASS->Active) && (bStream == 0)) {
 	if ((GLSMBASS->Active) && (bStream == 0)) {
@@ -101,8 +101,8 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
 	if (TheChristmas) {
 	if (TheChristmas) {
 		t = EncodeDate(y, 12, 25) - Now();
 		t = EncodeDate(y, 12, 25) - Now();
 		ftCongratulations->Text = "Merry Christmas!";
 		ftCongratulations->Text = "Merry Christmas!";
-	} else {
-		t = EncodeDate(y + 1, 01, 01) - Now();
+    } else {
+        t = EncodeDate(y + 1, 01, 01) - Now();
 		ftCongratulations->Text = "Happy New Year!";
 		ftCongratulations->Text = "Happy New Year!";
 		ftYear->Text = IntToStr(y + 1);
 		ftYear->Text = IntToStr(y + 1);
 	}
 	}
@@ -121,7 +121,7 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
             buf = buf + IntToStr(i) + " hour...";
             buf = buf + IntToStr(i) + " hour...";
 		ftCountDown->Text = buf;
 		ftCountDown->Text = buf;
     } else {
     } else {
-        t = (double)t * 24;
+		t = (double)t * 24;
         if ((double)t > 1) {
         if ((double)t > 1) {
 			buf = IntToStr((int)t) + " hours, ";
 			buf = IntToStr((int)t) + " hours, ";
             i = RoundInt(Frac((double)t) * 60);
             i = RoundInt(Frac((double)t) * 60);
@@ -130,9 +130,9 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
             else
             else
 				buf = buf + IntToStr(i) + " minute...";
 				buf = buf + IntToStr(i) + " minute...";
 			ftCountDown->Text = buf;
 			ftCountDown->Text = buf;
-		} else {     // minutes and seconds
+		} else {
 			t = (double)t * 60;
 			t = (double)t * 60;
-			i = RoundInt(((double)t - Frac((double)t)) * 60); // ?Floor
+			i = RoundInt((double)t - Frac((double)t) * 60); // Floor(t) ambiguous
 			ftCountDown->Text =
 			ftCountDown->Text =
 				IntToStr((int)t) + " minutes, " + IntToStr(i) + " seconds...";
 				IntToStr((int)t) + " minutes, " + IntToStr(i) + " seconds...";
 		}
 		}

+ 16 - 7
Examples/AdvDemos/Christmas/fChrismasC.dfm

@@ -1,15 +1,19 @@
 object Form1: TForm1
 object Form1: TForm1
   Left = 0
   Left = 0
   Top = 0
   Top = 0
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   Align = alClient
   Align = alClient
   BorderStyle = bsNone
   BorderStyle = bsNone
   Caption = 'Christmas'
   Caption = 'Christmas'
-  ClientHeight = 671
-  ClientWidth = 856
+  ClientHeight = 1174
+  ClientWidth = 1498
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'Tahoma'
   Font.Name = 'Tahoma'
   Font.Style = []
   Font.Style = []
   Visible = True
   Visible = True
@@ -19,18 +23,23 @@ object Form1: TForm1
   OnKeyPress = FormKeyPress
   OnKeyPress = FormKeyPress
   OnMouseWheel = FormMouseWheel
   OnMouseWheel = FormMouseWheel
   OnResize = FormResize
   OnResize = FormResize
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 23
   object Viewer: TGLSceneViewer
   object Viewer: TGLSceneViewer
     Left = 0
     Left = 0
     Top = 0
     Top = 0
-    Width = 856
-    Height = 671
+    Width = 1498
+    Height = 1174
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = Camera
     Camera = Camera
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
     Buffer.AmbientColor.Color = {0000803F0000803F0000803F0000803F}
     Buffer.AmbientColor.Color = {0000803F0000803F0000803F0000803F}
     Buffer.ContextOptions = [roDoubleBuffer, roRenderToWindow]
     Buffer.ContextOptions = [roDoubleBuffer, roRenderToWindow]
     Buffer.AntiAliasing = aa2x
     Buffer.AntiAliasing = aa2x
-    FieldOfView = 163.047042846679700000
+    FieldOfView = 170.262725830078100000
     PenAsTouch = False
     PenAsTouch = False
     Align = alClient
     Align = alClient
     OnDblClick = ViewerDblClick
     OnDblClick = ViewerDblClick

+ 1 - 3
Examples/AdvDemos/Christmas/fChrismasD.pas

@@ -280,10 +280,8 @@ begin
       ftCountDown.Text := buf;
       ftCountDown.Text := buf;
     end
     end
     else
     else
-    begin    //minutes and seconds
+    begin
       t := t * 60;
       t := t * 60;
- 			i := Round((t - Floor(t)) * 60);
-
       ftCountDown.Text := IntToStr(Trunc(t)) + ' minutes, ' +
       ftCountDown.Text := IntToStr(Trunc(t)) + ' minutes, ' +
         IntToStr(Round(Frac(t) * 60)) + ' seconds...';
         IntToStr(Round(Frac(t) * 60)) + ' seconds...';
     end;
     end;

BIN
Examples/AdvDemos/Earth/Earth.jpg


+ 3 - 3
Examples/AdvDemos/Earth/Readme.txt

@@ -6,7 +6,7 @@ a stars background and optional constellation lines.
 
 
 The only technical part lies with the atmospheric effect, which
 The only technical part lies with the atmospheric effect, which
 is raytraced on key points, and then interpolated in between. 
 is raytraced on key points, and then interpolated in between. 
-Yes, I know earth atmosphere's is much thinner, but a thicker 
+Yes, the earth atmosphere's is much thinner, but a thicker 
 atmosphere looks better :)
 atmosphere looks better :)
 
 
 Requirements:
 Requirements:
@@ -59,5 +59,5 @@ Known issues:
   (underclocking), they can put a lot of strain on these during AGP 
   (underclocking), they can put a lot of strain on these during AGP 
   texturing.
   texturing.
 
 
-Eric Grange
-http://glscene.org
+Eric Grange 
+& GLS Team

BIN
Examples/AdvDemos/Forest/Forest.jpg


+ 1212 - 0
Examples/AdvDemos/Forest/ForestC.cbproj

@@ -0,0 +1,1212 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{4EB0ED40-3E9F-4AED-92C6-383129D8BE8B}</ProjectGuid>
+        <ProjectVersion>20.1</ProjectVersion>
+        <FrameworkType>VCL</FrameworkType>
+        <AppType>Application</AppType>
+        <MainSource>ForestC.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>
+    </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_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\AdvDemos\Forest\;$(IncludePath)</IncludePath>
+        <ILINK_LibraryPath>D:\GLScene\Examples\AdvDemos\Forest\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <SanitizedProjectName>ForestC</SanitizedProjectName>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <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_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;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_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="'$(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>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Icon_MainIcon>..\..\..\Assets\Icon\Earth.ico</Icon_MainIcon>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
+        <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>
+    <ItemGroup>
+        <CppCompile Include="fForestC.cpp">
+            <Form>FormForest</Form>
+            <FormType>dfm</FormType>
+            <DependentOn>fForestC.h</DependentOn>
+            <BuildOrder>2</BuildOrder>
+        </CppCompile>
+        <CppCompile Include="ForestC.cpp">
+            <BuildOrder>0</BuildOrder>
+        </CppCompile>
+        <FormResources Include="fForestC.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">ForestC.cpp</Source>
+                </Source>
+                <Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k290.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp290.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                </Excluded_Packages>
+            </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\ForestC.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>ForestC.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName=".\Win32\Debug\ForestC.tds" Configuration="Debug" Class="DebugSymbols">
+                    <Platform Name="Win32">
+                        <RemoteName>ForestC.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>
+                </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>
+                </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>
+                </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)"/>
+            </Deployment>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">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/AdvDemos/Forest/ForestC.cpp

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

+ 16 - 0
Examples/AdvDemos/Forest/fForestC.cpp

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

+ 20 - 0
Examples/AdvDemos/Forest/fForestC.dfm

@@ -0,0 +1,20 @@
+object FormForest: TFormForest
+  Left = 0
+  Top = 0
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
+  Caption = 'Forest'
+  ClientHeight = 654
+  ClientWidth = 1029
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -21
+  Font.Name = 'Segoe UI'
+  Font.Style = []
+  Position = poScreenCenter
+  PixelsPerInch = 168
+  TextHeight = 30
+end

+ 21 - 0
Examples/AdvDemos/Forest/fForestC.h

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

+ 16 - 9
Examples/AdvDemos/Forest/fForestD.dfm

@@ -1,14 +1,18 @@
 object Form1: TForm1
 object Form1: TForm1
   Left = 541
   Left = 541
   Top = 166
   Top = 166
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   BorderStyle = bsNone
   BorderStyle = bsNone
   Caption = 'Form1'
   Caption = 'Form1'
-  ClientHeight = 457
-  ClientWidth = 611
+  ClientHeight = 800
+  ClientWidth = 1069
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Font.Style = []
   WindowState = wsMaximized
   WindowState = wsMaximized
@@ -18,12 +22,17 @@ object Form1: TForm1
   OnKeyDown = FormKeyDown
   OnKeyDown = FormKeyDown
   OnResize = FormResize
   OnResize = FormResize
   OnShow = FormShow
   OnShow = FormShow
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 24
   object SceneViewer: TGLSceneViewer
   object SceneViewer: TGLSceneViewer
     Left = 0
     Left = 0
     Top = 0
     Top = 0
-    Width = 611
-    Height = 457
+    Width = 1069
+    Height = 800
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = Camera
     Camera = Camera
     Buffer.FogEnvironment.FogColor.Color = {9CC4403FFED4583F48E17A3F0000803F}
     Buffer.FogEnvironment.FogColor.Color = {9CC4403FFED4583F48E17A3F0000803F}
     Buffer.FogEnvironment.FogStart = 3500.000000000000000000
     Buffer.FogEnvironment.FogStart = 3500.000000000000000000
@@ -33,12 +42,10 @@ object Form1: TForm1
     Buffer.FogEnable = True
     Buffer.FogEnable = True
     Buffer.Lighting = False
     Buffer.Lighting = False
     Buffer.AntiAliasing = aaNone
     Buffer.AntiAliasing = aaNone
-    FieldOfView = 155.314346313476600000
+    FieldOfView = 165.749969482421900000
     PenAsTouch = False
     PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
-    ExplicitWidth = 507
-    ExplicitHeight = 415
   end
   end
   object GLScene: TGLScene
   object GLScene: TGLScene
     ObjectsSorting = osNone
     ObjectsSorting = osNone

+ 2 - 2
Examples/AdvDemos/GLSViewer/GLSViewerD.dpr

@@ -4,7 +4,7 @@ uses
   Forms,
   Forms,
   fGLForm in 'Source\fGLForm.pas' {GLForm},
   fGLForm in 'Source\fGLForm.pas' {GLForm},
   fGLDialog in 'Source\fGLDialog.pas' {GLDialog},
   fGLDialog in 'Source\fGLDialog.pas' {GLDialog},
-  fMain in 'Source\fMain.pas' {MainForm},
+  fGLSViewer in 'Source\fGLSViewer.pas' {FormGLSViewer},
   uGlobals in 'Source\uGlobals.pas',
   uGlobals in 'Source\uGlobals.pas',
   uSettings in 'Source\uSettings.pas',
   uSettings in 'Source\uSettings.pas',
   dGLSViewer in 'Source\dGLSViewer.pas' {dmGLSViewer: TDataModule},
   dGLSViewer in 'Source\dGLSViewer.pas' {dmGLSViewer: TDataModule},
@@ -17,7 +17,7 @@ uses
 begin
 begin
   Application.Initialize;
   Application.Initialize;
   Application.Title := 'GLSViewer';
   Application.Title := 'GLSViewer';
-  Application.CreateForm(TMainForm, MainForm);
+  Application.CreateForm(TFormGLSViewer, FormGLSViewer);
   Application.CreateForm(TdmGLSViewer, dmGLSViewer);
   Application.CreateForm(TdmGLSViewer, dmGLSViewer);
   Application.Run;
   Application.Run;
 end.
 end.

+ 12 - 3
Examples/AdvDemos/GLSViewer/GLSViewerD.dproj

@@ -90,8 +90,11 @@
         <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
         <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
-        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
         <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <Icon_MainIcon>..\..\..\Assets\Icon\Pyramid.ico</Icon_MainIcon>
     </PropertyGroup>
     </PropertyGroup>
     <ItemGroup>
     <ItemGroup>
         <DelphiCompile Include="$(MainSource)">
         <DelphiCompile Include="$(MainSource)">
@@ -103,8 +106,8 @@
         <DCCReference Include="Source\fGLDialog.pas">
         <DCCReference Include="Source\fGLDialog.pas">
             <Form>GLDialog</Form>
             <Form>GLDialog</Form>
         </DCCReference>
         </DCCReference>
-        <DCCReference Include="Source\fMain.pas">
-            <Form>MainForm</Form>
+        <DCCReference Include="Source\fGLSViewer.pas">
+            <Form>FormGLSViewer</Form>
         </DCCReference>
         </DCCReference>
         <DCCReference Include="Source\uGlobals.pas"/>
         <DCCReference Include="Source\uGlobals.pas"/>
         <DCCReference Include="Source\uSettings.pas"/>
         <DCCReference Include="Source\uSettings.pas"/>
@@ -139,6 +142,12 @@
                 <Source>
                 <Source>
                     <Source Name="MainSource">GLSViewerD.dpr</Source>
                     <Source Name="MainSource">GLSViewerD.dpr</Source>
                 </Source>
                 </Source>
+                <Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k290.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp290.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k290.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp290.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                </Excluded_Packages>
             </Delphi.Personality>
             </Delphi.Personality>
             <Platforms>
             <Platforms>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win32">True</Platform>

+ 40 - 48
Examples/AdvDemos/GLSViewer/Source/fGLAbout.dfm

@@ -1,7 +1,8 @@
 inherited GLAbout: TGLAbout
 inherited GLAbout: TGLAbout
   Caption = 'About'
   Caption = 'About'
-  ClientHeight = 323
-  ClientWidth = 446
+  ClientHeight = 383
+  ClientWidth = 506
+  Font.Height = -19
   Icon.Data = {
   Icon.Data = {
     0000010002002020000001000800A80800002600000010100000010008006805
     0000010002002020000001000800A80800002600000010100000010008006805
     0000CE0800002800000020000000400000000100080000000000800400000000
     0000CE0800002800000020000000400000000100080000000000800400000000
@@ -117,31 +118,29 @@ inherited GLAbout: TGLAbout
     00000509030000000000000000000000000000050000FFFF0000FC3F0000F00F
     00000509030000000000000000000000000000050000FFFF0000FC3F0000F00F
     0000C003000000000000000000000000000080010000C0030000C0070000000F
     0000C003000000000000000000000000000080010000C0030000C0070000000F
     00000019000080200000C2600000E7F10000FFFB0000}
     00000019000080200000C2600000E7F10000FFFB0000}
-  ExplicitLeft = 3
-  ExplicitTop = 3
-  ExplicitWidth = 464
-  ExplicitHeight = 370
-  PixelsPerInch = 96
-  TextHeight = 16
+  StyleElements = [seFont, seClient, seBorder]
+  ExplicitWidth = 522
+  ExplicitHeight = 422
+  TextHeight = 24
   inherited PanelTop: TPanel
   inherited PanelTop: TPanel
-    Width = 446
+    Width = 506
     Height = 89
     Height = 89
-    ExplicitWidth = 446
+    StyleElements = [seFont, seClient, seBorder]
+    ExplicitWidth = 498
     ExplicitHeight = 89
     ExplicitHeight = 89
     object LabelVersion: TLabel
     object LabelVersion: TLabel
-      Left = -32
+      Left = 102
       Top = 63
       Top = 63
-      Width = 44
-      Height = 16
+      Width = 50
+      Height = 20
       Anchors = [akTop, akRight]
       Anchors = [akTop, akRight]
       Caption = 'version'
       Caption = 'version'
       Font.Charset = DEFAULT_CHARSET
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWindowText
       Font.Color = clWindowText
-      Font.Height = -15
+      Font.Height = -16
       Font.Name = 'MS Sans Serif'
       Font.Name = 'MS Sans Serif'
       Font.Style = []
       Font.Style = []
       ParentFont = False
       ParentFont = False
-      ExplicitLeft = 144
     end
     end
     object LabelGeoblock: TLabel
     object LabelGeoblock: TLabel
       Left = 102
       Left = 102
@@ -157,30 +156,23 @@ inherited GLAbout: TGLAbout
       ParentFont = False
       ParentFont = False
       IsControl = True
       IsControl = True
     end
     end
-    object Label2: TLabel
-      Left = 75
-      Top = 41
-      Width = 289
-      Height = 16
-      Alignment = taCenter
-      Caption = 'Based on Eric Grange'#39's GLSViewer for GLScene'
-    end
     object StaticTextVersion: TStaticText
     object StaticTextVersion: TStaticText
-      Left = 228
-      Top = 63
-      Width = 25
-      Height = 20
+      Left = 219
+      Top = 61
+      Width = 34
+      Height = 28
       Caption = 'Info'
       Caption = 'Info'
       TabOrder = 0
       TabOrder = 0
     end
     end
   end
   end
   inherited PanelMiddle: TPanel
   inherited PanelMiddle: TPanel
     Top = 89
     Top = 89
-    Width = 446
-    Height = 189
+    Width = 506
+    Height = 249
+    StyleElements = [seFont, seClient, seBorder]
     ExplicitTop = 89
     ExplicitTop = 89
-    ExplicitWidth = 446
-    ExplicitHeight = 189
+    ExplicitWidth = 498
+    ExplicitHeight = 224
     object LabelCopyright: TLabel [0]
     object LabelCopyright: TLabel [0]
       Left = 102
       Left = 102
       Top = 159
       Top = 159
@@ -2392,15 +2384,15 @@ inherited GLAbout: TGLAbout
     object Label1: TLabel [4]
     object Label1: TLabel [4]
       Left = 288
       Left = 288
       Top = 159
       Top = 159
-      Width = 95
-      Height = 16
+      Width = 133
+      Height = 24
       Caption = 'GLScene Team'
       Caption = 'GLScene Team'
     end
     end
     object Label3: TLabel [5]
     object Label3: TLabel [5]
       Left = 123
       Left = 123
       Top = 28
       Top = 28
-      Width = 188
-      Height = 16
+      Width = 265
+      Height = 24
       Caption = '3D view, 3D file formats support:'
       Caption = '3D view, 3D file formats support:'
     end
     end
     object FreeAndOpenSource: TLabel [6]
     object FreeAndOpenSource: TLabel [6]
@@ -2417,31 +2409,31 @@ inherited GLAbout: TGLAbout
       ParentFont = False
       ParentFont = False
     end
     end
     inherited Memo: TMemo
     inherited Memo: TMemo
-      Width = 444
-      Height = 187
+      Width = 504
+      Height = 247
       TabOrder = 1
       TabOrder = 1
       Visible = False
       Visible = False
-      ExplicitLeft = 1
-      ExplicitTop = 1
-      ExplicitWidth = 444
-      ExplicitHeight = 187
+      StyleElements = [seFont, seClient, seBorder]
+      ExplicitWidth = 496
+      ExplicitHeight = 222
     end
     end
     object PanelYears: TPanel
     object PanelYears: TPanel
       Left = 187
       Left = 187
-      Top = 158
-      Width = 77
+      Top = 200
+      Width = 144
       Height = 17
       Height = 17
       BevelOuter = bvNone
       BevelOuter = bvNone
-      Caption = ' '#169'  2002, 2021'
+      Caption = ' '#169'  2002, 2024'
       TabOrder = 0
       TabOrder = 0
     end
     end
   end
   end
   inherited PanelBottom: TPanel
   inherited PanelBottom: TPanel
-    Top = 278
-    Width = 446
+    Top = 338
+    Width = 506
     Height = 45
     Height = 45
-    ExplicitTop = 278
-    ExplicitWidth = 446
+    StyleElements = [seFont, seClient, seBorder]
+    ExplicitTop = 313
+    ExplicitWidth = 498
     ExplicitHeight = 45
     ExplicitHeight = 45
   end
   end
 end
 end

+ 0 - 1
Examples/AdvDemos/GLSViewer/Source/fGLAbout.pas

@@ -32,7 +32,6 @@ type
     Label1: TLabel;
     Label1: TLabel;
     Label3: TLabel;
     Label3: TLabel;
     FreeAndOpenSource: TLabel;
     FreeAndOpenSource: TLabel;
-    Label2: TLabel;
     procedure imgSourceForgeDblClick(Sender: TObject);
     procedure imgSourceForgeDblClick(Sender: TObject);
     procedure imgGLSceneDblClick(Sender: TObject);
     procedure imgGLSceneDblClick(Sender: TObject);
     procedure imgOpenGLDblClick(Sender: TObject);
     procedure imgOpenGLDblClick(Sender: TObject);

+ 2 - 4
Examples/AdvDemos/GLSViewer/Source/fGLDialog.dfm

@@ -3,10 +3,10 @@ inherited GLDialog: TGLDialog
   Caption = 'GLScene Dialog'
   Caption = 'GLScene Dialog'
   ClientHeight = 362
   ClientHeight = 362
   ClientWidth = 484
   ClientWidth = 484
+  StyleElements = [seFont, seClient, seBorder]
   ExplicitWidth = 500
   ExplicitWidth = 500
   ExplicitHeight = 401
   ExplicitHeight = 401
-  PixelsPerInch = 96
-  TextHeight = 16
+  TextHeight = 20
   object PanelTop: TPanel
   object PanelTop: TPanel
     Left = 0
     Left = 0
     Top = 0
     Top = 0
@@ -33,8 +33,6 @@ inherited GLDialog: TGLDialog
         ''
         ''
         '')
         '')
       TabOrder = 0
       TabOrder = 0
-      ExplicitLeft = 2
-      ExplicitTop = 2
     end
     end
   end
   end
   object PanelBottom: TPanel
   object PanelBottom: TPanel

+ 4 - 4
Examples/AdvDemos/GLSViewer/Source/fGLForm.dfm

@@ -2,16 +2,16 @@ object GLForm: TGLForm
   Left = 392
   Left = 392
   Top = 227
   Top = 227
   HelpContext = 1
   HelpContext = 1
-  ClientHeight = 304
-  ClientWidth = 3610
+  ClientHeight = 698
+  ClientWidth = 981
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -13
+  Font.Height = -16
   Font.Name = 'MS Sans Serif'
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Font.Style = []
   Position = poMainFormCenter
   Position = poMainFormCenter
   Scaled = False
   Scaled = False
   OnCreate = FormCreate
   OnCreate = FormCreate
-  TextHeight = 16
+  TextHeight = 20
 end
 end

+ 28 - 7
Examples/AdvDemos/GLSViewer/Source/fGLOptions.dfm

@@ -1,22 +1,39 @@
 inherited GLOptions: TGLOptions
 inherited GLOptions: TGLOptions
   HelpContext = 0
   HelpContext = 0
   Caption = 'Options'
   Caption = 'Options'
+  ClientHeight = 394
+  ClientWidth = 521
+  Font.Height = -16
+  StyleElements = [seFont, seClient, seBorder]
   OnClose = FormClose
   OnClose = FormClose
-  ExplicitLeft = 3
-  ExplicitTop = 3
-  TextHeight = 16
+  ExplicitLeft = 4
+  ExplicitTop = 4
+  ExplicitWidth = 537
+  ExplicitHeight = 433
+  TextHeight = 20
+  inherited PanelTop: TPanel
+    Width = 521
+    StyleElements = [seFont, seClient, seBorder]
+    ExplicitWidth = 492
+  end
   inherited PanelMiddle: TPanel
   inherited PanelMiddle: TPanel
+    Width = 521
+    Height = 318
+    StyleElements = [seFont, seClient, seBorder]
+    ExplicitWidth = 492
     object Label1: TLabel [0]
     object Label1: TLabel [0]
       Left = 296
       Left = 296
       Top = 33
       Top = 33
-      Width = 73
-      Height = 16
+      Width = 86
+      Height = 20
       Caption = 'Background'
       Caption = 'Background'
     end
     end
     inherited Memo: TMemo
     inherited Memo: TMemo
+      Width = 519
+      Height = 316
       TabOrder = 2
       TabOrder = 2
-      ExplicitLeft = 1
-      ExplicitTop = 1
+      StyleElements = [seFont, seClient, seBorder]
+      ExplicitWidth = 490
     end
     end
     object CheckBoxAxis: TCheckBox
     object CheckBoxAxis: TCheckBox
       Left = 96
       Left = 96
@@ -60,6 +77,10 @@ inherited GLOptions: TGLOptions
     end
     end
   end
   end
   inherited PanelBottom: TPanel
   inherited PanelBottom: TPanel
+    Top = 353
+    Width = 521
+    StyleElements = [seFont, seClient, seBorder]
+    ExplicitWidth = 492
     inherited ButtonOK: TButton
     inherited ButtonOK: TButton
       OnClick = ButtonOKClick
       OnClick = ButtonOKClick
     end
     end

+ 4 - 4
Examples/AdvDemos/GLSViewer/Source/fGLOptions.pas

@@ -52,7 +52,7 @@ implementation
 
 
 uses
 uses
   GnuGettext,
   GnuGettext,
-  fMain;
+  fGLSViewer;
 
 
 
 
 procedure TGLOptions.FormCreate(Sender: TObject);
 procedure TGLOptions.FormCreate(Sender: TObject);
@@ -122,9 +122,9 @@ end;
 procedure TGLOptions.CheckBoxAxisClick(Sender: TObject);
 procedure TGLOptions.CheckBoxAxisClick(Sender: TObject);
 begin
 begin
   if CheckBoxAxis.Checked then
   if CheckBoxAxis.Checked then
-    MainForm.DCAxis.Visible := True
+    FormGLSViewer.DCAxis.Visible := True
   else
   else
-    MainForm.DCAxis.Visible := False;
+    FormGLSViewer.DCAxis.Visible := False;
 end;
 end;
 
 
 
 
@@ -134,7 +134,7 @@ begin
    if dmGLSViewer.ColorDialog.Execute then
    if dmGLSViewer.ColorDialog.Execute then
    begin
    begin
      PanelBackground.Color :=  dmGLSViewer.ColorDialog.Color;
      PanelBackground.Color :=  dmGLSViewer.ColorDialog.Color;
-     MainForm.ApplyBgColor;
+     FormGLSViewer.ApplyBgColor;
    end;
    end;
 end;
 end;
 
 

+ 3 - 5
Examples/AdvDemos/GLSViewer/readme.txt

@@ -1,8 +1,5 @@
 GLSViewer
 GLSViewer
 
 
-http://sourceforge.net/projects/glscene
-http://glscene.org
-
 A fast 3D mesh viewer. 
 A fast 3D mesh viewer. 
 Released as Freeware and open-sourced
 Released as Freeware and open-sourced
 under Mozilla PL (http://mozilla.org)
 under Mozilla PL (http://mozilla.org)
@@ -17,8 +14,9 @@ hidden lines removal, texturing and antialiasing
 GLSViewer was made and packaged with the following
 GLSViewer was made and packaged with the following
 tools and libraries:
 tools and libraries:
 
 
-- RAD Studio (http://edn.embarcadero.com/delphi/)
-- GLScene (http://glscene.net; http://sf.net/projects/glscene)
+http://glscene.org
+https://sourceforge.net/projects/glscene
+https://github.com/glscene
 
 
 Enjoy.
 Enjoy.
 
 

BIN
Examples/AdvDemos/IntensityMesh/IntensityMesh.jpg


+ 2 - 2
Examples/AdvDemos/IntensityMesh/IntensityMeshD.dpr

@@ -19,12 +19,12 @@ program IntensityMeshD;
 
 
 uses
 uses
   Forms,
   Forms,
-  fIntensityMeshD in 'fIntensityMeshD.pas' {Form1};
+  fIntensityMeshD in 'fIntensityMeshD.pas' {FormIntensutyMesh};
 
 
 {$R *.res}
 {$R *.res}
 
 
 begin
 begin
   Application.Initialize;
   Application.Initialize;
-  Application.CreateForm(TForm1, Form1);
+  Application.CreateForm(TFormIntensutyMesh, FormIntensutyMesh);
   Application.Run;
   Application.Run;
 end.
 end.

+ 1 - 1
Examples/AdvDemos/IntensityMesh/IntensityMeshD.dproj

@@ -114,7 +114,7 @@
             <MainSource>MainSource</MainSource>
             <MainSource>MainSource</MainSource>
         </DelphiCompile>
         </DelphiCompile>
         <DCCReference Include="fIntensityMeshD.pas">
         <DCCReference Include="fIntensityMeshD.pas">
-            <Form>Form1</Form>
+            <Form>FormIntensutyMesh</Form>
         </DCCReference>
         </DCCReference>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>

+ 59 - 31
Examples/AdvDemos/IntensityMesh/fIntensityMeshD.dfm

@@ -1,31 +1,39 @@
-object Form1: TForm1
+object FormIntensutyMesh: TFormIntensutyMesh
   Left = 61
   Left = 61
   Top = 69
   Top = 69
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   Caption = 'Intensity Mesh'
   Caption = 'Intensity Mesh'
-  ClientHeight = 423
-  ClientWidth = 629
+  ClientHeight = 740
+  ClientWidth = 1115
   Color = clWhite
   Color = clWhite
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Font.Style = []
   Position = poScreenCenter
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnCreate = FormCreate
   OnMouseWheel = FormMouseWheel
   OnMouseWheel = FormMouseWheel
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Left = 0
     Top = 0
     Top = 0
-    Width = 542
-    Height = 423
+    Width = 963
+    Height = 740
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = GLCamera
     Camera = GLCamera
     Buffer.BackgroundColor = clTeal
     Buffer.BackgroundColor = clTeal
     Buffer.ContextOptions = [roDoubleBuffer, roRenderToWindow, roStereo]
     Buffer.ContextOptions = [roDoubleBuffer, roRenderToWindow, roStereo]
     Buffer.FaceCulling = False
     Buffer.FaceCulling = False
     Buffer.Lighting = False
     Buffer.Lighting = False
-    FieldOfView = 153.398193359375000000
+    FieldOfView = 164.607894897460900000
     PenAsTouch = False
     PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseDown = GLSceneViewer1MouseDown
@@ -33,27 +41,39 @@ object Form1: TForm1
     TabOrder = 0
     TabOrder = 0
   end
   end
   object Panel1: TPanel
   object Panel1: TPanel
-    Left = 542
+    Left = 963
     Top = 0
     Top = 0
-    Width = 87
-    Height = 423
+    Width = 152
+    Height = 740
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Align = alRight
     Align = alRight
     TabOrder = 1
     TabOrder = 1
     DesignSize = (
     DesignSize = (
-      87
-      423)
+      152
+      740)
     object Label1: TLabel
     object Label1: TLabel
-      Left = 8
-      Top = 64
-      Width = 63
-      Height = 13
+      Left = 14
+      Top = 112
+      Width = 108
+      Height = 24
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Palette Scale'
       Caption = 'Palette Scale'
     end
     end
     object CBWireFrame: TCheckBox
     object CBWireFrame: TCheckBox
-      Left = 8
-      Top = 32
-      Width = 73
-      Height = 17
+      Left = 14
+      Top = 56
+      Width = 128
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Wireframe'
       Caption = 'Wireframe'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
@@ -61,19 +81,27 @@ object Form1: TForm1
       OnClick = CBWireFrameClick
       OnClick = CBWireFrameClick
     end
     end
     object CBSmooth: TCheckBox
     object CBSmooth: TCheckBox
-      Left = 8
-      Top = 8
-      Width = 57
-      Height = 17
+      Left = 14
+      Top = 14
+      Width = 100
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Smooth'
       Caption = 'Smooth'
       TabOrder = 1
       TabOrder = 1
       OnClick = CBSmoothClick
       OnClick = CBSmoothClick
     end
     end
     object TBScale: TTrackBar
     object TBScale: TTrackBar
-      Left = 26
-      Top = 88
-      Width = 31
-      Height = 323
+      Left = 46
+      Top = 154
+      Width = 54
+      Height = 565
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Anchors = [akLeft, akTop, akBottom]
       Anchors = [akLeft, akTop, akBottom]
       Max = 200
       Max = 200
       Orientation = trVertical
       Orientation = trVertical
@@ -81,7 +109,7 @@ object Form1: TForm1
       Frequency = 10
       Frequency = 10
       Position = 50
       Position = 50
       TabOrder = 2
       TabOrder = 2
-      ThumbLength = 15
+      ThumbLength = 26
       OnChange = TBScaleChange
       OnChange = TBScaleChange
     end
     end
   end
   end

+ 10 - 10
Examples/AdvDemos/IntensityMesh/fIntensityMeshD.pas

@@ -39,7 +39,7 @@ uses
   GLS.TextureFormat;
   GLS.TextureFormat;
 
 
 type
 type
-  TForm1 = class(TForm)
+  TFormIntensutyMesh = class(TForm)
     GLScene1: TGLScene;
     GLScene1: TGLScene;
     GLSceneViewer1: TGLSceneViewer;
     GLSceneViewer1: TGLSceneViewer;
     GLCamera: TGLCamera;
     GLCamera: TGLCamera;
@@ -75,7 +75,7 @@ type
   end;
   end;
 
 
 var
 var
-  Form1: TForm1;
+  FormIntensutyMesh: TFormIntensutyMesh;
 
 
 implementation
 implementation
 
 
@@ -99,7 +99,7 @@ var
   DataNodes: array of TDataNode;
   DataNodes: array of TDataNode;
   DataPrimitives: array of TDataPrimitive;
   DataPrimitives: array of TDataPrimitive;
 
 
-procedure TForm1.FormCreate(Sender: TObject);
+procedure TFormIntensutyMesh.FormCreate(Sender: TObject);
 var
 var
   mo: TGLMeshObject;
   mo: TGLMeshObject;
   fgQuads, fgTris: TFGVertexIndexList;
   fgQuads, fgTris: TFGVertexIndexList;
@@ -152,7 +152,7 @@ begin
   TBScaleChange(Self);
   TBScaleChange(Self);
 end;
 end;
 
 
-procedure TForm1.GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
+procedure TFormIntensutyMesh.GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
   var rci: TGLRenderContextInfo; var Continue: Boolean);
   var rci: TGLRenderContextInfo; var Continue: Boolean);
 begin
 begin
   if not CBWireFrame.Checked then
   if not CBWireFrame.Checked then
@@ -184,7 +184,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TForm1.CBSmoothClick(Sender: TObject);
+procedure TFormIntensutyMesh.CBSmoothClick(Sender: TObject);
 var
 var
   tex: TGLTexture;
   tex: TGLTexture;
 begin
 begin
@@ -202,7 +202,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
+procedure TFormIntensutyMesh.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
   Shift: TShiftState; X, Y: Integer);
   Shift: TShiftState; X, Y: Integer);
 begin
 begin
   mx := X;
   mx := X;
@@ -210,7 +210,7 @@ begin
   GLSceneViewer1.SetFocus;
   GLSceneViewer1.SetFocus;
 end;
 end;
 
 
-procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
+procedure TFormIntensutyMesh.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
   X, Y: Integer);
   X, Y: Integer);
 begin
 begin
   if ssLeft in Shift then
   if ssLeft in Shift then
@@ -226,7 +226,7 @@ begin
   my := Y;
   my := Y;
 end;
 end;
 
 
-procedure TForm1.TBScaleChange(Sender: TObject);
+procedure TFormIntensutyMesh.TBScaleChange(Sender: TObject);
 begin
 begin
   with GLMaterialLibrary1.Materials[0] do
   with GLMaterialLibrary1.Materials[0] do
     TextureScale.X := TBScale.Position / 100;
     TextureScale.X := TBScale.Position / 100;
@@ -234,13 +234,13 @@ begin
   GLSceneViewer1.Invalidate;
   GLSceneViewer1.Invalidate;
 end;
 end;
 
 
-procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
+procedure TFormIntensutyMesh.FormMouseWheel(Sender: TObject; Shift: TShiftState;
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
 begin
 begin
   GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta / 120));
   GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta / 120));
 end;
 end;
 
 
-procedure TForm1.CBWireFrameClick(Sender: TObject);
+procedure TFormIntensutyMesh.CBWireFrameClick(Sender: TObject);
 begin
 begin
   GLSceneViewer1.Invalidate;
   GLSceneViewer1.Invalidate;
 end;
 end;

BIN
Examples/AdvDemos/PanoramViewer/PanoViewer.jpg


+ 6 - 8
Examples/AdvDemos/PanoramViewer/PanoViewerD.dpr

@@ -1,18 +1,16 @@
-{
-  Simple spherical panorama viewer using GLScene
+(*
+  Simple spherical panorama viewer
 
 
-  The sample input images are by Philippe Hurbain. http://www.philohome.com
-
-  Other resources on how to make your own spherical or cylindrical panorama:
+  The sample input images and other resources on how to make 
+  your own spherical or cylindrical panorama:
+    http://www.philohome.com
     http://www.fh-furtwangen.de/~dersch/
     http://www.fh-furtwangen.de/~dersch/
     http://www.panoguide.com/
     http://www.panoguide.com/
     http://home.no.net/dmaurer/~dersch/Index.htm
     http://home.no.net/dmaurer/~dersch/Index.htm
-
   Why IPIX patents regarding use of fisheye photos are questionable:
   Why IPIX patents regarding use of fisheye photos are questionable:
     http://www.worldserver.com/turk/quicktimevr/fisheye.html
     http://www.worldserver.com/turk/quicktimevr/fisheye.html
+*)
 
 
-  10/12/02 - EG - Updated for GLScene v0.9+
-}
 program PanoViewerD;
 program PanoViewerD;
 
 
 uses
 uses

+ 2 - 3
Examples/Examples.htm → Examples/Demos.htm

@@ -84,7 +84,7 @@ ul
   style='font-size:7.5pt;font-family:"Arial",sans-serif'>&nbsp;</span></p>
   style='font-size:7.5pt;font-family:"Arial",sans-serif'>&nbsp;</span></p>
   <p class=MsoNormal align=center style='text-align:center'><span
   <p class=MsoNormal align=center style='text-align:center'><span
   style='font-size:7.5pt;font-family:"Arial",sans-serif'>website: </span><a
   style='font-size:7.5pt;font-family:"Arial",sans-serif'>website: </span><a
-  href="http://glscene.org"><span style='font-size:7.5pt;font-family:"Arial",sans-serif'>http://glscene.org</span></a></p>
+  href="https://github.com/glscene"><span style='font-size:7.5pt;font-family:"Arial",sans-serif'>https://github.com/glscene</span></a></p>
   </td>
   </td>
   <td width="15%" style='width:15.0%;padding:.75pt .75pt .75pt .75pt'>
   <td width="15%" style='width:15.0%;padding:.75pt .75pt .75pt .75pt'>
   <p class=MsoNormal align=right style='text-align:right'>&nbsp;</p>
   <p class=MsoNormal align=right style='text-align:right'>&nbsp;</p>
@@ -101,8 +101,7 @@ ul
 </span></div>
 </span></div>
 
 
 <p class=MsoPlainText align=center style='text-align:center'><b><span lang=FR
 <p class=MsoPlainText align=center style='text-align:center'><b><span lang=FR
-style='font-size:18.0pt;font-family:"Courier New";color:#FF8000'>GLScene Demos
-and Samples</span></b></p>
+style='font-size:18.0pt;font-family:"Courier New";color:#FF8000'>GLScene Demos</span></b></p>
 
 
 <ul style='margin-top:0cm' type=disc>
 <ul style='margin-top:0cm' type=disc>
  <li class=MsoNormal><span lang=FR><a href="Demos/behaviours/aBehaviours.htm"><strong>behaviours</strong></a>
  <li class=MsoNormal><span lang=FR><a href="Demos/behaviours/aBehaviours.htm"><strong>behaviours</strong></a>

+ 78 - 37
Examples/Demos/behaviours/Torque/fTorqueC.dfm

@@ -1,27 +1,36 @@
 object FormTorqueC: TFormTorqueC
 object FormTorqueC: TFormTorqueC
   Left = 125
   Left = 125
   Top = 119
   Top = 119
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   BorderWidth = 5
   BorderWidth = 5
   Caption = 'Torque'
   Caption = 'Torque'
-  ClientHeight = 407
-  ClientWidth = 751
+  ClientHeight = 712
+  ClientWidth = 1314
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'MS Sans Serif'
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Font.Style = []
   Position = poScreenCenter
   Position = poScreenCenter
   OnCreate = FormCreate
   OnCreate = FormCreate
-  TextHeight = 13
+  PixelsPerInch = 168
+  TextHeight = 24
   object GLSceneViewer1: TGLSceneViewer
   object GLSceneViewer1: TGLSceneViewer
     Left = 0
     Left = 0
-    Top = 78
-    Width = 751
-    Height = 288
+    Top = 137
+    Width = 1314
+    Height = 504
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = GLCamera1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
-    FieldOfView = 110.444335937500000000
+    FieldOfView = 136.711135864257800000
     PenAsTouch = False
     PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseMove = GLSceneViewer1MouseMove
     OnMouseMove = GLSceneViewer1MouseMove
@@ -30,59 +39,87 @@ object FormTorqueC: TFormTorqueC
   object Panel1: TPanel
   object Panel1: TPanel
     Left = 0
     Left = 0
     Top = 0
     Top = 0
-    Width = 751
-    Height = 78
+    Width = 1314
+    Height = 137
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Align = alTop
     Align = alTop
     TabOrder = 1
     TabOrder = 1
     object lHexahedron: TLabel
     object lHexahedron: TLabel
-      Left = 280
-      Top = 8
-      Width = 116
-      Height = 39
+      Left = 490
+      Top = 14
+      Width = 162
+      Height = 72
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Alignment = taCenter
       Alignment = taCenter
       Caption = 'Hexahedron has a small constant'#13#10'and linear damping'
       Caption = 'Hexahedron has a small constant'#13#10'and linear damping'
       WordWrap = True
       WordWrap = True
     end
     end
     object lDodecahedron: TLabel
     object lDodecahedron: TLabel
-      Left = 472
-      Top = 8
-      Width = 94
-      Height = 52
+      Left = 826
+      Top = 14
+      Width = 162
+      Height = 96
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Alignment = taCenter
       Alignment = taCenter
       Caption = 'Dodecahedron has a'#13#10'small constant and'#13#10'quadratic damping'
       Caption = 'Dodecahedron has a'#13#10'small constant and'#13#10'quadratic damping'
       WordWrap = True
       WordWrap = True
     end
     end
     object lOctagedron: TLabel
     object lOctagedron: TLabel
-      Left = 128
-      Top = 8
-      Width = 85
-      Height = 39
+      Left = 224
+      Top = 14
+      Width = 140
+      Height = 96
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Alignment = taCenter
       Alignment = taCenter
       Caption = 'Octahedron has a'#13#10'only quadratic damping'
       Caption = 'Octahedron has a'#13#10'only quadratic damping'
       WordWrap = True
       WordWrap = True
     end
     end
     object lTetrahedron: TLabel
     object lTetrahedron: TLabel
-      Left = 8
-      Top = 10
-      Width = 84
-      Height = 39
+      Left = 14
+      Top = 18
+      Width = 144
+      Height = 72
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Tetrahedron has an only quadratic damping'
       Caption = 'Tetrahedron has an only quadratic damping'
       WordWrap = True
       WordWrap = True
     end
     end
     object lIcosahedron: TLabel
     object lIcosahedron: TLabel
-      Left = 604
-      Top = 8
-      Width = 117
-      Height = 39
+      Left = 1057
+      Top = 14
+      Width = 203
+      Height = 72
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Alignment = taCenter
       Alignment = taCenter
       Caption = 'Icosahedron has a small constant'#13#10'and linear damping'
       Caption = 'Icosahedron has a small constant'#13#10'and linear damping'
       WordWrap = True
       WordWrap = True
     end
     end
     object CheckBox1: TCheckBox
     object CheckBox1: TCheckBox
-      Left = 8
-      Top = 55
-      Width = 81
-      Height = 17
+      Left = 14
+      Top = 96
+      Width = 142
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Double Mass'
       Caption = 'Double Mass'
       TabOrder = 0
       TabOrder = 0
       OnClick = CheckBox1Click
       OnClick = CheckBox1Click
@@ -90,9 +127,13 @@ object FormTorqueC: TFormTorqueC
   end
   end
   object PanelBottom: TPanel
   object PanelBottom: TPanel
     Left = 0
     Left = 0
-    Top = 366
-    Width = 751
-    Height = 41
+    Top = 641
+    Width = 1314
+    Height = 71
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Align = alBottom
     Align = alBottom
     Caption = 
     Caption = 
       'Move your mouse over an object and it will start spinning. Click' +
       'Move your mouse over an object and it will start spinning. Click' +

+ 1 - 1
Examples/Demos/bench/pcBench.cbproj

@@ -170,10 +170,10 @@
         <FormResources Include="smoking\fSmokingC.dfm"/>
         <FormResources Include="smoking\fSmokingC.dfm"/>
         <FormResources Include="volcano\fVolcanoC.dfm"/>
         <FormResources Include="volcano\fVolcanoC.dfm"/>
         <FormResources Include="whirlwind\fWhirlC.dfm"/>
         <FormResources Include="whirlwind\fWhirlC.dfm"/>
+        <FormResources Include="canvas\fCanvasC.dfm"/>
         <FormResources Include="fcBench.dfm"/>
         <FormResources Include="fcBench.dfm"/>
         <FormResources Include="megacube\fMegaCubeC.dfm"/>
         <FormResources Include="megacube\fMegaCubeC.dfm"/>
         <FormResources Include="megaglasscube\fMegaglassC.dfm"/>
         <FormResources Include="megaglasscube\fMegaglassC.dfm"/>
-        <FormResources Include="canvas\fCanvasC.dfm"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>

+ 1 - 1
Examples/Demos/cgshaders/pdCGshaders.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{35504031-36EC-4C44-A54E-99C276117BF7}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 97 - 51
Examples/Demos/collisions/TriangleBox/fTriangleBoxD.dfm

@@ -1,13 +1,17 @@
 object FormTriangleBox: TFormTriangleBox
 object FormTriangleBox: TFormTriangleBox
   Left = 281
   Left = 281
   Top = 112
   Top = 112
+  Margins.Left = 5
+  Margins.Top = 5
+  Margins.Right = 5
+  Margins.Bottom = 5
   Caption = 'Triangle and Box Intersection'
   Caption = 'Triangle and Box Intersection'
-  ClientHeight = 549
-  ClientWidth = 865
+  ClientHeight = 961
+  ClientWidth = 1528
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
-  Font.Height = -11
+  Font.Height = -19
   Font.Name = 'Arial'
   Font.Name = 'Arial'
   Font.Style = []
   Font.Style = []
   KeyPreview = True
   KeyPreview = True
@@ -16,35 +20,45 @@ object FormTriangleBox: TFormTriangleBox
   OnKeyPress = FormKeyPress
   OnKeyPress = FormKeyPress
   OnMouseWheel = FormMouseWheel
   OnMouseWheel = FormMouseWheel
   OnResize = FormResize
   OnResize = FormResize
-  TextHeight = 14
+  PixelsPerInch = 168
+  TextHeight = 22
   object Viewer: TGLSceneViewer
   object Viewer: TGLSceneViewer
-    Left = 175
+    Left = 306
     Top = 0
     Top = 0
-    Width = 690
-    Height = 549
+    Width = 1222
+    Height = 961
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Camera = GLCamera1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBackground
     Buffer.BackgroundColor = clBackground
-    FieldOfView = 159.353576660156300000
+    FieldOfView = 168.118560791015600000
     PenAsTouch = False
     PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseMove = ViewerMouseMove
     OnMouseMove = ViewerMouseMove
     TabOrder = 0
     TabOrder = 0
-    ExplicitWidth = 523
-    ExplicitHeight = 486
   end
   end
   object Panel2: TPanel
   object Panel2: TPanel
     Left = 0
     Left = 0
     Top = 0
     Top = 0
-    Width = 175
-    Height = 549
+    Width = 306
+    Height = 961
+    Margins.Left = 5
+    Margins.Top = 5
+    Margins.Right = 5
+    Margins.Bottom = 5
     Align = alLeft
     Align = alLeft
     TabOrder = 1
     TabOrder = 1
-    ExplicitHeight = 443
     object CheckBoxGrid: TCheckBox
     object CheckBoxGrid: TCheckBox
-      Left = 8
-      Top = 170
-      Width = 80
-      Height = 17
+      Left = 14
+      Top = 298
+      Width = 140
+      Height = 29
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Grid'
       Caption = 'Grid'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
@@ -52,59 +66,83 @@ object FormTriangleBox: TFormTriangleBox
       OnClick = CheckBoxVisibleClick
       OnClick = CheckBoxVisibleClick
     end
     end
     object ButtonFindIntersect: TButton
     object ButtonFindIntersect: TButton
-      Left = 6
-      Top = 80
-      Width = 162
-      Height = 25
+      Left = 11
+      Top = 140
+      Width = 283
+      Height = 44
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Find next with intersection'
       Caption = 'Find next with intersection'
       Default = True
       Default = True
       TabOrder = 3
       TabOrder = 3
       OnClick = ButtonFindIntersectClick
       OnClick = ButtonFindIntersectClick
     end
     end
     object CheckBoxPosition: TCheckBox
     object CheckBoxPosition: TCheckBox
-      Left = 8
-      Top = 11
-      Width = 120
-      Height = 17
+      Left = 14
+      Top = 19
+      Width = 210
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Change box position'
       Caption = 'Change box position'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
       TabOrder = 0
       TabOrder = 0
     end
     end
     object CheckBoxScale: TCheckBox
     object CheckBoxScale: TCheckBox
-      Left = 8
-      Top = 34
-      Width = 120
-      Height = 17
+      Left = 14
+      Top = 60
+      Width = 210
+      Height = 29
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Change box scale'
       Caption = 'Change box scale'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
       TabOrder = 1
       TabOrder = 1
     end
     end
     object CheckBoxTriangle: TCheckBox
     object CheckBoxTriangle: TCheckBox
-      Left = 8
-      Top = 57
-      Width = 120
-      Height = 17
+      Left = 14
+      Top = 100
+      Width = 210
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Change triangle'
       Caption = 'Change triangle'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
       TabOrder = 2
       TabOrder = 2
     end
     end
     object ButtonNotFindIntersect: TButton
     object ButtonNotFindIntersect: TButton
-      Left = 6
-      Top = 112
-      Width = 162
-      Height = 25
+      Left = 11
+      Top = 196
+      Width = 283
+      Height = 44
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Find next without intersection'
       Caption = 'Find next without intersection'
       TabOrder = 4
       TabOrder = 4
       OnClick = ButtonNotFindIntersectClick
       OnClick = ButtonNotFindIntersectClick
     end
     end
     object CheckBoxVisible: TCheckBox
     object CheckBoxVisible: TCheckBox
-      Left = 8
-      Top = 146
-      Width = 80
-      Height = 19
+      Left = 14
+      Top = 256
+      Width = 140
+      Height = 33
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Box visible'
       Caption = 'Box visible'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
@@ -112,10 +150,14 @@ object FormTriangleBox: TFormTriangleBox
       OnClick = CheckBoxVisibleClick
       OnClick = CheckBoxVisibleClick
     end
     end
     object CheckBoxAxis: TCheckBox
     object CheckBoxAxis: TCheckBox
-      Left = 8
-      Top = 192
-      Width = 80
-      Height = 17
+      Left = 14
+      Top = 336
+      Width = 140
+      Height = 30
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Axis'
       Caption = 'Axis'
       Checked = True
       Checked = True
       State = cbChecked
       State = cbChecked
@@ -123,10 +165,14 @@ object FormTriangleBox: TFormTriangleBox
       OnClick = CheckBoxVisibleClick
       OnClick = CheckBoxVisibleClick
     end
     end
     object RadioGroupCoPolygon: TRadioGroup
     object RadioGroupCoPolygon: TRadioGroup
-      Left = 16
-      Top = 236
-      Width = 112
-      Height = 105
+      Left = 28
+      Top = 413
+      Width = 196
+      Height = 184
+      Margins.Left = 5
+      Margins.Top = 5
+      Margins.Right = 5
+      Margins.Bottom = 5
       Caption = 'Coplanar Polygon'
       Caption = 'Coplanar Polygon'
       ItemIndex = 0
       ItemIndex = 0
       Items.Strings = (
       Items.Strings = (
@@ -177,7 +223,7 @@ object FormTriangleBox: TFormTriangleBox
       YSamplingScale.Step = 3.000000000000000000
       YSamplingScale.Step = 3.000000000000000000
       ZSamplingScale.Step = 0.100000001490116100
       ZSamplingScale.Step = 0.100000001490116100
     end
     end
-    object GLPolygon1: TGLPolygon
+    object Triangle: TGLPolygon
       Material.FrontProperties.Diffuse.Color = {000000000000803F000000000000803F}
       Material.FrontProperties.Diffuse.Color = {000000000000803F000000000000803F}
       Nodes = <
       Nodes = <
         item
         item
@@ -190,7 +236,7 @@ object FormTriangleBox: TFormTriangleBox
           Z = 1.000000000000000000
           Z = 1.000000000000000000
         end>
         end>
     end
     end
-    object GLPolygon2: TGLPolygon
+    object Polygon: TGLPolygon
       Nodes = <>
       Nodes = <>
     end
     end
     object GLLines1: TGLLines
     object GLLines1: TGLLines

+ 18 - 18
Examples/Demos/collisions/TriangleBox/fTriangleBoxD.pas

@@ -51,12 +51,12 @@ type
     CheckBoxScale: TCheckBox;
     CheckBoxScale: TCheckBox;
     CheckBoxTriangle: TCheckBox;
     CheckBoxTriangle: TCheckBox;
     ButtonNotFindIntersect: TButton;
     ButtonNotFindIntersect: TButton;
-    GLPolygon1: TGLPolygon;
+    Triangle: TGLPolygon;
     CheckBoxVisible: TCheckBox;
     CheckBoxVisible: TCheckBox;
     GLPoints1: TGLPoints;
     GLPoints1: TGLPoints;
     CheckBoxAxis: TCheckBox;
     CheckBoxAxis: TCheckBox;
     GLLines2: TGLLines;
     GLLines2: TGLLines;
-    GLPolygon2: TGLPolygon;
+    Polygon: TGLPolygon;
     RadioGroupCoPolygon: TRadioGroup;
     RadioGroupCoPolygon: TRadioGroup;
     procedure GLCadencerProgress(Sender: TObject; const deltaTime,
     procedure GLCadencerProgress(Sender: TObject; const deltaTime,
       newTime: Double);
       newTime: Double);
@@ -106,18 +106,18 @@ end;
 
 
 procedure TFormTriangleBox.DrawCoplanarPolygon;
 procedure TFormTriangleBox.DrawCoplanarPolygon;
 begin
 begin
-  GLPolygon2.Nodes.Clear;
-  GLPolygon2.Material.FrontProperties.Ambient.RandomColor;
+  Polygon.Nodes.Clear;
+  Polygon.Material.FrontProperties.Ambient.RandomColor;
   PolygonPos[0] := AffineVectorMake(-5,-5,0);
   PolygonPos[0] := AffineVectorMake(-5,-5,0);
   PolygonPos[1] := AffineVectorMake(5,-5,0);
   PolygonPos[1] := AffineVectorMake(5,-5,0);
   PolygonPos[2] := AffineVectorMake(5,5,0);
   PolygonPos[2] := AffineVectorMake(5,5,0);
   PolygonPos[3] := AffineVectorMake(-5,5,0);
   PolygonPos[3] := AffineVectorMake(-5,5,0);
   PolygonPos[4] := AffineVectorMake(0,0,0);
   PolygonPos[4] := AffineVectorMake(0,0,0);
-  GLPolygon2.AddNode(PolygonPos[0]);
-  GLPolygon2.AddNode(PolygonPos[1]);
-  GLPolygon2.AddNode(PolygonPos[2]);
-  GLPolygon2.AddNode(PolygonPos[3]);
-  GLPolygon2.AddNode(PolygonPos[4]);
+  Polygon.AddNode(PolygonPos[0]);
+  Polygon.AddNode(PolygonPos[1]);
+  Polygon.AddNode(PolygonPos[2]);
+  Polygon.AddNode(PolygonPos[3]);
+  Polygon.AddNode(PolygonPos[4]);
 end;
 end;
 
 
 procedure TFormTriangleBox.MakeRandomData;
 procedure TFormTriangleBox.MakeRandomData;
@@ -148,9 +148,9 @@ end;
 procedure TFormTriangleBox.RadioGroupCoPolygonClick(Sender: TObject);
 procedure TFormTriangleBox.RadioGroupCoPolygonClick(Sender: TObject);
 begin
 begin
   case RadioGroupCoPolygon.ItemIndex of
   case RadioGroupCoPolygon.ItemIndex of
-     0: GLPolygon2.Material.PolygonMode := pmFill;
-     1: GLPolygon2.Material.PolygonMode := pmLines;
-     2: GLPolygon2.Material.PolygonMode := pmPoints;
+     0: Polygon.Material.PolygonMode := pmFill;
+     1: Polygon.Material.PolygonMode := pmLines;
+     2: Polygon.Material.PolygonMode := pmPoints;
   end;
   end;
 end;
 end;
 
 
@@ -158,12 +158,12 @@ procedure TFormTriangleBox.DrawResult;
 var
 var
   i : Integer;
   i : Integer;
 begin
 begin
-  GLPolygon1.Nodes.Clear;
-  GLPolygon1.Material.FrontProperties.Emission.Color := clrGreen;
-  GLPolygon1.Material.BackProperties.Emission.Color := clrGreen;
-  GLPolygon1.AddNode(TriangePos[0]);
-  GLPolygon1.AddNode(TriangePos[1]);
-  GLPolygon1.AddNode(TriangePos[2]);
+  Triangle.Nodes.Clear;
+  Triangle.Material.FrontProperties.Emission.Color := clrGreen;
+  Triangle.Material.BackProperties.Emission.Color := clrGreen;
+  Triangle.AddNode(TriangePos[0]);
+  Triangle.AddNode(TriangePos[1]);
+  Triangle.AddNode(TriangePos[2]);
 
 
   GLPoints1.Positions.Clear;
   GLPoints1.Positions.Clear;
   GLPoints1.Colors.Add(1, 0, 1, 1); //magenta
   GLPoints1.Colors.Add(1, 0, 1, 1); //magenta

+ 3 - 2
Examples/Demos/extrusion/fdExtrusion.dfm

@@ -7,7 +7,7 @@ object frmExtrusionD: TfrmExtrusionD
   Margins.Bottom = 5
   Margins.Bottom = 5
   Caption = 'Extrusion'
   Caption = 'Extrusion'
   ClientHeight = 977
   ClientHeight = 977
-  ClientWidth = 1502
+  ClientWidth = 1149
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
@@ -59,7 +59,7 @@ object frmExtrusionD: TfrmExtrusionD
   object PageControl: TPageControl
   object PageControl: TPageControl
     Left = 226
     Left = 226
     Top = 0
     Top = 0
-    Width = 1276
+    Width = 923
     Height = 977
     Height = 977
     Margins.Left = 5
     Margins.Left = 5
     Margins.Top = 5
     Margins.Top = 5
@@ -68,6 +68,7 @@ object frmExtrusionD: TfrmExtrusionD
     ActivePage = tsTentacles
     ActivePage = tsTentacles
     Align = alClient
     Align = alClient
     TabOrder = 1
     TabOrder = 1
+    ExplicitWidth = 1276
     object tsBending: TTabSheet
     object tsBending: TTabSheet
       Margins.Left = 5
       Margins.Left = 5
       Margins.Top = 5
       Margins.Top = 5

+ 3 - 3
Examples/Demos/extrusion/pcExtrusion.cbproj

@@ -163,12 +163,12 @@
             <DependentOn>tentacles\fTentaclesC.h</DependentOn>
             <DependentOn>tentacles\fTentaclesC.h</DependentOn>
             <BuildOrder>6</BuildOrder>
             <BuildOrder>6</BuildOrder>
         </CppCompile>
         </CppCompile>
-        <FormResources Include="nutsnbolts\fNutsnBoltsC.dfm"/>
         <FormResources Include="pawn\fPawnC.dfm"/>
         <FormResources Include="pawn\fPawnC.dfm"/>
         <FormResources Include="tentacles\fTentaclesC.dfm"/>
         <FormResources Include="tentacles\fTentaclesC.dfm"/>
-        <FormResources Include="fcExtrusion.dfm"/>
+        <FormResources Include="nutsnbolts\fNutsnBoltsC.dfm"/>
         <FormResources Include="bendingcyl\fBendingC.dfm"/>
         <FormResources Include="bendingcyl\fBendingC.dfm"/>
         <FormResources Include="cutoutstar\fCutoutstarC.dfm"/>
         <FormResources Include="cutoutstar\fCutoutstarC.dfm"/>
+        <FormResources Include="fcExtrusion.dfm"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>
@@ -263,13 +263,13 @@
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
                 <DeployFile LocalName=".\Win32\Debug\ExtrusionC.tds" Configuration="Debug" Class="DebugSymbols"/>
                 <DeployFile LocalName=".\Win32\Debug\ExtrusionC.tds" Configuration="Debug" Class="DebugSymbols"/>
+                <DeployFile LocalName=".\Win32\Debug\pcExtrusion.exe" Configuration="Debug" Class="ProjectOutput"/>
                 <DeployFile LocalName=".\Win32\Debug\pcExtrusion.exe" Configuration="Debug" Class="ProjectOutput">
                 <DeployFile LocalName=".\Win32\Debug\pcExtrusion.exe" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <RemoteName>pcExtrusion.exe</RemoteName>
                         <RemoteName>pcExtrusion.exe</RemoteName>
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
-                <DeployFile LocalName=".\Win32\Debug\pcExtrusion.exe" Configuration="Debug" Class="ProjectOutput"/>
                 <DeployFile LocalName=".\Win32\Debug\pcExtrusion.tds" Configuration="Debug" Class="DebugSymbols">
                 <DeployFile LocalName=".\Win32\Debug\pcExtrusion.tds" Configuration="Debug" Class="DebugSymbols">
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <RemoteName>pcExtrusion.tds</RemoteName>
                         <RemoteName>pcExtrusion.tds</RemoteName>

+ 27 - 11
Examples/Demos/glslshaders/fdGLSLshaders.dfm

@@ -41,17 +41,33 @@ object FormGLSLshaders: TFormGLSLshaders
       Indent = 33
       Indent = 33
       TabOrder = 0
       TabOrder = 0
       Items.NodeData = {
       Items.NodeData = {
-        070700000009540054007200650065004E006F00640065002500000000000000
-        00000000FFFFFFFFFFFFFFFF0000000000000000000000000001034F006E0065
-        000000250000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
-        000000000103540077006F000000290000000000000000000000FFFFFFFFFFFF
-        FFFF000000000000000000000000000105540068007200650065000000270000
-        000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000104
-        46006F00750072000000270000000000000000000000FFFFFFFFFFFFFFFF0000
-        0000000000000000000000010446006900760065000000250000000000000000
-        000000FFFFFFFFFFFFFFFF000000000000000000000000000103530069007800
-        0000290000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000
-        000000010553006500760065006E00}
+        070E00000009540054007200650065004E006F00640065003300000000000000
+        00000000FFFFFFFFFFFFFFFF00000000000000000000000000010A420075006D
+        0070005300680061006400650072000000310000000000000000000000FFFFFF
+        FFFFFFFFFF000000000000000000000000000109420075006E006E0079004200
+        75006D0070000000390000000000000000000000FFFFFFFFFFFFFFFF00000000
+        000000000000000000010D440069006600660075007300650053006800610064
+        00650072000000310000000000000000000000FFFFFFFFFFFFFFFF0000000000
+        0000000000000000010946007500720053006800610064006500720000003900
+        00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+        0D4C0069006E0069006E00670053006800610064006500720073000000330000
+        000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000010A
+        4D0061006E00640065006C00620072006F007400000029000000000000000000
+        0000FFFFFFFFFFFFFFFF0000000000000000000000000001054F006300650061
+        006E000000330000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+        000000000000010A50006F007300740053006800610064006500720000003F00
+        00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
+        10500072006F006A006500630074006500640054006500780074007500720065
+        0000003D0000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
+        00000000010F53006800610064006500720043006F006D0070006F006E006500
+        6E0074000000330000000000000000000000FFFFFFFFFFFFFFFF000000000000
+        00000000000000010A53006800610064006500720073004C0061006200000031
+        0000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000
+        010953006800610064006500720074006F007900000033000000000000000000
+        0000FFFFFFFFFFFFFFFF00000000000000000000000000010A530069006D0070
+        006C00650047004C0053004C000000370000000000000000000000FFFFFFFFFF
+        FFFFFF00000000000000000000000000010C53006B00790062006F0078005300
+        68006100640065007200}
     end
     end
   end
   end
   object PageControl: TPageControl
   object PageControl: TPageControl

+ 11 - 2
Examples/Demos/glslshaders/fdGLSLshaders.pas

@@ -3,8 +3,17 @@ unit fdGLSLshaders;
 interface
 interface
 
 
 uses
 uses
-  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
-  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls;
+  Winapi.Windows,
+  Winapi.Messages,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.ComCtrls,
+  Vcl.ExtCtrls;
 
 
 type
 type
   TFormGLSLshaders = class(TForm)
   TFormGLSLshaders = class(TForm)

+ 1 - 1
Examples/Demos/glslshaders/pdGLSLshaders.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{91E159C4-0E1F-4EB1-8C21-7EC87CD00786}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 6 - 6
Examples/Demos/graph/fcGraph.dfm

@@ -6,8 +6,8 @@ object FormGraph: TFormGraph
   Margins.Right = 5
   Margins.Right = 5
   Margins.Bottom = 5
   Margins.Bottom = 5
   Caption = 'Graph'
   Caption = 'Graph'
-  ClientHeight = 999
-  ClientWidth = 1544
+  ClientHeight = 758
+  ClientWidth = 1238
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
@@ -24,7 +24,7 @@ object FormGraph: TFormGraph
     Left = 0
     Left = 0
     Top = 0
     Top = 0
     Width = 226
     Width = 226
-    Height = 999
+    Height = 758
     Margins.Left = 5
     Margins.Left = 5
     Margins.Top = 5
     Margins.Top = 5
     Margins.Right = 5
     Margins.Right = 5
@@ -35,7 +35,7 @@ object FormGraph: TFormGraph
       Left = 1
       Left = 1
       Top = 1
       Top = 1
       Width = 224
       Width = 224
-      Height = 997
+      Height = 756
       Margins.Left = 5
       Margins.Left = 5
       Margins.Top = 5
       Margins.Top = 5
       Margins.Right = 5
       Margins.Right = 5
@@ -59,8 +59,8 @@ object FormGraph: TFormGraph
   object PageControl: TPageControl
   object PageControl: TPageControl
     Left = 226
     Left = 226
     Top = 0
     Top = 0
-    Width = 1318
-    Height = 999
+    Width = 1012
+    Height = 758
     Margins.Left = 5
     Margins.Left = 5
     Margins.Top = 5
     Margins.Top = 5
     Margins.Right = 5
     Margins.Right = 5

+ 10 - 6
Examples/Demos/graph/fdGraph.dfm

@@ -6,8 +6,8 @@ object FormGraph: TFormGraph
   Margins.Right = 5
   Margins.Right = 5
   Margins.Bottom = 5
   Margins.Bottom = 5
   Caption = 'Graph'
   Caption = 'Graph'
-  ClientHeight = 952
-  ClientWidth = 1579
+  ClientHeight = 721
+  ClientWidth = 1153
   Color = clBtnFace
   Color = clBtnFace
   Font.Charset = DEFAULT_CHARSET
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
   Font.Color = clWindowText
@@ -24,18 +24,19 @@ object FormGraph: TFormGraph
     Left = 0
     Left = 0
     Top = 0
     Top = 0
     Width = 226
     Width = 226
-    Height = 952
+    Height = 721
     Margins.Left = 5
     Margins.Left = 5
     Margins.Top = 5
     Margins.Top = 5
     Margins.Right = 5
     Margins.Right = 5
     Margins.Bottom = 5
     Margins.Bottom = 5
     Align = alLeft
     Align = alLeft
     TabOrder = 0
     TabOrder = 0
+    ExplicitHeight = 952
     object tvGraph: TTreeView
     object tvGraph: TTreeView
       Left = 1
       Left = 1
       Top = 1
       Top = 1
       Width = 224
       Width = 224
-      Height = 950
+      Height = 719
       Margins.Left = 5
       Margins.Left = 5
       Margins.Top = 5
       Margins.Top = 5
       Margins.Right = 5
       Margins.Right = 5
@@ -54,13 +55,14 @@ object FormGraph: TFormGraph
         FF00000000000000000000000000010A500072006F006A006500630074006900
         FF00000000000000000000000000010A500072006F006A006500630074006900
         6F006E0000002D0000000000000000000000FFFFFFFFFFFFFFFF000000000000
         6F006E0000002D0000000000000000000000FFFFFFFFFFFFFFFF000000000000
         000000000000000107530070006C0069006E0065007300}
         000000000000000107530070006C0069006E0065007300}
+      ExplicitHeight = 950
     end
     end
   end
   end
   object PageControl: TPageControl
   object PageControl: TPageControl
     Left = 226
     Left = 226
     Top = 0
     Top = 0
-    Width = 1353
-    Height = 952
+    Width = 927
+    Height = 721
     Margins.Left = 5
     Margins.Left = 5
     Margins.Top = 5
     Margins.Top = 5
     Margins.Right = 5
     Margins.Right = 5
@@ -68,6 +70,8 @@ object FormGraph: TFormGraph
     ActivePage = tsProjection
     ActivePage = tsProjection
     Align = alClient
     Align = alClient
     TabOrder = 1
     TabOrder = 1
+    ExplicitWidth = 1353
+    ExplicitHeight = 952
     object tsFxy: TTabSheet
     object tsFxy: TTabSheet
       Margins.Left = 5
       Margins.Left = 5
       Margins.Top = 5
       Margins.Top = 5

+ 1 - 1
Examples/Demos/graph/pcGraph.cbproj

@@ -166,9 +166,9 @@
         <FormResources Include="points\fPointsC.dfm"/>
         <FormResources Include="points\fPointsC.dfm"/>
         <FormResources Include="projection\fProjectionC.dfm"/>
         <FormResources Include="projection\fProjectionC.dfm"/>
         <FormResources Include="splines\fSplinesC.dfm"/>
         <FormResources Include="splines\fSplinesC.dfm"/>
-        <FormResources Include="heightfield\fHeightfieldC.dfm"/>
         <FormResources Include="fcGraph.dfm"/>
         <FormResources Include="fcGraph.dfm"/>
         <FormResources Include="fxy\fFxyC.dfm"/>
         <FormResources Include="fxy\fFxyC.dfm"/>
+        <FormResources Include="heightfield\fHeightfieldC.dfm"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>

+ 3 - 3
Examples/Demos/graph/pcGraph.cpp

@@ -4,12 +4,12 @@
 #pragma hdrstop
 #pragma hdrstop
 #include <tchar.h>
 #include <tchar.h>
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
+USEFORM("fcGraph.cpp", FormGraph);
+USEFORM("fxy\fFxyC.cpp", FormPlot);
+USEFORM("heightfield\fHeightfieldC.cpp", Form1);
 USEFORM("points\fPointsC.cpp", FormPoints);
 USEFORM("points\fPointsC.cpp", FormPoints);
 USEFORM("projection\fProjectionC.cpp", FormProjection);
 USEFORM("projection\fProjectionC.cpp", FormProjection);
 USEFORM("splines\fSplinesC.cpp", FormSplines);
 USEFORM("splines\fSplinesC.cpp", FormSplines);
-USEFORM("heightfield\fHeightfieldC.cpp", Form1);
-USEFORM("fcGraph.cpp", FormGraph);
-USEFORM("fxy\fFxyC.cpp", FormPlot);
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
 int WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
 {
 {

+ 26 - 11
Examples/Demos/interface/fdInterface.dfm

@@ -41,17 +41,32 @@ object frmSandbox: TfrmSandbox
       Indent = 33
       Indent = 33
       TabOrder = 0
       TabOrder = 0
       Items.NodeData = {
       Items.NodeData = {
-        070700000009540054007200650065004E006F00640065002500000000000000
-        00000000FFFFFFFFFFFFFFFF0000000000000000000000000001034F006E0065
-        000000250000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
-        000000000103540077006F000000290000000000000000000000FFFFFFFFFFFF
-        FFFF000000000000000000000000000105540068007200650065000000270000
-        000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000104
-        46006F00750072000000270000000000000000000000FFFFFFFFFFFFFFFF0000
-        0000000000000000000000010446006900760065000000250000000000000000
-        000000FFFFFFFFFFFFFFFF000000000000000000000000000103530069007800
-        0000290000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000
-        000000010553006500760065006E00}
+        070F00000009540054007200650065004E006F00640065002D00000000000000
+        00000000FFFFFFFFFFFFFFFF00000000000000000000000000010742006D0070
+        0046006F006E00740000002B0000000000000000000000FFFFFFFFFFFFFFFF00
+        0000000000000000000000000106430061006D0065007200610000003F000000
+        0000000000000000FFFFFFFFFFFFFFFF00000000000000000000000000011043
+        0061006D0065007200610043006F006E00740072006F006C006C006500720000
+        002D0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000
+        0000010743006F006E0073006F006C00650000002B0000000000000000000000
+        FFFFFFFFFFFFFFFF00000000000000000000000000010643007500720073006F
+        0072000000350000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+        000000000000010B43007500720073006F007200430072006F00730073000000
+        310000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000
+        00010946006F006E00740043006F006C006F00720000002F0000000000000000
+        000000FFFFFFFFFFFFFFFF000000000000000000000000000108470061006D00
+        65004D0065006E0075000000290000000000000000000000FFFFFFFFFFFFFFFF
+        000000000000000000000000000105470069007A006D006F0000002D00000000
+        00000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001074700
+        69007A006D006F004500780000002D0000000000000000000000FFFFFFFFFFFF
+        FFFF000000000000000000000000000107470075006900440065006D006F0000
+        002F0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000
+        000001084700750069005000610069006E00740000002B000000000000000000
+        0000FFFFFFFFFFFFFFFF00000000000000000000000000010648004600500069
+        0063006B000000270000000000000000000000FFFFFFFFFFFFFFFF0000000000
+        000000000000000001045000690063006B0000003F0000000000000000000000
+        FFFFFFFFFFFFFFFF000000000000000000000000000110530069006D0070006C
+        0065004E0061007600690067006100740069006F006E00}
     end
     end
   end
   end
   object PageControl: TPageControl
   object PageControl: TPageControl

+ 1 - 1
Examples/Demos/interface/pdInterface.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{395E9506-1E79-45A1-9830-108E116F826E}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 14 - 14
Examples/Demos/materials/fdMaterials.dfm

@@ -58,20 +58,20 @@ object frmMaterials: TfrmMaterials
         FFFFFFFFFF0000000000000000000000000001094D0075006C00740069005000
         FFFFFFFFFF0000000000000000000000000001094D0075006C00740069005000
         6100730073000000370000000800000000000000FFFFFFFFFFFFFFFF00000000
         6100730073000000370000000800000000000000FFFFFFFFFFFFFFFF00000000
         000000000000000000010C4D0075006C00740069005400650078007400750072
         000000000000000000010C4D0075006C00740069005400650078007400750072
-        0065000000330000000900000000000000FFFFFFFFFFFFFFFF00000000000000
-        000000000000010A4F0062006A006500630074004D0061007400730000003F00
-        00000000000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001
-        10500072006F006300650064007500720061006C0043006C006F007500640073
-        0000002D0000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
-        00000000010754006500780041006E0069006D00000033000000000000000000
-        0000FFFFFFFFFFFFFFFF00000000000000000000000000010A54006500780043
-        006F006D00620069006E0065000000310000000000000000000000FFFFFFFFFF
-        FFFFFF00000000000000000000000000010954006500780046006F0072006D00
-        610074000000370000000000000000000000FFFFFFFFFFFFFFFF000000000000
-        00000000000000010C5400720061006E00730070006100720065006E00630079
-        000000470000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
-        0000000001145400720061006E00730070006100720065006E00630079004100
-        6400760061006E00630065006400}
+        0065000000350000000900000000000000FFFFFFFFFFFFFFFF00000000000000
+        000000000000010B4F0062006A004D006100740065007200690061006C000000
+        3F0000000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000
+        000110500072006F006300650064007500720061006C0043006C006F00750064
+        00730000002D0000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+        000000000000010754006500780041006E0069006D0000003300000000000000
+        00000000FFFFFFFFFFFFFFFF00000000000000000000000000010A5400650078
+        0043006F006D00620069006E0065000000310000000000000000000000FFFFFF
+        FFFFFFFFFF00000000000000000000000000010954006500780046006F007200
+        6D00610074000000370000000000000000000000FFFFFFFFFFFFFFFF00000000
+        000000000000000000010C5400720061006E00730070006100720065006E0063
+        0079000000470000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+        00000000000001145400720061006E00730070006100720065006E0063007900
+        41006400760061006E00630065006400}
     end
     end
   end
   end
   object PageControl: TPageControl
   object PageControl: TPageControl

+ 1 - 1
Examples/Demos/materials/pdMaterials.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{2BF1DBBA-EC68-4856-9B82-49ABBCC3D68C}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/meshes/pdMeshes.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{B79110DD-D5D5-4DD3-A38E-B8178247D237}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/movements/pdMovements.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{73CC0CD6-9716-4A04-8BD9-D69B4CC9481E}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/physics/pdPhysics.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{994AB6CD-7EC6-42A9-98CE-50950EB1649C}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/rendering/pdRendering.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{5DD7E173-8A33-4267-993F-F26A78E1531B}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/sound/pdSound.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{1C60276E-CBF0-4334-A774-46D0D6A62F47}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 29 - 11
Examples/Demos/specialsFX/fdSpecialsFX.dfm

@@ -41,17 +41,35 @@ object frmSpecialsFX: TfrmSpecialsFX
       Indent = 33
       Indent = 33
       TabOrder = 0
       TabOrder = 0
       Items.NodeData = {
       Items.NodeData = {
-        070700000009540054007200650065004E006F00640065002500000000000000
-        00000000FFFFFFFFFFFFFFFF0000000000000000000000000001034F006E0065
-        000000250000000000000000000000FFFFFFFFFFFFFFFF000000000000000000
-        000000000103540077006F000000290000000000000000000000FFFFFFFFFFFF
-        FFFF000000000000000000000000000105540068007200650065000000270000
-        000000000000000000FFFFFFFFFFFFFFFF000000000000000000000000000104
-        46006F00750072000000270000000000000000000000FFFFFFFFFFFFFFFF0000
-        0000000000000000000000010446006900760065000000250000000000000000
-        000000FFFFFFFFFFFFFFFF000000000000000000000000000103530069007800
-        0000290000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000
-        000000010553006500760065006E00}
+        071000000009540054007200650065004E006F00640065002700000000000000
+        00000000FFFFFFFFFFFFFFFF00000000000000000000000000010442006C0075
+        0072000000370000000000000000000000FFFFFFFFFFFFFFFF00000000000000
+        000000000000010C42006C007500720041006400760061006E00630065006400
+        0000330000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000
+        000000010A430065006C00530068006100640069006E00670000002D00000000
+        00000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001074300
+        75006C006C0069006E0067000000250000000000000000000000FFFFFFFFFFFF
+        FFFF00000000000000000000000000010346006F006700000033000000000000
+        0000000000FFFFFFFFFFFFFFFF00000000000000000000000000010A46007500
+        6C006C00530063007200650065006E000000330000000000000000000000FFFF
+        FFFFFFFFFFFF00000000000000000000000000010A49006E0076006100720069
+        0061006E00630065000000310000000000000000000000FFFFFFFFFFFFFFFF00
+        00000000000000000000000001094D0065006D00560069006500770065007200
+        0000330000000000000000000000FFFFFFFFFFFFFFFF00000000000000000000
+        000000010A4D0075006C0074006900500072006F007800790000003700000000
+        00000000000000FFFFFFFFFFFFFFFF00000000000000000000000000010C4D00
+        75006C0074006900540065007800740075007200650000003700000000000000
+        00000000FFFFFFFFFFFFFFFF00000000000000000000000000010C4F00630074
+        00720065006500520065006E0064006500720000002900000000000000000000
+        00FFFFFFFFFFFFFFFF000000000000000000000000000105500068006F006E00
+        670000003D0000000000000000000000FFFFFFFFFFFFFFFF0000000000000000
+        0000000000010F51007500610064005400720065006500430075006C006C0069
+        006E00670000003D0000000000000000000000FFFFFFFFFFFFFFFF0000000000
+        0000000000000000010F520065006E0064006500720054006F00540065007800
+        740075007200650000002B0000000000000000000000FFFFFFFFFFFFFFFF0000
+        0000000000000000000000010653006B00790042006F00780000002F00000000
+        00000000000000FFFFFFFFFFFFFFFF0000000000000000000000000001085400
+        6F004200690074006D0061007000}
     end
     end
   end
   end
   object PageControl: TPageControl
   object PageControl: TPageControl

+ 11 - 2
Examples/Demos/specialsFX/fdSpecialsFX.pas

@@ -3,8 +3,17 @@ unit fdSpecialsFX;
 interface
 interface
 
 
 uses
 uses
-  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
-  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.ExtCtrls;
+  Winapi.Windows,
+  Winapi.Messages,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.ComCtrls,
+  Vcl.ExtCtrls;
 
 
 type
 type
   TfrmSpecialsFX = class(TForm)
   TfrmSpecialsFX = class(TForm)

+ 1 - 1
Examples/Demos/specialsFX/pdSpecialsFX.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{3ED4CAB0-6684-4721-8B2E-308B0F230E55}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/sprites/pdSprites.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{8914CE54-6F01-428B-888D-81D0770F957B}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 1 - 1
Examples/Demos/utilities/pdUtilities.dproj

@@ -1,6 +1,6 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
-        <ProjectGuid>{0BB3BBC0-4D48-4E2F-92AD-FA6A1D3B5324}</ProjectGuid>
+        <ProjectGuid>{8D8A6450-4EB2-450A-8A7B-091B407C3F79}</ProjectGuid>
         <ProjectVersion>20.1</ProjectVersion>
         <ProjectVersion>20.1</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Base>True</Base>

+ 3 - 1
README.md

@@ -4,8 +4,10 @@ It provides the class library and tools for rendering 3D scenes with spatial obj
 free forms and virtual smart actors.  
 free forms and virtual smart actors.  
 Additional components are being developed for meshing, gridding, 
 Additional components are being developed for meshing, gridding, 
 lacing with shaders, audio and physics applications.
 lacing with shaders, audio and physics applications.
-
+GLS Team
 ---------------------------
 ---------------------------
 
 
 
 
 
 
+
+

+ 1 - 0
Source/GLS.Graph.pas

@@ -738,3 +738,4 @@ initialization
 RegisterClasses([TGLHeightField, TGLXYZGrid]);
 RegisterClasses([TGLHeightField, TGLXYZGrid]);
 
 
 end.
 end.
+

+ 5 - 6
Source/GLS.Material.pas

@@ -1,7 +1,6 @@
 //
 //
 // The graphics engine GLScene https://github.com/glscene
 // The graphics engine GLScene https://github.com/glscene
 //
 //
-
 unit GLS.Material;
 unit GLS.Material;
 
 
 (* Handles all the material + material library stuff *)
 (* Handles all the material + material library stuff *)
@@ -412,9 +411,9 @@ type
     FName: TGLLibMaterialName;
     FName: TGLLibMaterialName;
     FNameHashKey: Integer;
     FNameHashKey: Integer;
     FTag: Integer;
     FTag: Integer;
-	// Used for recursivity protection
-    FNotifying: Boolean; 
-    {implementing IGLMaterialLibrarySupported}
+	  // Used for recursivity protection
+    FNotifying: Boolean;
+    (* implementing IGLMaterialLibrarySupported *)
     function GetMaterialLibrary: TGLAbstractMaterialLibrary;
     function GetMaterialLibrary: TGLAbstractMaterialLibrary;
     // Implementing IInterface
     // Implementing IInterface
     function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
     function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
@@ -485,7 +484,7 @@ type
     procedure Assign(Source: TPersistent); override;
     procedure Assign(Source: TPersistent); override;
     procedure PrepareBuildList;
     procedure PrepareBuildList;
     procedure Apply(var ARci: TGLRenderContextInfo); override;
     procedure Apply(var ARci: TGLRenderContextInfo); override;
-    { Restore non-standard material states that were altered}
+    // Restore non-standard material states that were altered
     function UnApply(var ARci: TGLRenderContextInfo): Boolean; override;
     function UnApply(var ARci: TGLRenderContextInfo): Boolean; override;
     procedure NotifyUsersOfTexMapChange;
     procedure NotifyUsersOfTexMapChange;
     property TextureMatrix: TGLMatrix read FTextureMatrix write SetTextureMatrix;
     property TextureMatrix: TGLMatrix read FTextureMatrix write SetTextureMatrix;
@@ -511,7 +510,7 @@ type
        if not supported). *)
        if not supported). *)
     property Texture2Name: TGLLibMaterialName read FTexture2Name write
     property Texture2Name: TGLLibMaterialName read FTexture2Name write
       SetTexture2Name;
       SetTexture2Name;
-    {Optionnal shader for the material. }
+    // Optionnal shader for the material.
     property Shader: TGLShader read FShader write SetShader;
     property Shader: TGLShader read FShader write SetShader;
   end;
   end;