ソースを参照

Fixed some c++ demos

GLScene 4 年 前
コミット
b9ddab053c
90 ファイル変更1726 行追加776 行削除
  1. 2 1
      AdvDemos/CPP/Christmas/Unit1.h
  2. 3 3
      AdvDemos/Delphi/Christmas/FMain.dfm
  3. 3 3
      AdvDemos/Delphi/Christmas/FMain.pas
  4. 1 0
      AdvDemos/Delphi/Earth/Unit1.dfm
  5. 2 2
      AdvDemos/Delphi/IntensityMesh/IntensityMesh.dpr
  6. 130 113
      AdvDemos/Delphi/IntensityMesh/Unit1.pas
  7. 2 1
      Demos/CPP/cgshaders/CGBombShader/Unit1.cpp
  8. 2 1
      Demos/CPP/cgshaders/CGBombShader/Unit1.h
  9. 0 1
      Demos/CPP/cgshaders/celshading/Unit1.cpp
  10. 5 2
      Demos/CPP/cgshaders/simple/Unit1.cpp
  11. 0 3
      Demos/CPP/cgshaders/simple/Unit1.dfm
  12. 1 1
      Demos/CPP/cgshaders/simple/Unit1.h
  13. 2 2
      Demos/CPP/collisions/BoxSphere/Unit1.cpp
  14. 1 1
      Demos/CPP/collisions/BoxSphere/Unit1.h
  15. 1 1
      Demos/CPP/collisions/boxedin/Unit1.h
  16. 9 9
      Demos/CPP/collisions/octree/Unit1.h
  17. 1 1
      Demos/CPP/extrusion/nutsnbolts/Unit1.dfm
  18. 65 68
      Demos/CPP/extrusion/tentacles/Unit1.cpp
  19. 1 0
      Demos/CPP/extrusion/tentacles/Unit1.dfm
  20. 155 158
      Demos/CPP/glslshaders/Ocean/Unit1.cpp
  21. 1 1
      Demos/CPP/glslshaders/PostShader/Unit1.h
  22. 1 1
      Demos/CPP/graph/projection/Unit1.cpp
  23. 1 1
      Demos/CPP/interface/SimpleNavigation/SimpleNavigation.cbproj
  24. 1 0
      Demos/CPP/interface/SimpleNavigation/Unit1.dfm
  25. 1 1
      Demos/CPP/interface/camera/Unit1.cpp
  26. 64 64
      Demos/CPP/materials/cubemap/uCubeMap.cpp
  27. 3 0
      Demos/CPP/materials/dyncubemap/Unit1.cpp
  28. 1 1
      Demos/CPP/materials/dyncubemap/Unit1.dfm
  29. 1 1
      Demos/CPP/materials/mirror/Unit1.dfm
  30. 291 128
      Demos/CPP/materials/multimaterial/MultiMaterial.cbproj
  31. 2 2
      Demos/CPP/materials/multimaterial/Unit1.cpp
  32. 1 1
      Demos/CPP/materials/multimaterial/Unit1.dfm
  33. 4 2
      Demos/CPP/materials/multimaterial/Unit1.h
  34. 0 1
      Demos/CPP/materials/multipass/Unit1.cpp
  35. 1 0
      Demos/CPP/materials/multipass/Unit1.dfm
  36. 12 12
      Demos/CPP/meshes/actorms3d/Unit1.cpp
  37. 1 1
      Demos/CPP/meshes/actorms3d/Unit1.h
  38. 10 3
      Demos/CPP/meshes/tiles/Unit1.cpp
  39. 2 1
      Demos/CPP/meshes/tiles/Unit1.dfm
  40. 2 2
      Demos/CPP/meshes/tiles/Unit1.h
  41. 56 62
      Demos/CPP/movements/pong/Unit1.cpp
  42. 1 0
      Demos/CPP/movements/pong/Unit1.dfm
  43. 2 2
      Demos/CPP/movements/pong/Unit1.h
  44. 2 2
      Demos/CPP/physics/NewtonDensity/Unit1.cpp
  45. 0 1
      Demos/CPP/physics/OdeConveyor/Unit1.dfm
  46. 0 1
      Demos/CPP/rendering/SkyBox/Unit1.dfm
  47. 3 3
      Demos/CPP/rendering/multiproxy/Unit1.cpp
  48. 1 0
      Demos/CPP/rendering/multiproxy/Unit1.dfm
  49. 1 1
      Demos/CPP/rendering/multiproxy/Unit1.h
  50. 0 8
      Demos/CPP/sound/3Dsound/Unit1.dfm
  51. 1 1
      Demos/CPP/sound/3Dsound/Unit1.h
  52. 1 1
      Demos/CPP/specialsFX/Atmosphere/Unit1.dfm
  53. 0 1
      Demos/CPP/specialsFX/PFXGallery/Unit1.cpp
  54. 1 1
      Demos/CPP/specialsFX/PFXGallery/Unit1.dfm
  55. 2 2
      Demos/CPP/specialsFX/ParticleMasking/Unit1.cpp
  56. 1 1
      Demos/CPP/specialsFX/ParticleMasking/Unit1.dfm
  57. 1 1
      Demos/CPP/specialsFX/ShadowmappingFBO/Unit1.dfm
  58. 1 2
      Demos/CPP/specialsFX/ShadowmappingFBO/Unit1.h
  59. 3 2
      Demos/CPP/specialsFX/posteffect/uMainForm.cpp
  60. 1 0
      Demos/CPP/specialsFX/posteffect/uMainForm.dfm
  61. 1 1
      Demos/CPP/specialsFX/posteffect/uMainForm.h
  62. 1 1
      Demos/CPP/specialsFX/shadows/Unit1.cpp
  63. 2 0
      Demos/CPP/specialsFX/shadows/Unit1.dfm
  64. 24 24
      Demos/CPP/specialsFX/shadowvolumes/Unit1.cpp
  65. 1 1
      Demos/CPP/specialsFX/shadowvolumes/Unit1.dfm
  66. 1 1
      Demos/CPP/specialsFX/shadowvolumes/Unit1.h
  67. 2 1
      Demos/CPP/specialsFX/spiral/Unit1.cpp
  68. 1 0
      Demos/CPP/specialsFX/spiral/Unit1.dfm
  69. 8 8
      Demos/CPP/specialsFX/spiral/Unit1.h
  70. 0 1
      Demos/CPP/specialsFX/thor/Unit1.dfm
  71. 2 2
      Demos/CPP/specialsFX/warping/Unit1.cpp
  72. 1 3
      Demos/CPP/specialsFX/warping/Unit1.dfm
  73. 0 1
      Demos/CPP/sprites/caterpillar/Unit1.dfm
  74. 0 1
      Demos/CPP/sprites/particles/Unit1.dfm
  75. 771 5
      Demos/CPP/utilities/ScreenSaver/ScreenSaver.cbproj
  76. 8 2
      Demos/CPP/utilities/fontgen/fontgen.cbproj
  77. 8 2
      Demos/CPP/utilities/recorder/Recorder.cbproj
  78. 1 0
      Demos/CPP/utilities/recorder/Unit1.cpp
  79. 1 0
      Demos/CPP/utilities/recorder/Unit1.dfm
  80. 8 6
      Demos/CPP/utilities/recorder/Unit1.h
  81. 1 2
      Demos/Delphi/movements/SmoothNavigatorFm.dfm
  82. 2 2
      Demos/Delphi/movements/SmoothNavigatorFm.pas
  83. 1 1
      Packages/GLScene_Cg_RT.dproj
  84. 1 1
      Packages/GLScene_Physics_RT.dproj
  85. 1 1
      Packages/GLScene_Sounds_RT.dproj
  86. 11 12
      Source/GLS.Color.pas
  87. 0 4
      Source/GLS.Extrusion.pas
  88. 1 1
      Source/GLS.MaterialEx.pas
  89. 2 2
      Source/GLS.Objects.pas
  90. 1 4
      Source/GLS.PersistentClasses.pas

+ 2 - 1
AdvDemos/CPP/Christmas/Unit1.h

@@ -5,6 +5,7 @@
 //---------------------------------------------------------------------------
 #include <System.Classes.hpp>
 #include <System.Math.hpp>
+#include <System.Math.Vectors.hpp>
 #include <Vcl.Controls.hpp>
 #include <Vcl.StdCtrls.hpp>
 #include <Vcl.Forms.hpp>
@@ -31,7 +32,7 @@
 #include "Sounds.BASS.hpp"
 #include "GLS.FileWAV.hpp"
 #include "Jpeg.hpp"
-#include "Import.Bass.hpp"
+#include "Imports.Bass.hpp"
 #include "GLS.FileMP3.hpp"
 #include "GLS.ThorFX.hpp"
 #include "GLS.FireFX.hpp"

+ 3 - 3
AdvDemos/Delphi/Christmas/FMain.dfm

@@ -334,7 +334,7 @@ object Main: TMain
           TopRadius = 1.000000000000000000
           EffectsData = {
             0458434F4C02010201060A54474C424669726546580201020006064669726546
-            5802000200060F474C4669726546584D616E61676572}
+            5802000200060D4669726546584D616E61676572}
         end
       end
     end
@@ -5437,7 +5437,7 @@ object Main: TMain
       OnClick = miHappyNewYearClick
     end
   end
-  object GLFireFXManager: TGLFireFXManager
+  object FireFXManager: TGLFireFXManager
     FireDir.Coordinates = {000000000000803F0000000000000000}
     InitialDir.Coordinates = {00000000000000000000000000000000}
     Cadencer = Cadencer
@@ -5456,7 +5456,7 @@ object Main: TMain
     Left = 24
     Top = 208
   end
-  object GLMaterialLibraryCM: TGLMaterialLibrary
+  object MaterialLibraryCM: TGLMaterialLibrary
     Left = 552
     Top = 128
   end

+ 3 - 3
AdvDemos/Delphi/Christmas/FMain.pas

@@ -104,8 +104,8 @@ type
     PopupMenu: TPopupMenu;
     miMerryCristmas: TMenuItem;
     miHappyNewYear: TMenuItem;
-    GLFireFXManager: TGLFireFXManager;
-    GLMaterialLibraryCM: TGLMaterialLibrary;
+    FireFXManager: TGLFireFXManager;
+    MaterialLibraryCM: TGLMaterialLibrary;
     procedure FormCreate(Sender: TObject);
     procedure CadencerProgress(Sender: TObject; const deltaTime,
       newTime: Double);
@@ -142,7 +142,7 @@ implementation
 
 function TMain.LoadTexture(Matname, Filename: string): TGLLibMaterial;
 begin
-  Result := GLMaterialLibraryCM.AddTextureMaterial(Matname, Filename);
+  Result := MaterialLibraryCM.AddTextureMaterial(Matname, Filename);
   Result.Material.Texture.Disabled := False;
   Result.Material.Texture.TextureMode := tmDecal;
 end;

+ 1 - 0
AdvDemos/Delphi/Earth/Unit1.dfm

@@ -106,6 +106,7 @@ object Form1: TForm1
         Material.MaterialLibrary = GLMaterialLibrary
         Material.LibMaterialName = 'earthDay'
         Direction.Coordinates = {000000000000803F0000000000000000}
+        ShowAxes = True
         TurnAngle = -150.000000000000000000
         Up.Coordinates = {00000000000000800000803F00000000}
         Radius = 0.500000000000000000

+ 2 - 2
AdvDemos/Delphi/IntensityMesh/IntensityMesh.dpr

@@ -1,4 +1,4 @@
-{: Shows how to use 1D palettes to visualize "intensity" on a mesh.
+(* Shows how to use 1D palettes to visualize "intensity" on a mesh.
 
    Typical application is interactive representation of FEA (Finite Element
    Analysis), the palette texture can be used with discrete colors
@@ -14,7 +14,7 @@
    transversal wind and self weigth.
 
    (Sample Data contributed by Carlos Ferreira)
-}
+*)
 program IntensityMesh;
 
 uses

+ 130 - 113
AdvDemos/Delphi/IntensityMesh/Unit1.pas

@@ -38,7 +38,6 @@ uses
   GLS.State,
   GLS.TextureFormat;
 
-
 type
   TForm1 = class(TForm)
     GLScene1: TGLScene;
@@ -58,8 +57,8 @@ type
     TBScale: TTrackBar;
     Label1: TLabel;
     procedure FormCreate(Sender: TObject);
-    procedure GLSceneViewer1MouseDown(Sender: TObject;
-      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+    procedure GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
+      Shift: TShiftState; X, Y: Integer);
     procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
       X, Y: Integer);
     procedure GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
@@ -70,10 +69,10 @@ type
       WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
     procedure TBScaleChange(Sender: TObject);
   private
-     
-    mx, my : Integer;
+
+    mx, my: Integer;
   public
-     
+
   end;
 
 var
@@ -84,150 +83,168 @@ implementation
 {$R *.dfm}
 
 type
-   // Structures used in our binary file
-   // The structure is quite simplified here, original data came from a FEM
-   // package and was in (huge) text files, and parsing text files is not the
-   // purpose of this demo, so data was simplified ;)
-   TDataNode = record
-      X, Y, Z : Single;
-      Intensity : Single;
-   end;
-   TDataPrimitive = record
-      Node1, Node2, Node3, Node4 : Word;  // if Node4 is $FFFF, codes a triangle
-   end;
+  // Structures used in our binary file
+  // The structure is quite simplified here, original data came from a FEM
+  // package and was in (huge) text files, and parsing text files is not the
+  // purpose of this demo, so data was simplified ;)
+  TDataNode = record
+    X, Y, Z: Single;
+    Intensity: Single;
+  end;
+
+  TDataPrimitive = record
+    Node1, Node2, Node3, Node4: Word; // if Node4 is $FFFF, codes a triangle
+  end;
+
 var
-   DataNodes : array of TDataNode;
-   DataPrimitives : array of TDataPrimitive;
+  DataNodes: array of TDataNode;
+  DataPrimitives: array of TDataPrimitive;
 
 procedure TForm1.FormCreate(Sender: TObject);
 var
-   mo : TMeshObject;
-   fgQuads, fgTris : TFGVertexIndexList;
-   i : Integer;
-   str : TFileStream;
+  mo: TMeshObject;
+  fgQuads, fgTris: TFGVertexIndexList;
+  i: Integer;
+  str: TFileStream;
 begin
-   // load our raw data
-   str:=TFileStream.Create('IntensityMesh.data', fmOpenRead);
-   str.Read(i, 4);
-   SetLength(DataNodes, i);
-   str.Read(i, 4);
-   SetLength(DataPrimitives, i);
-   str.Read(DataNodes[0], Length(DataNodes)*SizeOf(TDataNode));
-   str.Read(DataPrimitives[0], Length(DataPrimitives)*SizeOf(TDataPrimitive));
-   str.Free;
-
-   // fill the freeform with our data
-
-   // first create a mesh object
-   mo:=TMeshObject.CreateOwned(GLFreeForm.MeshObjects);
-   mo.Mode:=momFaceGroups;
-   // Specify vertex and texcoords data (intensity is stored a texcoord)
-   for i:=0 to High(DataNodes) do begin
-      mo.Vertices.Add(DataNodes[i].X, DataNodes[i].Y, DataNodes[i].Z);
-      mo.TexCoords.Add(DataNodes[i].Intensity*0.001, 0);
-   end;
-   // Then create the facegroups that will hold our quads and triangles
-   fgQuads:=TFGVertexIndexList.CreateOwned(mo.FaceGroups);
-   fgQuads.Mode:=fgmmQuads;
-   fgTris:=TFGVertexIndexList.CreateOwned(mo.FaceGroups);
-   fgTris.Mode:=fgmmTriangles;
-   // and fill them with our primitives
-   for i:=1 to High(DataPrimitives) do with DataPrimitives[i] do begin
-      if Node4<>$FFFF then begin
-         fgQuads.VertexIndices.Add(Node1, Node2);
-         fgQuads.VertexIndices.Add(Node4, Node3);
-      end else begin
-         fgTris.VertexIndices.Add(Node1, Node2, Node3);
+  // load our raw data
+  str := TFileStream.Create('IntensityMesh.data', fmOpenRead);
+  str.Read(i, 4);
+  SetLength(DataNodes, i);
+  str.Read(i, 4);
+  SetLength(DataPrimitives, i);
+  str.Read(DataNodes[0], Length(DataNodes) * SizeOf(TDataNode));
+  str.Read(DataPrimitives[0], Length(DataPrimitives) * SizeOf(TDataPrimitive));
+  str.Free;
+
+  // fill the freeform with our data
+
+  // first create a mesh object
+  mo := TMeshObject.CreateOwned(GLFreeForm.MeshObjects);
+  mo.Mode := momFaceGroups;
+  // Specify vertex and texcoords data (intensity is stored a texcoord)
+  for i := 0 to High(DataNodes) do
+  begin
+    mo.Vertices.Add(DataNodes[i].X, DataNodes[i].Y, DataNodes[i].Z);
+    mo.TexCoords.Add(DataNodes[i].Intensity * 0.001, 0);
+  end;
+  // Then create the facegroups that will hold our quads and triangles
+  fgQuads := TFGVertexIndexList.CreateOwned(mo.FaceGroups);
+  fgQuads.Mode := fgmmQuads;
+  fgTris := TFGVertexIndexList.CreateOwned(mo.FaceGroups);
+  fgTris.Mode := fgmmTriangles;
+  // and fill them with our primitives
+  for i := 1 to High(DataPrimitives) do
+    with DataPrimitives[i] do
+    begin
+      if Node4 <> $FFFF then
+      begin
+        fgQuads.VertexIndices.Add(Node1, Node2);
+        fgQuads.VertexIndices.Add(Node4, Node3);
+      end
+      else
+      begin
+        fgTris.VertexIndices.Add(Node1, Node2, Node3);
       end;
-   end;
-   // auto center
-   GLFreeForm.PerformAutoCentering;
-   // and initialize scale
-   TBScaleChange(Self);
+    end;
+  // auto center
+  GLFreeForm.PerformAutoCentering;
+  // and initialize scale
+  TBScaleChange(Self);
 end;
 
 procedure TForm1.GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
   var rci: TGLRenderContextInfo; var Continue: Boolean);
 begin
-   if not CBWireFrame.Checked then
-      Pass:=2; // skip wireframe pass
-   case Pass of
-      1 : with rci.GLStates do begin
-         // 2nd pass is a wireframe pass (two-sided)
-         ActiveTextureEnabled[ttTexture2D] := False;
-         Enable(stLineSmooth);
-         Enable(stBlend);
-         SetBlendFunc(bfSrcAlpha, bfOneMinusSrcAlpha);
-         LineWidth := 0.5;
-         PolygonMode := pmLines;
-         PolygonOffsetFactor := -1;
-         PolygonOffsetUnits := -1;
-         Enable(stPolygonOffsetLine);
-         gl.Color3f(0, 0, 0);
-         Continue:=True;
-      end;
-   else
-      // restore states or mark them dirty
-      if CBWireFrame.Checked then
+  if not CBWireFrame.Checked then
+    Pass := 2; // skip wireframe pass
+  case Pass of
+    1:
+      with rci.GLStates do
       begin
-        rci.GLStates.Disable(stPolygonOffsetLine);
+        // 2nd pass is a wireframe pass (two-sided)
+        ActiveTextureEnabled[ttTexture2D] := False;
+        Enable(stLineSmooth);
+        Enable(stBlend);
+        SetBlendFunc(bfSrcAlpha, bfOneMinusSrcAlpha);
+        LineWidth := 0.5;
+        PolygonMode := pmLines;
+        PolygonOffsetFactor := -1;
+        PolygonOffsetUnits := -1;
+        Enable(stPolygonOffsetLine);
+        gl.Color3f(0, 0, 0);
+        Continue := True;
       end;
-
-      Continue:=False;
-   end;
+  else
+    // restore states or mark them dirty
+    if CBWireFrame.Checked then
+    begin
+      rci.GLStates.Disable(stPolygonOffsetLine);
+    end;
+
+    Continue := False;
+  end;
 end;
 
 procedure TForm1.CBSmoothClick(Sender: TObject);
 var
-   tex : TGLTexture;
+  tex: TGLTexture;
 begin
-   // switch between linear and nearest filtering
-   tex:=GLMaterialLibrary1.Materials[0].Material.Texture;
-   if CBSmooth.Checked then begin
-      tex.MagFilter:=maLinear;
-      tex.MinFilter:=miLinear;
-   end else begin
-      tex.MagFilter:=maNearest;
-      tex.MinFilter:=miNearest;
-   end;
+  // switch between linear and nearest filtering
+  tex := GLMaterialLibrary1.Materials[0].Material.Texture;
+  if CBSmooth.Checked then
+  begin
+    tex.MagFilter := maLinear;
+    tex.MinFilter := miLinear;
+  end
+  else
+  begin
+    tex.MagFilter := maNearest;
+    tex.MinFilter := miNearest;
+  end;
 end;
 
-procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject;
-  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
+procedure TForm1.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
+  Shift: TShiftState; X, Y: Integer);
 begin
-   mx:=x; my:=y;
-   GLSceneViewer1.SetFocus;
+  mx := X;
+  my := Y;
+  GLSceneViewer1.SetFocus;
 end;
 
-procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
-  Shift: TShiftState; X, Y: Integer);
+procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
+  X, Y: Integer);
 begin
-   if ssLeft in Shift then
-      GLCamera.MoveAroundTarget(my-y, mx-x);
-   if ssRight in Shift then begin
-      DCTarget.Position.AddScaledVector((mx-x)/30, GLCamera.AbsoluteRightVectorToTarget);
-      DCTarget.Position.AddScaledVector((y-my)/30, GLCamera.AbsoluteUpVectorToTarget);
-   end;
-   mx:=x; my:=y;
+  if ssLeft in Shift then
+    GLCamera.MoveAroundTarget(my - Y, mx - X);
+  if ssRight in Shift then
+  begin
+    DCTarget.Position.AddScaledVector((mx - X) / 30,
+      GLCamera.AbsoluteRightVectorToTarget);
+    DCTarget.Position.AddScaledVector((Y - my) / 30,
+      GLCamera.AbsoluteUpVectorToTarget);
+  end;
+  mx := X;
+  my := Y;
 end;
 
 procedure TForm1.TBScaleChange(Sender: TObject);
 begin
-   with GLMaterialLibrary1.Materials[0] do
-      TextureScale.X:=TBScale.Position/100;
-   HTPaletteRight.Text:=Format('%d', [TBScale.Position*10]);
-   GLSceneViewer1.Invalidate;
+  with GLMaterialLibrary1.Materials[0] do
+    TextureScale.X := TBScale.Position / 100;
+  HTPaletteRight.Text := Format('%d', [TBScale.Position * 10]);
+  GLSceneViewer1.Invalidate;
 end;
 
 procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
 begin
-   GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta/120));
+  GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta / 120));
 end;
 
 procedure TForm1.CBWireFrameClick(Sender: TObject);
 begin
-   GLSceneViewer1.Invalidate;
+  GLSceneViewer1.Invalidate;
 end;
 
 end.

+ 2 - 1
Demos/CPP/cgshaders/CGBombShader/Unit1.cpp

@@ -20,7 +20,8 @@
 #pragma link "GLS.FileMD2"
 #pragma link "GLS.File3DS"
 
-#pragma link "GLSL.cgBombShader"
+#pragma link "CG.Shader"
+#pragma link "CG.BombShader"
 
 #pragma resource "*.dfm"
 TForm1 *Form1;

+ 2 - 1
Demos/CPP/cgshaders/CGBombShader/Unit1.h

@@ -22,7 +22,8 @@
 #include "GLS.SimpleNavigation.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.SceneViewer.hpp"
-#include "GLSL.cgBombShader.hpp"
+#include "Cg.BombShader.hpp"
+#include "Cg.Shader.hpp"
 #include "JPeg.hpp"
 #include "GLS.FileMD2.hpp"
 #include "GLS.File3DS.hpp"

+ 0 - 1
Demos/CPP/cgshaders/celshading/Unit1.cpp

@@ -20,7 +20,6 @@
 #pragma link "GLS.SceneViewer"
 #pragma link "GLS.FileMD2"
 
-#pragma link "Cg.Shader"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 //---------------------------------------------------------------------------

+ 5 - 2
Demos/CPP/cgshaders/simple/Unit1.cpp

@@ -20,6 +20,9 @@
 #pragma link "GLS.VectorFileObjects"
 #pragma link "GLS.File3DS"
 
+#pragma link "Cg.Shader"
+#pragma link "Cg.Shader"
+#pragma link "Cg.Shader"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 //---------------------------------------------------------------------------
@@ -32,10 +35,10 @@ void __fastcall TForm1::FormCreate(TObject *Sender)
 {
    // Load Cg proggy from project directory
 	SetCurrentDir(ExtractFilePath(Application->ExeName));
-	CgShader1->VertexProgram->LoadFromFile("simple_vp.cg");
+	CgShader1->VertexProgram->LoadFromFile("Shaders\\simple_vp.cg");
 	MemoVertCode->Lines->Assign(CgShader1->VertexProgram->Code);
 
-	CgShader1->FragmentProgram->LoadFromFile("simple_fp.cg");
+	CgShader1->FragmentProgram->LoadFromFile("Shaders\\simple_fp.cg");
 	MemoFragCode->Lines->Assign(CgShader1->FragmentProgram->Code);
 
 	CgShader1->VertexProgram->Enabled = false;

+ 0 - 3
Demos/CPP/cgshaders/simple/Unit1.dfm

@@ -384,7 +384,6 @@ object Form1: TForm1
     Font.Style = [fsBold]
     ParentFont = False
     TabOrder = 1
-    ExplicitWidth = 217
     object PanelFPS: TPanel
       Left = 1
       Top = 1
@@ -399,7 +398,6 @@ object Form1: TForm1
       Font.Style = []
       ParentFont = False
       TabOrder = 0
-      ExplicitWidth = 215
     end
     object GLSceneViewer1: TGLSceneViewer
       Left = 1
@@ -414,7 +412,6 @@ object Form1: TForm1
       OnMouseDown = GLSceneViewer1MouseDown
       OnMouseMove = GLSceneViewer1MouseMove
       TabOrder = 1
-      ExplicitWidth = 215
     end
   end
   object GLScene1: TGLScene

+ 1 - 1
Demos/CPP/cgshaders/simple/Unit1.h

@@ -20,10 +20,10 @@
 #include "GLS.Graph.hpp"
 #include "GLS.Objects.hpp"
 #include "GLS.VectorFileObjects.hpp"
-#include "Cg.Shader.hpp"
 #include "GLS.File3DS.hpp"
 #include "Imports.Cg.hpp"
 #include "Imports.cgGL.hpp"
+#include "Cg.Shader.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1 : public TForm

+ 2 - 2
Demos/CPP/collisions/BoxSphere/Unit1.cpp

@@ -44,10 +44,10 @@ void __fastcall TForm1::CheckBox04Click(TObject *Sender)
 //---------------------------------------------------------------------------
 
 // Generates random rotation for matrix. It remains a scale.
-Gls::Vectorgeometry::TGLMatrix RandomRotation(Gls::Vectorgeometry::TGLMatrix const &aMatrix)
+TGLMatrix RandomRotation(TGLMatrix const &aMatrix)
 {
   TAffineVector aScale;
-  Gls::Vectorgeometry::TGLMatrix mat;
+  TGLMatrix mat;
   int I;
 
   // Save scale.

+ 1 - 1
Demos/CPP/collisions/BoxSphere/Unit1.h

@@ -83,7 +83,7 @@ __published:	// IDE-managed Components
 private:	// User declarations
 	int mdx, mdy;
 	TAffineVector intersPoint, ResNormal, BoxScale, SpherePos;
-	Gls::Vectorgeometry::TGLMatrix BoxMatrix;
+	TGLMatrix BoxMatrix;
 	float SphereRadius;
 public:		// User declarations
 	__fastcall TForm1(TComponent* Owner);

+ 1 - 1
Demos/CPP/collisions/boxedin/Unit1.h

@@ -20,7 +20,7 @@
 #include <GLS.VectorFileObjects.hpp>
 #include "GLS.Coordinates.hpp"
 
-#include "GLS.Utils.
+#include "GLS.Utils.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.SceneViewer.hpp"hpp"
 

+ 9 - 9
Demos/CPP/collisions/octree/Unit1.h

@@ -7,18 +7,18 @@
 #include <Controls.hpp>
 #include <StdCtrls.hpp>
 #include <Forms.hpp>
-#include <GLS.GeomObjects.hpp>    // Pascal unit
-#include <GLS.Cadencer.hpp>       // Pascal unit
-#include <GLS.SceneViewer.hpp>    // Pascal unit
-#include <GLS.Objects.hpp>        // Pascal unit
-#include <GLS.VectorFileObjects.hpp>      // Pascal unit
-#include <GLS.Scene.hpp>          // Pascal unit
+#include <GLS.GeomObjects.hpp>
+#include <GLS.Cadencer.hpp>
+#include <GLS.SceneViewer.hpp>
+#include <GLS.Objects.hpp>
+#include <GLS.VectorFileObjects.hpp>
+#include <GLS.Scene.hpp>
 #include <ExtCtrls.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Coordinates.hpp"
-         // Pascal unit
-#include "GLS.Utils.hp
-#include "GLS.Scene.hpp"p"         // Pascal unit
+
+#include "GLS.Utils.hpp"
+#include "GLS.Scene.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1:public TForm

+ 1 - 1
Demos/CPP/extrusion/nutsnbolts/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
   TextHeight = 13
@@ -24,6 +23,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBackground
     FieldOfView = 152.777770996093800000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove

+ 65 - 68
Demos/CPP/extrusion/tentacles/Unit1.cpp

@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 #include <vcl.h>
 #include <tchar.h>
@@ -7,7 +7,7 @@
 #pragma hdrstop
 
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
@@ -19,77 +19,74 @@
 #pragma link "GLS.SceneViewer"
 #pragma resource "*.dfm"
 TForm1 *Form1;
-//---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
+
+// ---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
 }
-//---------------------------------------------------------------------------
-const int
-   cNbNodes = 32;
+// ---------------------------------------------------------------------------
+const int cNbNodes = 32;
 
-void __fastcall TForm1::FormCreate(TObject *Sender)
-{
-   int i, k;
-   TGLPipe *pipe;
+void __fastcall TForm1::FormCreate(TObject *Sender) {
+	int i, k;
+	TGLPipe *pipe;
 
-   // prepare the TGLPipe objects (add node, set props...)
-   for (k =0; k < DCBase->Count-1; k++)
-   {
-	 if (dynamic_cast<TGLPipe *>(DCBase->Children[k]))
-	 {
-		pipe = (TGLPipe *)(DCBase->Children[k]);
-		pipe->Nodes->Clear();
-		for (i=0; i< cNbNodes - 1; i++)
-			pipe->Nodes->AddNode(0, i/8, 0);
-		pipe->Radius = 0.1;
-		 // enable per-node coloring in the TGLPipe
-		pipe->NodesColorMode = pncmDiffuse;
-		 // divisions between nodes (for spline interpolation)
-		pipe->Division = 3;
-		 // No geometry compilation/cacheing, render directly
-		 // (geometry changes completely from frame to frame)
-		pipe->ObjectStyle = pipe->ObjectStyle<<osDirectDraw;
-	 }
-   }
+	// prepare the TGLPipe objects (add node, set props...)
+	for (k = 0; k < DCBase->Count - 1; k++) {
+		if (dynamic_cast<TGLPipe*>(DCBase->Children[k])) {
+			pipe = (TGLPipe*)(DCBase->Children[k]);
+			pipe->Nodes->Clear();
+			for (i = 0; i < cNbNodes - 1; i++)
+				pipe->Nodes->AddNode(0, i / 8, 0);
+			pipe->Radius = 0.1;
+			// enable per-node coloring in the TGLPipe
+			pipe->NodesColorMode = pncmDiffuse;
+			// divisions between nodes (for spline interpolation)
+			pipe->Division = 3;
+			// No geometry compilation/cacheing, render directly
+			// (geometry changes completely from frame to frame)
+			pipe->ObjectStyle = pipe->ObjectStyle << osDirectDraw;
+		}
+	}
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
-		  const double newTime)
-{
-   int i, k;
-   float t, t1, t2, r;
-   TGLPipe *pipe;
 
-   t = newTime;
-   for (k=0; k < DCBase->Count-1;k++)
-	 if (dynamic_cast<TGLPipe *>(DCBase->Children[k]))
-	 {
-		 pipe = (TGLPipe *)(DCBase->Children[k]);
-		 pipe->Nodes->BeginUpdate();
-		 for (i=0; i<pipe->Nodes->Count-1; i++)
-		 {
-			t1 =  -t+i*0.1+k*(2*M_PI)/5;   // GLS.VectorGeometry::c2PI
-			r =  (Sin(3*t+k)+2)*0.5*((2*i+pipe->Nodes->Count)/pipe->Nodes->Count);
-			pipe->Nodes->Items[i]->X = Cos(t1)*r;
-			pipe->Nodes->Items[i]->Z = Sin(t1)*r;
-			t2 = 2*(t+i/(pipe->Nodes->Count-1)+k);
-			pipe->Material->FrontProperties->Ambient->Color = VectorLerp(clrAqua, clrYellow, Sin(t2));
-			pipe->Radius =(1+(Sin(t2)*0.5))*Ln((pipe->Nodes->Count-i))*0.5;
-		 }
-		// don't search any hidden logic behind the formulaes below:
-		// they're just here to induce this sickening weirdo movement
-		 pipe->Nodes->EndUpdate();
-	 }
-   Sphere1->Radius = 1.4+Sin(2*t)*0.1;
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLCadencer1Progress(TObject *Sender,
+	const double deltaTime, const double newTime) {
+	int i, k;
+	float t, t1, t2, r;
+	TGLPipe *pipe;
+
+	t = newTime;
+	for (k = 0; k < DCBase->Count - 1; k++)
+		if (dynamic_cast<TGLPipe*>(DCBase->Children[k])) {
+			pipe = (TGLPipe*)(DCBase->Children[k]);
+			pipe->Nodes->BeginUpdate();
+			for (i = 0; i < pipe->Nodes->Count - 1; i++) {
+				t1 = -t + i * 0.1 + k * (2 * M_PI) / 5;
+				// GLS.VectorGeometry::c2PI
+				r = (Sin(3 * t + k) + 2) * 0.5 *
+					((2 * i + pipe->Nodes->Count) / pipe->Nodes->Count);
+				pipe->Nodes->Items[i]->X = Cos(t1) * r;
+				pipe->Nodes->Items[i]->Z = Sin(t1) * r;
+				t2 = 2 * (t + i / (pipe->Nodes->Count - 1) + k);
+				pipe->Material->FrontProperties->Ambient->Color =
+					VectorLerp(clrAqua, clrYellow, Sin(t2));
+				pipe->Radius =
+					(1 + (Sin(t2) * 0.5)) * Ln((pipe->Nodes->Count - i)) * 0.5;
+			}
+			// don't search any hidden logic behind the formulaes below:
+			// they're just here to induce this sickening weirdo movement
+			pipe->Nodes->EndUpdate();
+		}
+	Sphere1->Radius = 1.4 + Sin(2 * t) * 0.1;
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::Timer1Timer(TObject *Sender)
-{
-   // standard FPS counter
-   PanelFPS->Caption = Format("%.1f FPS",
-	 ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
-   GLSceneViewer1->ResetPerformanceMonitor();
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::Timer1Timer(TObject *Sender) {
+	// standard FPS counter
+	PanelFPS->Caption =
+		Format("%.1f FPS", ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
+	GLSceneViewer1->ResetPerformanceMonitor();
 
 }
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------

+ 1 - 0
Demos/CPP/extrusion/tentacles/Unit1.dfm

@@ -22,6 +22,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     FieldOfView = 149.984252929687500000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end

+ 155 - 158
Demos/CPP/glslshaders/Ocean/Unit1.cpp

@@ -1,11 +1,11 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 #include <vcl.h>
 #include <tchar.h>
 #pragma hdrstop
 
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
@@ -24,189 +24,186 @@
 
 #pragma resource "*.dfm"
 TForm1 *Form1;
-//---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
+
+// ---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::FormCreate(TObject *Sender)
-{
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender) {
 	SetGLSceneMediaDir();
 	// Load the cube map which is used both for environment and as reflection texture
 	TGLTexture *tex = MatLib->LibMaterialByName("water")->Material->Texture;
 	tex->Image->LoadFromFile("noise.bmp");
 	tex->ImageClassName = __classid(TGLCubeMapImage)->ClassName();
-	TGLCubeMapImage *img = (TGLCubeMapImage *) tex->Image;
+	TGLCubeMapImage *img = (TGLCubeMapImage*) tex->Image;
 	// Load all 6 texture map components of the cube map
 	// The 'PX', 'NX', etc. refer to 'positive X', 'negative X', etc.
 	// and follow the RenderMan specs/conventions
-	img->Picture[CmtPX]->LoadFromFile("cm_left.jpg");
-	img->Picture[CmtNX]->LoadFromFile("cm_right.jpg");
-	img->Picture[CmtPY]->LoadFromFile("cm_top.jpg");
-	img->Picture[CmtNY]->LoadFromFile("cm_bottom.jpg");
-	img->Picture[CmtPZ]->LoadFromFile("cm_back.jpg");
-	img->Picture[CmtNZ]->LoadFromFile("cm_front.jpg");
+	img->Picture[CmtPX]->LoadFromFile("CubeMaps\\cm_left.jpg");
+	img->Picture[CmtNX]->LoadFromFile("CubeMaps\\cm_right.jpg");
+	img->Picture[CmtPY]->LoadFromFile("CubeMaps\\cm_top.jpg");
+	img->Picture[CmtNY]->LoadFromFile("CubeMaps\\cm_bottom.jpg");
+	img->Picture[CmtPZ]->LoadFromFile("CubeMaps\\cm_back.jpg");
+	img->Picture[CmtNZ]->LoadFromFile("CubeMaps\\cm_front.jpg");
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::DOInitializeRender(TObject *Sender, TGLRenderContextInfo &rci)
-{
-	if (! ((GL_SHADER_OBJECT_ARB) &&
-			(GL_VERTEX_PROGRAM_ARB) &&
-			(GL_VERTEX_SHADER_ARB) &&
-			(GL_FRAGMENT_SHADER_ARB)))
-	{
-	  ShowMessage("Your hardware does not support GLSL to execute this demo!");
-	}
-
-  if (DOInitialize->Tag != 0)
-	exit;
-  DOInitialize->Tag = 1;
-  GLSceneViewer1->Buffer->RenderingContext->Deactivate();
-  GLMemoryViewer1->RenderCubeMapTextures(MatLib->LibMaterialByName("cubeMap")->Material->Texture);
-  GLSceneViewer1->Buffer->RenderingContext->Activate();
 
-  TGLProgramHandle *programObject = new TGLProgramHandle(true);
-  programObject->AddShader(__classid(TGLVertexShaderHandle), LoadAnsiStringFromFile("ocean_vp.glsl"), true);
-  programObject->AddShader(__classid(TGLFragmentShaderHandle), LoadAnsiStringFromFile("ocean_fp.glsl"), true);
-
-  if (! programObject->LinkProgram())
-	throw Exception(programObject->InfoLog());
-
-  programObject->UseProgramObject();
-  programObject->Uniform1i["NormalMap"] = 0;
-  programObject->Uniform1i["EnvironmentMap"] = 1;
-  programObject->EndUseProgramObject();
-
-  // initialize the heightmap
-  rci.GLStates->TextureBinding[0][ttTexture2D] =
-	  MatLib->LibMaterialByName("water")->Material->Texture->Handle;
-
-  // initialize the heightmap
-  rci.GLStates->TextureBinding[1][ttTextureCube] =
-	 MatLib->LibMaterialByName("cubeMap")->Material->Texture->Handle;
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::DOInitializeRender(TObject *Sender,
+	TGLRenderContextInfo &rci) {
+	if (!((GL_SHADER_OBJECT_ARB) && (GL_VERTEX_PROGRAM_ARB) &&
+		(GL_VERTEX_SHADER_ARB) && (GL_FRAGMENT_SHADER_ARB))) {
+		ShowMessage(
+			"Your hardware does not support GLSL to execute this demo!");
+	}
 
-  if (! programObject->ValidateProgram())
-	throw Exception(programObject->InfoLog());
+	if (DOInitialize->Tag != 0)
+		exit;
+	DOInitialize->Tag = 1;
+	GLSceneViewer1->Buffer->RenderingContext->Deactivate();
+	GLMemoryViewer1->RenderCubeMapTextures
+		(MatLib->LibMaterialByName("cubeMap")->Material->Texture);
+	GLSceneViewer1->Buffer->RenderingContext->Activate();
+
+	TGLProgramHandle *programObject = new TGLProgramHandle(true);
+	programObject->AddShader(__classid(TGLVertexShaderHandle),
+		LoadAnsiStringFromFile("Shaders\\ocean_vp.glsl"), true);
+	programObject->AddShader(__classid(TGLFragmentShaderHandle),
+		LoadAnsiStringFromFile("Shaders\\ocean_fp.glsl"), true);
+
+	if (!programObject->LinkProgram())
+		throw Exception(programObject->InfoLog());
+
+	programObject->UseProgramObject();
+	programObject->Uniform1i["NormalMap"] = 0;
+	programObject->Uniform1i["EnvironmentMap"] = 1;
+	programObject->EndUseProgramObject();
+
+	// initialize the heightmap
+	rci.GLStates->TextureBinding[0][ttTexture2D] =
+		MatLib->LibMaterialByName("water")->Material->Texture->Handle;
+
+	// initialize the heightmap
+	rci.GLStates->TextureBinding[1][ttTextureCube] =
+		MatLib->LibMaterialByName("cubeMap")->Material->Texture->Handle;
+
+	if (!programObject->ValidateProgram())
+		throw Exception(programObject->InfoLog());
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLUserShader1DoApply(TObject *Sender, TGLRenderContextInfo &rci)
 
-{
-  TGLVector camPos;
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLUserShader1DoApply(TObject *Sender,
+	TGLRenderContextInfo &rci)
 
-  programObject = new TGLProgramHandle();
-  programObject->UseProgramObject();
-///  programObject->Uniform1f["Time"] = GLCadencer1->CurrentTime * 0.05;
-  camPos = GLCamera->AbsolutePosition;
-///  programObject->Uniform4f["EyePos"] = camPos;
-}
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLUserShader1DoUnApply(TObject *Sender, int Pass, TGLRenderContextInfo &rci,
-          bool &Continue)
 {
-  programObject->EndUseProgramObject();
+	TGLVector camPos;
+
+	programObject = new TGLProgramHandle();
+	programObject->UseProgramObject();
+	///  programObject->Uniform1f["Time"] = GLCadencer1->CurrentTime * 0.05;
+	camPos = GLCamera->AbsolutePosition;
+	///  programObject->Uniform4f["EyePos"] = camPos;
 }
-//---------------------------------------------------------------------------
 
-void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
-          int X, int Y)
-{
-  if (Shift.Contains(ssLeft))
-  {
-	GLCamera->MoveAroundTarget(my-Y, mx-X);
-  }
-  mx = X;
-  my = Y;
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLUserShader1DoUnApply(TObject *Sender, int Pass,
+	TGLRenderContextInfo &rci, bool &Continue) {
+	programObject->EndUseProgramObject();
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
-		  const double newTime)
-{
-  if ((dmx != 0) || (dmy != 0)) {
-	GLCamera->MoveAroundTarget(dmy * 0.3, dmx * 0.3);
-	dmx = 0;
-	dmy = 0;
-  }
-  GLSceneViewer1->Invalidate();
+// ---------------------------------------------------------------------------
+
+void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender,
+	TShiftState Shift, int X, int Y) {
+	if (Shift.Contains(ssLeft)) {
+		GLCamera->MoveAroundTarget(my - Y, mx - X);
+	}
+	mx = X;
+	my = Y;
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender, TMouseButton Button,
-          TShiftState Shift, int X, int Y)
-{
-  mx = X;
-  my = Y;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLCadencer1Progress(TObject *Sender,
+	const double deltaTime, const double newTime) {
+	if ((dmx != 0) || (dmy != 0)) {
+		GLCamera->MoveAroundTarget(dmy * 0.3, dmx * 0.3);
+		dmx = 0;
+		dmy = 0;
+	}
+	GLSceneViewer1->Invalidate();
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLHeightField1GetHeight(const float x, const float y, float &z,
-		  TVector4f &color, TTexPoint &texPoint)
-{
-  z = 0;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender,
+	TMouseButton Button, TShiftState Shift, int X, int Y) {
+	mx = X;
+	my = Y;
 }
-//---------------------------------------------------------------------------
-const int
-  cExtent = 200;
 
-  TGLVBOArrayBufferHandle *vbo;
-  int nbVerts;
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLHeightField1GetHeight(const float x, const float y,
+	float &z, TVector4f &color, TTexPoint &texPoint) {
+	z = 0;
+}
+// ---------------------------------------------------------------------------
+const int cExtent = 200;
 
+TGLVBOArrayBufferHandle *vbo;
+int nbVerts;
 
-void __fastcall TForm1::DOOceanPlaneRender(TObject *Sender, TGLRenderContextInfo &rci)
+void __fastcall TForm1::DOOceanPlaneRender(TObject *Sender,
+	TGLRenderContextInfo &rci)
 
 {
-  int x, y;
-  TTexPointList *v;
-  bool cont;
-  TGLExtensionsAndEntryPoints *GL;
-
-  GLUserShader1DoApply(Sender, rci);
-  GL = new TGLExtensionsAndEntryPoints();
-  GL->EnableClientState(GL_VERTEX_ARRAY);
-
-  if (! vbo)
-  {
-	v = new TTexPointList;
-
-	v->Capacity = (cExtent + 1)*(cExtent + 1);
-	y = -cExtent;
-	while (y < cExtent)
-	{
-	  x = -cExtent;
-	  while (x <= cExtent) {
-		v->Add(y, x);
-		v->Add(y + 2, x);
-		x = x + 2;
-	  }
-	  y = y + 2;
-	  v->Add(y, cExtent);
-	  v->Add(y, -cExtent);
+	int x, y;
+	TTexPointList *v;
+	bool cont;
+	TGLExtensionsAndEntryPoints *GL;
+
+	GLUserShader1DoApply(Sender, rci);
+	GL = new TGLExtensionsAndEntryPoints();
+	GL->EnableClientState(GL_VERTEX_ARRAY);
+
+	if (!vbo) {
+		v = new TTexPointList;
+
+		v->Capacity = (cExtent + 1) * (cExtent + 1);
+		y = -cExtent;
+		while (y < cExtent) {
+			x = -cExtent;
+			while (x <= cExtent) {
+				v->Add(y, x);
+				v->Add(y + 2, x);
+				x = x + 2;
+			}
+			y = y + 2;
+			v->Add(y, cExtent);
+			v->Add(y, -cExtent);
+		}
+		vbo = new TGLVBOArrayBufferHandle(true);
+		vbo->Bind();
+		vbo->BufferData(v->List, v->DataSize(), GL_STATIC_DRAW_ARB);
+		nbVerts = v->Count;
+
+		GL->VertexPointer(2, GL_FLOAT, 0, NULL);
+		GL->DrawArrays(GL_QUAD_STRIP, 0, nbVerts);
+
+		vbo->UnBind();
+
+		delete v;
 	}
-	vbo = new TGLVBOArrayBufferHandle(true);
-	vbo->Bind();
-	vbo->BufferData(v->List, v->DataSize(), GL_STATIC_DRAW_ARB);
-	nbVerts = v->Count;
-
-	GL->VertexPointer(2, GL_FLOAT, 0, NULL);
-	GL->DrawArrays(GL_QUAD_STRIP, 0, nbVerts);
-
-	vbo->UnBind();
-
-	delete v;
-  }
-  else
-  {
-	vbo->Bind();
-	GL->VertexPointer(2, GL_FLOAT, 0, NULL);
-	GL->DrawArrays(GL_TRIANGLE_STRIP, 0, nbVerts);
-	vbo->UnBind();
-  }
-  GL->DisableClientState(GL_VERTEX_ARRAY);
-  GLUserShader1DoUnApply(Sender, 0, rci, cont);
+	else {
+		vbo->Bind();
+		GL->VertexPointer(2, GL_FLOAT, 0, NULL);
+		GL->DrawArrays(GL_TRIANGLE_STRIP, 0, nbVerts);
+		vbo->UnBind();
+	}
+	GL->DisableClientState(GL_VERTEX_ARRAY);
+	GLUserShader1DoUnApply(Sender, 0, rci, cont);
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1BeforeRender(TObject *Sender)
-{
-//  GLMemoryViewer1->Buffer->RenderingContext->ShareLists(GLSceneViewer1->Buffer->RenderingContext);
-//  GLMemoryViewer1->BeforeRender = NULL;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1BeforeRender(TObject *Sender) {
+	///  GLMemoryViewer1->Buffer->RenderingContext->ShareLists(GLSceneViewer1->Buffer->RenderingContext);
+	///  GLMemoryViewer1->BeforeRender = NULL;
 }
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------

+ 1 - 1
Demos/CPP/glslshaders/PostShader/Unit1.h

@@ -34,7 +34,7 @@
 // Shader headers
 #include "GLSL.PostShaders.hpp"
 #include "GLSL.PostEffects.hpp"
-#include "CG.PostTransformationShader.hpp"
+#include "Cg.PostTransformationShader.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1 : public TForm

+ 1 - 1
Demos/CPP/graph/projection/Unit1.cpp

@@ -39,7 +39,7 @@ void __fastcall TForm1::DirectOpenGLRender(TObject *Sender, TGLRenderContextInfo
 
 {
    int i;
-   Gls::Vectorgeometry::TGLMatrix mat;
+   TGLMatrix mat;
    TGLVector p, pProj;
    TGLVector planePoint, planeNormal;
    THmgPlane plane;

+ 1 - 1
Demos/CPP/interface/SimpleNavigation/SimpleNavigation.cbproj

@@ -7,7 +7,7 @@
         <MainSource>SimpleNavigation.cpp</MainSource>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
-        <Platform Condition="'$(Platform)'==''">Win64</Platform>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">

+ 1 - 0
Demos/CPP/interface/SimpleNavigation/Unit1.dfm

@@ -21,6 +21,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBackground
     FieldOfView = 152.194625854492200000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end

+ 1 - 1
Demos/CPP/interface/camera/Unit1.cpp

@@ -57,7 +57,7 @@ void __fastcall TForm1::RadioGroup2Click(TObject *Sender)
 void __fastcall TForm1::GLCamera1CustomPerspective(const TRectangle &viewport, int width,
           int height, int DPI, float &viewPortRadius)
 {
-  Gls::Vectorgeometry::TGLMatrix Mat;
+  TGLMatrix Mat;
 
   Mat =  CreatePerspectiveMatrix(GLCamera1->GetFieldOfView(Width)/4,
 	Width / Height, GLCamera1->NearPlaneBias, GLCamera1->DepthOfView);

+ 64 - 64
Demos/CPP/materials/cubemap/uCubeMap.cpp

@@ -1,10 +1,10 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 #include <vcl.h>
 #pragma hdrstop
 
 #include "uCubeMap.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Coordinates"
@@ -16,82 +16,82 @@
 #pragma link "GLS.Texture"
 #pragma resource "*.dfm"
 TForm1 *Form1;
-//---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
+
+// ---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1BeforeRender(TObject *Sender)
-{
-  //CubmapSupported = !GL_ARB_texture_cube_map;
-  GLSceneViewer1->BeforeRender = NULL;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1BeforeRender(TObject *Sender) {
+	// CubmapSupported = !GL_ARB_texture_cube_map;
+	GLSceneViewer1->BeforeRender = NULL;
 
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::Button1Click(TObject *Sender)
-{
-  // Cube map warning message
-  // If you don't check and turn off cube maps yourself in your apps when
-  // cube maps aren't supported, GLScene will just turn off texturing
-  // (ie. no error generated, just a different output)
 
-  /*
-  if (!CubmapSupported)
-  {
-	ShowMessage("Your graphics board does not support cube maps...");
-	exit;
-  }
-  */
-  // Our cube map images are here
-  SetGLSceneMediaDir();
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::Button1Click(TObject *Sender) {
+	// Cube map warning message
+	// If you don't check and turn off cube maps yourself in your apps when
+	// cube maps aren't supported, GLScene will just turn off texturing
+	// (ie. no error generated, just a different output)
+
+	/*
+	 if (!CubmapSupported)
+	 {
+	 ShowMessage("Your graphics board does not support cube maps...");
+	 exit;
+	 }
+	 */
+	// Our cube map images are here
+	SetGLSceneMediaDir();
 	// We need a CubeMapImage, which unlike the "regular Images" stores
 	// multiple images.
 
-  //with Teapot1->Material->Texture->
-  Teapot1->Material->Texture->ImageClassName =
+	// with Teapot1->Material->Texture->
+	Teapot1->Material->Texture->ImageClassName =
 		__classid(TGLCubeMapImage)->ClassName();
-  TGLCubeMapImage *Image = (TGLCubeMapImage *) Teapot1->Material->Texture->Image;
+	TGLCubeMapImage *Image =
+		(TGLCubeMapImage*) Teapot1->Material->Texture->Image;
 
-  // Load all 6 texture map components of the cube map
-  // The 'PX', 'NX', etc. refer to 'positive X', 'negative X', etc.
-  // and follow the RenderMan specs/conventions
-  Image->Picture[CmtPX]->LoadFromFile("cm_left.jpg");
-  Image->Picture[CmtNX]->LoadFromFile("cm_right.jpg");
-  Image->Picture[CmtPY]->LoadFromFile("cm_top.jpg");
-  Image->Picture[CmtNY]->LoadFromFile("cm_bottom.jpg");
-  Image->Picture[CmtPZ]->LoadFromFile("cm_back.jpg");
-  Image->Picture[CmtNZ]->LoadFromFile("cm_front.jpg");
+	// Load all 6 texture map components of the cube map
+	// The 'PX', 'NX', etc. refer to 'positive X', 'negative X', etc.
+	// and follow the RenderMan specs/conventions
+	Image->Picture[CmtPX]->LoadFromFile("Cubemaps\\cm_left.jpg");
+	Image->Picture[CmtNX]->LoadFromFile("Cubemaps\\cm_right.jpg");
+	Image->Picture[CmtPY]->LoadFromFile("Cubemaps\\cm_top.jpg");
+	Image->Picture[CmtNY]->LoadFromFile("Cubemaps\\cm_bottom.jpg");
+	Image->Picture[CmtPZ]->LoadFromFile("Cubemaps\\cm_back.jpg");
+	Image->Picture[CmtNZ]->LoadFromFile("Cubemaps\\cm_front.jpg");
 	// Select reflection cube map environment mapping
 	// This is the mode you'll most commonly use with cube maps, normal cube
 	// map generation is also supported (used for diffuse environment lighting)
-  Teapot1->Material->Texture->MappingMode = tmmCubeMapReflection;
+	Teapot1->Material->Texture->MappingMode = tmmCubeMapReflection;
 	// That's all folks, let us see the thing!
-  Teapot1->Material->Texture->Disabled = false;
-  Button1->Visible = false;
+	Teapot1->Material->Texture->Disabled = false;
+	Button1->Visible = false;
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender, TMouseButton Button,
-          TShiftState Shift, int X, int Y)
-{
-  mx = X;
-  my = Y;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1MouseDown(TObject *Sender,
+	TMouseButton Button, TShiftState Shift, int X, int Y) {
+	mx = X;
+	my = Y;
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
-          int X, int Y)
-{
-   if (Shift.Contains(ssLeft))
-	  GLCamera1->MoveAroundTarget(my-Y, mx-X);
-   else if (Shift.Contains(ssRight))
-	  GLCamera1->RotateTarget(my-Y, mx-X, 0);
-   mx=X; my=Y;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender,
+	TShiftState Shift, int X, int Y) {
+	if (Shift.Contains(ssLeft))
+		GLCamera1->MoveAroundTarget(my - Y, mx - X);
+	else if (Shift.Contains(ssRight))
+		GLCamera1->RotateTarget(my - Y, mx - X, 0);
+	mx = X;
+	my = Y;
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift, int WheelDelta,
-          TPoint &MousePos, bool &Handled)
-{
-  GLCamera1->
-   AdjustDistanceToTarget(Power(1.1, (WheelDelta / 120.0)));
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::FormMouseWheel(TObject *Sender, TShiftState Shift,
+	int WheelDelta, TPoint &MousePos, bool &Handled) {
+	GLCamera1->AdjustDistanceToTarget(Power(1.1, (WheelDelta / 120.0)));
 }
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------

+ 3 - 0
Demos/CPP/materials/dyncubemap/Unit1.cpp

@@ -27,12 +27,15 @@ __fastcall TForm1::TForm1(TComponent* Owner)
 void __fastcall TForm1::GenerateCubeMap()
 {
    // Don't do anything if cube maps aren't supported
+   /*
    if (!CubmapSupported) {
 	  if (!CubeMapWarnDone)
 		 ShowMessage("Your graphics hardware does not support cube maps...");
 	  CubeMapWarnDone = true;
 	  exit;
    }
+   */
+
    // Here we generate the new cube map, from CubeMapCamera (a child of the
    // teapot in the scene hierarchy)
    // hide the teapot while rendering the cube map

+ 1 - 1
Demos/CPP/materials/dyncubemap/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
   TextHeight = 13
@@ -25,6 +24,7 @@ object Form1: TForm1
     BeforeRender = GLSceneViewer1BeforeRender
     Buffer.BackgroundColor = clBlack
     FieldOfView = 143.583038330078100000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove

+ 1 - 1
Demos/CPP/materials/mirror/Unit1.dfm

@@ -11,7 +11,6 @@ object Form1: TForm1
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   OldCreateOrder = False
-  WindowState = wsMaximized
   OnMouseWheel = FormMouseWheel
   OnResize = FormResize
   PixelsPerInch = 96
@@ -82,6 +81,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clTeal
     Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
     FieldOfView = 151.023590087890600000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove

+ 291 - 128
Demos/CPP/materials/multimaterial/MultiMaterial.cbproj

@@ -42,12 +42,12 @@
     <PropertyGroup Condition="'$(Base)'!=''">
         <SanitizedProjectName>MultiMaterial</SanitizedProjectName>
         <AllPackageLibs>rtl.lib;vcl.lib;GLScene_RT.lib;xmlrtl.lib;vclimg.lib</AllPackageLibs>
-        <ILINK_LibraryPath>D:\GLScene\Samples\CPP\Demos\materials\multimaterial\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_LibraryPath>..\..\..\Delphi\materials\;D:\GLScene\Samples\CPP\Demos\materials\multimaterial\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <Multithreaded>true</Multithreaded>
         <_TCHARMapping>wchar_t</_TCHARMapping>
         <ProjectType>CppVCLApplication</ProjectType>
         <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
-        <IncludePath>D:\GLScene\Samples\CPP\Demos\materials\multimaterial\;$(IncludePath)</IncludePath>
+        <IncludePath>..\..\..\Delphi\materials\;D:\GLScene\Samples\CPP\Demos\materials\multimaterial\;$(IncludePath)</IncludePath>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
         <DynamicRTL>true</DynamicRTL>
@@ -202,6 +202,54 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32220.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64220.dll" Class="DependencyModule"/>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32250mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64270.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName=".\Win32\Debug\MultiMaterial.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>MultiMaterial.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64270mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c270.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64220mt.dll" Class="DependencyModule"/>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c250mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
@@ -238,45 +286,39 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c270mt.dll" Class="DependencyModule">
-                    <Platform Name="Win32">
-                        <Overwrite>true</Overwrite>
-                    </Platform>
-                </DeployFile>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32270.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c270.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32260mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32220.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32250mt.dll" Class="DependencyModule">
+                <DeployFile LocalName=".\Win32\Debug\MultiMaterial.tds" Configuration="Debug" Class="DebugSymbols">
                     <Platform Name="Win32">
+                        <RemoteName>MultiMaterial.tds</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64220.dll" Class="DependencyModule"/>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64250mt.dll" Class="DependencyModule">
                     <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64270.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64260.dll" Class="DependencyModule">
                     <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32250.dll" Class="DependencyModule">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c260mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64270mt.dll" Class="DependencyModule">
-                    <Platform Name="Win64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32250.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -285,12 +327,12 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32220mt.dll" Class="DependencyModule"/>
-                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
-                    <Platform Name="OSX64">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c270mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32220mt.dll" Class="DependencyModule"/>
                 <DeployClass Name="AdditionalDebugSymbols">
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
@@ -308,20 +350,12 @@
                         <RemoteDir>classes</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>classes</RemoteDir>
-                        <Operation>1</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="AndroidGDBServer">
                     <Platform Name="Android">
@@ -334,10 +368,6 @@
                         <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">
@@ -350,20 +380,12 @@
                         <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">
@@ -376,200 +398,120 @@
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStyles">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStylesV21">
                     <Platform Name="Android">
                         <RemoteDir>res\values-v21</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values-v21</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Colors">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon144">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-ldpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-mdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-hdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon24">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-mdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-hdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage426">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-small</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-small</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage470">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-normal</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-normal</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage640">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-large</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-large</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage960">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xlarge</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Strings">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="DebugSymbols">
                     <Platform Name="iOSSimulator">
@@ -658,9 +600,6 @@
                     <Platform Name="Android">
                         <Operation>0</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <Operation>0</Operation>
-                    </Platform>
                     <Platform Name="iOSDevice32">
                         <Operation>0</Operation>
                     </Platform>
@@ -693,6 +632,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Launch1024x768">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch1536">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -704,6 +654,39 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Launch1536x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668x2388">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch2048">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -715,6 +698,61 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Launch2048x1536">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048x2732">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2224">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2388x1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2732x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch2x">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -736,6 +774,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Launch768x1024">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_LaunchDark2x">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -746,6 +795,105 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_Launch1125">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1136x640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242x2688">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1334">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1792">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2208">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2436">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2688x1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_Launch2x">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -799,6 +947,28 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_Launch750">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch828">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_LaunchDark2x">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -823,9 +993,6 @@
                     <Platform Name="Android">
                         <Operation>1</Operation>
                     </Platform>
-                    <Platform Name="Android64">
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
@@ -928,10 +1095,6 @@
                         <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>

+ 2 - 2
Demos/CPP/materials/multimaterial/Unit1.cpp

@@ -11,11 +11,11 @@
 #pragma link "GLS.Coordinates"
 
 #pragma link "GLS.Material"
-#pragma link "GLMultiMaterialShader"
 #pragma link "GLS.Objects"
 #pragma link "GLS.Scene"
-#pragma link "GLTS.TextureCombineShader"
 #pragma link "GLS.SceneViewer"
+#pragma link "GLSL.MultiMaterialShader"
+#pragma link "GLSL.TextureShaders"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 //---------------------------------------------------------------------------

+ 1 - 1
Demos/CPP/materials/multimaterial/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
@@ -25,6 +24,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clTeal
     FieldOfView = 152.586074829101600000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove

+ 4 - 2
Demos/CPP/materials/multimaterial/Unit1.h

@@ -15,13 +15,15 @@
 #include "GLS.Texture.hpp"
 #include "GLS.VectorGeometry.hpp"
 #include "GLS.Cadencer.hpp"
-#include "GLMultiMaterialShader.hpp"
-#include "GLSL.TexureCombineShader.hpp"
+#include "GLSL.MultiMaterialShader.hpp"
+#include "GLSL.TextureShaders.hpp"
 #include "GLS.Material.hpp"
 #include "GLS.Coordinates.hpp"
 
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Utils.hpp"
+#include "GLSL.MultiMaterialShader.hpp"
+#include "GLSL.TextureShaders.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1 : public TForm

+ 0 - 1
Demos/CPP/materials/multipass/Unit1.cpp

@@ -37,7 +37,6 @@
 
 #pragma link "GLS.Material"
 #include "GLS.OpenGLTokens.hpp"
-#include "OpenGLx.hpp"
 
 #pragma resource "*.dfm"
 TForm1 *Form1;

+ 1 - 0
Demos/CPP/materials/multipass/Unit1.dfm

@@ -25,6 +25,7 @@ object Form1: TForm1
     Margins.Bottom = 2
     Camera = GLCamera1
     FieldOfView = 145.794540405273400000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove

+ 12 - 12
Demos/CPP/meshes/actorms3d/Unit1.cpp

@@ -47,16 +47,16 @@
 TForm1 *Form1;
 
 int mdx, mdy;
-Gls::Vectorgeometry::TMatrix4f FBiasMatrix;
-Gls::Vectorgeometry::TMatrix4f FLightModelViewMatrix;
-Gls::Vectorgeometry::TMatrix4f FLightProjMatrix;
-Gls::VectorGeometry::TGLMatrix FInvCameraMatrix;
-Gls::Vectorgeometry::TMatrix4f FEyeToLightMatrix;
+TMatrix4f FBiasMatrix;
+TMatrix4f FLightModelViewMatrix;
+TMatrix4f FLightProjMatrix;
+TGLMatrix FInvCameraMatrix;
+TMatrix4f FEyeToLightMatrix;
 
-Gls::Vectorgeometry::TMatrix4f FLightModelViewMatrix2;
-Gls::Vectorgeometry::TMatrix4f FLightProjMatrix2;
-Gls::Vectorgeometry::TMatrix4f FInvCameraMatrix2;
-Gls::Vectorgeometry::TMatrix4f FEyeToLightMatrix2;
+TMatrix4f FLightModelViewMatrix2;
+TMatrix4f FLightProjMatrix2;
+TMatrix4f FInvCameraMatrix2;
+TMatrix4f FEyeToLightMatrix2;
 
 // ---------------------------------------------------------------------------
 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
@@ -232,7 +232,7 @@ void __fastcall TForm1::GLDirectOpenGL1Render(TObject *Sender,
 	TGLRenderContextInfo &rci)
 
 {
-	FInvCameraMatrix = rci.PipelineTransformation->InvModelViewMatrix;
+	FInvCameraMatrix = *rci.PipelineTransformation->InvModelViewMatrix;
 	FEyeToLightMatrix = MatrixMultiply(FInvCameraMatrix, FLightModelViewMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FLightProjMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FBiasMatrix);
@@ -252,9 +252,9 @@ void __fastcall TForm1::GLFrameBufferBeforeRender(TObject *Sender,
 
 {
 	FLightModelViewMatrix =
-		CurrentGLContext()->PipelineTransformation->ModelViewMatrix;
+		*CurrentGLContext()->PipelineTransformation->ModelViewMatrix;
 	FLightProjMatrix =
-		CurrentGLContext()->PipelineTransformation->ProjectionMatrix;
+		*CurrentGLContext()->PipelineTransformation->ProjectionMatrix;
 	CurrentGLContext()->GLStates->Enable(stPolygonOffsetFill);
 	CurrentGLContext()->GLStates->PolygonOffsetFactor = 2;
 	CurrentGLContext()->GLStates->PolygonOffsetUnits = 2;

+ 1 - 1
Demos/CPP/meshes/actorms3d/Unit1.h

@@ -7,13 +7,13 @@
 #include <Vcl.ComCtrls.hpp>
 #include <Vcl.ExtCtrls.hpp>
 
-#include <GLS.FileZLIB.hpp>
 #include <Vcl.Controls.hpp>
 #include <Vcl.StdCtrls.hpp>
 #include <Vcl.Forms.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Coordinates.hpp"
+#include "GLS.FileZLIB.hpp"
 
 #include "GLS.FBORenderer.hpp"
 #include "GLS.Material.hpp"

+ 10 - 3
Demos/CPP/meshes/tiles/Unit1.cpp

@@ -28,13 +28,20 @@ __fastcall TForm1::TForm1(TComponent* Owner)
 void __fastcall TForm1::FormCreate(TObject *Sender)
 {
    int i, j;
-   SetGLSceneMediaDir();
+   SetGLSceneMediaDir();
+   GLMaterialLibrary->TexturePaths = GetCurrentDir();
+
+  GLMaterialLibrary->LibMaterialByName("beigemarble")->Material->Texture->Image->LoadFromFile("beigemarble.jpg");
+  GLMaterialLibrary->LibMaterialByName("marbletiles")->Material->Texture->Image->LoadFromFile("marbletiles.jpg");
+  GLMaterialLibrary->LibMaterialByName("walkway")->Material->Texture->Image->LoadFromFile("walkway.jpg");
+
    // fill the tiled area with random tiles
    RandSeed = 0;
-/*
+
+ /*
    for (i=-20;i<=20;i++)
 	 for (j=-20;j<=20;j++)
-	  GLS.TilePlane->Tiles[i,j] = Random(GLMaterialLibrary->Materials->Count-1)+1;
+	  GLTilePlane->Tiles[i,j] = Random(GLMaterialLibrary->Materials->Count-1)+1;
 */
    // set all tile materials to anisotropic,
    // add them to the material selection combo

+ 2 - 1
Demos/CPP/meshes/tiles/Unit1.dfm

@@ -21,6 +21,7 @@ object Form1: TForm1
     Height = 422
     Camera = GLCamera
     FieldOfView = 153.337402343750000000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
@@ -202,7 +203,7 @@ object Form1: TForm1
         Material.Texture.Disabled = False
         TextureScale.Coordinates = {0000003F0000003F0000803F00000000}
       end>
-    TexturePaths = '..\..\..\..\media'
+    TexturePaths = '..\\..\\..\\..\\media'
     Left = 24
     Top = 64
   end

+ 2 - 2
Demos/CPP/meshes/tiles/Unit1.h

@@ -15,7 +15,7 @@
 #include "GLS.Material.hpp"
 #include "GLS.Objects.hpp"
 #include "GLS.Scene.hpp"
-#include "GLTilePlane.hpp"
+#include "GLS.TilePlane.hpp"
 #include "GLS.SceneViewer.hpp"
 #include <Vcl.Imaging.jpeg.hpp>
 #include <Vcl.ExtCtrls.hpp>
@@ -35,7 +35,7 @@ __published:	// IDE-managed Components
 	TGLLightSource *GLLightSource;
 	TGLDummyCube *DCTarget;
 	TGLCamera *GLCamera;
-	TGLTilePlane *GLS.TilePlane;
+	TGLTilePlane *GLTilePlane;
 	TGLDirectOpenGL *GLDirectOpenGL;
 	TGLXYZGrid *GLXYZGrid;
 	TGLDummyCube *DCSelection;

+ 56 - 62
Demos/CPP/movements/pong/Unit1.cpp

@@ -1,10 +1,10 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 #include <vcl.h>
 #pragma hdrstop
 
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
@@ -18,117 +18,111 @@
 #pragma link "GLS.SceneViewer"
 #pragma resource "*.dfm"
 TForm1 *Form1;
-//---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
+
+// ---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
 }
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
-void __fastcall TForm1::ResetGame()
-{
+void __fastcall TForm1::ResetGame() {
 	float angle;
 	// places the ball in the mat center, resets score and ball speed
-	angle = DegToRad((float)(45+Random(90)));
+	angle = DegToRad((float)(45 + Random(90)));
 	MakeVector(ballVector, 4*cos(angle), 4*sin(angle), 0);
 	score = 0;
 	gameOver = false;
 	Ball->Position->AsVector = NullHmgPoint;
 }
 
-void __fastcall TForm1::FormCreate(TObject *Sender)
-{
+void __fastcall TForm1::FormCreate(TObject *Sender) {
 	Randomize();
 	GLSceneViewer1->Cursor = crNone;
 	ResetGame();
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
-          int X, int Y)
-{
-const float
-	cPadMinMax = 6.25;
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender,
+	TShiftState Shift, int X, int Y) {
+	const float cPadMinMax = 6.25;
 	float px;
 
 	// the pad's position is directly calculated from the mouse position
-	px = (X-(GLSceneViewer1->Width/2))*0.035;
-	if (px<-cPadMinMax)
+	px = (X - (GLSceneViewer1->Width / 2)) * 0.035;
+	if (px < -cPadMinMax)
 		px = -cPadMinMax;
-	else
-	if (px>cPadMinMax)
+	else if (px > cPadMinMax)
 		px = cPadMinMax;
 	Pad->Position->X = px;
-//   GLCadencer1.Reset;
-   // update the whole stuff now!
-   GLCadencer1->Progress();
+	// GLCadencer1.Reset;
+	// update the whole stuff now!
+	GLCadencer1->Progress();
 
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
-		  const double newTime)
-{
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::GLCadencer1Progress(TObject *Sender,
+	const double deltaTime, const double newTime) {
 	TGLVector newBallPos;
 	// gameOver is True as soon as the ball is behind the pad, but we don't end
 	// the game immediately so the user can realize he has lost
-	if ((!gameOver) && (deltaTime>0))
-	{
+	if ((!gameOver) && (deltaTime > 0)) {
 		// calc expected new ball pos (if no bump occurs)
 		// ( note : VectorCombine(v1, v2, f1, f2)=v1*f1+v2*f2 )
-		newBallPos = VectorCombine(Ball->Position->AsVector, ballVector, 1, deltaTime);
+		newBallPos = VectorCombine(Ball->Position->AsVector, ballVector, 1,
+			deltaTime);
 		// check collision with edges
-		if (newBallPos.X<-7.05)
+		if (newBallPos.X < -7.05)
 			ballVector.X = -ballVector.X;
-		else
-		if (newBallPos.X>7.05)
+		else if (newBallPos.X > 7.05)
 			ballVector.X = -ballVector.X;
-		else
-		if (newBallPos.Y>4.55)
+		else if (newBallPos.Y > 4.55)
 			ballVector.Y = -ballVector.Y;
 		// check collision with pad
-		if (newBallPos.Y<-4)
-		{
-			if ((newBallPos.X>Pad->Position->X-1.25) && (newBallPos.X<Pad->Position->X+1.25))
-			{
+		if (newBallPos.Y < -4) {
+			if ((newBallPos.X > Pad->Position->X - 1.25) && (newBallPos.X <
+				Pad->Position->X + 1.25)) {
 				// when ball bumps the pad, it is accelerated and the vector
 				// is slightly randomized
 				ballVector.Y = -ballVector.Y;
-				ballVector.X = ballVector.X+(Random(100)-50)/50;
-				ballVector.Y = ballVector.Y+0.1;
+				ballVector.X = ballVector.X + (Random(100) - 50) / 50;
+				ballVector.Y = ballVector.Y + 0.1;
 				// ...and of course a point is scored !
 				score++;
 				SpaceText1->Text = Format("%.3d", ARRAYOFCONST((score)));
 			}
-			else
-			{
-			  // ball missed !
-			  gameOver = true;
-			  exit;
+			else {
+				// ball missed !
+				gameOver = true;
+				exit;
 			}
 		}
 	}
 	// move the ball
-	Ball->Position->AsVector = VectorCombine(Ball->Position->AsVector, ballVector, 1, deltaTime);
+	Ball->Position->AsVector = VectorCombine(Ball->Position->AsVector,
+		ballVector, 1, deltaTime);
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::Timer1Timer(TObject *Sender)
-{
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::Timer1Timer(TObject *Sender) {
 	// update performance monitor
-  //%s : Name,
-	Caption = Format("%.2f FPS", ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
+	// %s : Name,
+	Caption = Format("%.2f FPS",
+		ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
 	GLSceneViewer1->ResetPerformanceMonitor();
 	// display score window when game is over and the ball is well out of the board
-	if (gameOver && (Ball->Position->Y<-6))
-	{
+	if (gameOver && (Ball->Position->Y < -6)) {
 		// stop the timer to avoid stacking up Timer events
 		// while the user makes up his mind...
 		Timer1->Enabled = false;
-		if (MessageDlg("Score : "+IntToStr(score)+ " Play again ?",
-			   mtInformation, TMsgDlgButtons() << mbYes, 0)==mrYes) //esc - mbNo ?
+		if (MessageDlg("Score : " + IntToStr(score) + " Play again ?",
+			mtInformation, TMsgDlgButtons() << mbYes, 0) == mrYes)
+			// esc - mbNo ?
 		{
-		  ResetGame();
-		  Timer1->Enabled = true;
+			ResetGame();
+			Timer1->Enabled = true;
 		}
-		else Close();
+		else
+			Close();
 	}
 }
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------

+ 1 - 0
Demos/CPP/movements/pong/Unit1.dfm

@@ -23,6 +23,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clBlack
     Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
     FieldOfView = 133.897399902343800000
+    PenAsTouch = False
     Align = alClient
     OnMouseMove = GLSceneViewer1MouseMove
     TabOrder = 0

+ 2 - 2
Demos/CPP/movements/pong/Unit1.h

@@ -27,7 +27,7 @@ class TForm1 : public TForm
 __published:	// IDE-managed Components
 	TGLSceneViewer *GLSceneViewer1;
 	TGLScene *GLScene1;
-	TGLShadowVolume *GLS.ShadowVolume;
+	TGLShadowVolume *GLShadowVolume;
 	TGLPlane *Plane1;
 	TGLCube *Cube1;
 	TGLCube *Cube2;
@@ -43,7 +43,7 @@ __published:	// IDE-managed Components
 	TGLCadencer *GLCadencer1;
 	void __fastcall FormCreate(TObject *Sender);
 	void __fastcall GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift, int X,
-          int Y);
+		  int Y);
 	void __fastcall GLCadencer1Progress(TObject *Sender, const double deltaTime, const double newTime);
 	void __fastcall Timer1Timer(TObject *Sender);
 

+ 2 - 2
Demos/CPP/physics/NewtonDensity/Unit1.cpp

@@ -29,9 +29,9 @@ TForm1 *Form1;
 int __cdecl BuoyancyPlaneCallback(const int collisionID, void *context,
   const PNGDFloat globalSpaceMatrix, PNGDFloat globalSpacePlane)
 {
-  Gls::Vectorgeometry::TGLMatrix *BodyMatrix;
+  TGLMatrix *BodyMatrix;
   TGLVector PlaneEquation;
-  Gls::Vectorgeometry::PGLVector pv;
+  PGLVector pv;
   TForm1 *MyForm;
 
   // Get the matrix of the actual body

+ 0 - 1
Demos/CPP/physics/OdeConveyor/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnShow = FormShow
   PixelsPerInch = 96

+ 0 - 1
Demos/CPP/rendering/SkyBox/Unit1.dfm

@@ -11,7 +11,6 @@ object Form1: TForm1
   Font.Name = 'Tahoma'
   Font.Style = []
   OldCreateOrder = False
-  WindowState = wsMaximized
   OnCreate = FormCreate
   PixelsPerInch = 96
   TextHeight = 13

+ 3 - 3
Demos/CPP/rendering/multiproxy/Unit1.cpp

@@ -30,7 +30,7 @@ void __fastcall TForm1::FormCreate(TObject *Sender)
    RBUseLODsClick(Sender); //MPSphere
    // replicate the multiproxy via a TGLParticles object
    for (i = 0; i < 35; i++) {
-	  GLS.Particles->CreateParticle()->TagFloat = DegToRad((float)i*10);
+	  GLParticles->CreateParticle()->TagFloat = DegToRad((float)i*10);
    }
 }
 //---------------------------------------------------------------------------
@@ -91,8 +91,8 @@ void __fastcall TForm1::MPSphereProgress(TObject *Sender, const double deltaTime
 		  const double newTime)
 {
    // this is invoked for each of our MultiProxys, it makes them loop an ellipse
-	  GLS.Particles->Position->X = Sin(newTime+GLS.Particles->TagFloat)*80-60;
-	  GLS.Particles->Position->Z = Cos(newTime+GLS.Particles->TagFloat)*7;
+	  GLParticles->Position->X = Sin(newTime+GLParticles->TagFloat)*80-60;
+	  GLParticles->Position->Z = Cos(newTime+GLParticles->TagFloat)*7;
 }
 //---------------------------------------------------------------------------
 

+ 1 - 0
Demos/CPP/rendering/multiproxy/Unit1.dfm

@@ -22,6 +22,7 @@ object Form1: TForm1
     Camera = GLCamera
     Buffer.BackgroundColor = clGray
     FieldOfView = 111.908126831054700000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end

+ 1 - 1
Demos/CPP/rendering/multiproxy/Unit1.h

@@ -33,7 +33,7 @@ __published:	// IDE-managed Components
 	TRadioButton *RBLowRes;
 	TGLScene *GLScene;
 	TGLDummyCube *DCTarget;
-	TGLParticles *GLS.Particles;
+	TGLParticles *GLParticles;
 	TGLMultiProxy *MPSphere;
 	TGLDummyCube *DCReferences;
 	TGLSphere *SPHighRes;

+ 0 - 8
Demos/CPP/sound/3Dsound/Unit1.dfm

@@ -29,8 +29,6 @@ object Form1: TForm1
     OnMouseDown = GLSceneViewerMouseDown
     OnMouseMove = GLSceneViewerMouseMove
     TabOrder = 0
-    ExplicitWidth = 514
-    ExplicitHeight = 270
   end
   object TrackBar: TTrackBar
     Left = 0
@@ -46,8 +44,6 @@ object Form1: TForm1
     ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBarChange
-    ExplicitTop = 343
-    ExplicitWidth = 514
   end
   object TrackBar1: TTrackBar
     Left = 0
@@ -63,7 +59,6 @@ object Form1: TForm1
     ThumbLength = 10
     TickMarks = tmBoth
     OnChange = TrackBar1Change
-    ExplicitWidth = 514
   end
   object Panel1: TPanel
     Left = 0
@@ -73,7 +68,6 @@ object Form1: TForm1
     Align = alTop
     BevelOuter = bvNone
     TabOrder = 3
-    ExplicitWidth = 514
     DesignSize = (
       605
       41)
@@ -120,7 +114,6 @@ object Form1: TForm1
       Caption = 'Chimes (WAV)'
       TabOrder = 2
       OnClick = Button1Click
-      ExplicitLeft = 423
     end
     object btnHowl: TButton
       Left = 425
@@ -131,7 +124,6 @@ object Form1: TForm1
       Caption = 'Howl (MP3)'
       TabOrder = 3
       OnClick = btnHowlClick
-      ExplicitLeft = 334
     end
     object RBOpenAL: TRadioButton
       Left = 224

+ 1 - 1
Demos/CPP/sound/3Dsound/Unit1.h

@@ -25,7 +25,7 @@
 #include "GLS.Utils.hpp"
 #include "GLS.FileWAV.hpp"
 #include "GLS.FileMP3.hpp"
-#include "Import.BASS.hpp"
+#include "Imports.BASS.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1 : public TForm

+ 1 - 1
Demos/CPP/specialsFX/Atmosphere/Unit1.dfm

@@ -23,6 +23,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     FieldOfView = 166.785736083984400000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
@@ -179,7 +180,6 @@ object Form1: TForm1
       end
       object GLDummyCube1: TGLDummyCube
         ObjectsSorting = osNone
-        Direction.Coordinates = {00000000000000800000803F00000000}
         Position.Coordinates = {0000204100000040000040400000803F}
         CubeSize = 1.000000000000000000
         object GLSphere1: TGLSphere

+ 0 - 1
Demos/CPP/specialsFX/PFXGallery/Unit1.cpp

@@ -64,7 +64,6 @@ void __fastcall TForm1::chkMouseLookClick(TObject *Sender)
 
 void __fastcall TForm1::Timer1Timer(TObject *Sender)
 {
-	Caption = "PFXGallery FPS - " + IntToStr(Round(GLSceneViewer1->FramesPerSecond()));
 	GLSceneViewer1->ResetPerformanceMonitor();
 }
 //---------------------------------------------------------------------------

+ 1 - 1
Demos/CPP/specialsFX/PFXGallery/Unit1.dfm

@@ -27,6 +27,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clBlack
     Buffer.AmbientColor.Color = {0000803F0000803F0000803F0000803F}
     FieldOfView = 143.454727172851600000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
@@ -2303,7 +2304,6 @@ object Form1: TForm1
     Left = 36
     Top = 44
     object WorldRoot: TGLDummyCube
-      Direction.Coordinates = {00000000000000800000803F00000000}
       Scale.Coordinates = {0000C0400000C0400000C04000000000}
       CubeSize = 1.000000000000000000
       object GLLightSource1: TGLLightSource

+ 2 - 2
Demos/CPP/specialsFX/ParticleMasking/Unit1.cpp

@@ -73,8 +73,8 @@ void __fastcall TForm1::RefreshMask()
 
   XImage->Canvas->FillRect(Rect);
 
-  XImage->Canvas->TextOut(Round((XImage->Width - XImage->Canvas->TextWidth(Letter)) / 2),
-	 Round((XImage->Height - XImage->Canvas->TextHeight(Letter)) / 2), Letter);
+  XImage->Canvas->TextOut(Int((XImage->Width - XImage->Canvas->TextWidth(Letter)) / 2),
+	 Int((XImage->Height - XImage->Canvas->TextHeight(Letter)) / 2), Letter);
 
   Mat = MatLib->LibMaterialByName("XMask");
  ((TGLPersistentImage *)Mat->Material->Texture->Image)->Picture->Bitmap->Height = XImage->Height;

+ 1 - 1
Demos/CPP/specialsFX/ParticleMasking/Unit1.dfm

@@ -11,7 +11,6 @@ object Form1: TForm1
   Font.Name = 'Tahoma'
   Font.Style = []
   OldCreateOrder = False
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
@@ -115,6 +114,7 @@ object Form1: TForm1
     Camera = Camera
     Buffer.BackgroundColor = clBackground
     FieldOfView = 175.409606933593800000
+    PenAsTouch = False
     Align = alClient
     OnMouseMove = SceneViewerMouseMove
     TabOrder = 1

+ 1 - 1
Demos/CPP/specialsFX/ShadowmappingFBO/Unit1.dfm

@@ -25,6 +25,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clGray
     Buffer.AntiAliasing = aa4xHQ
     FieldOfView = 159.054977416992200000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end
@@ -95,7 +96,6 @@ object Form1: TForm1
         Material.MaterialLibrary = GLMaterialLibrary1
         Material.LibMaterialName = 'mask'
         Position.Coordinates = {0000403F000000006666663F0000803F}
-        Up.Coordinates = {000000000000803F0000008000000000}
         BottomRadius = 0.100000001490116100
         Height = 2.000000000000000000
         Slices = 20

+ 1 - 2
Demos/CPP/specialsFX/ShadowmappingFBO/Unit1.h

@@ -20,10 +20,9 @@
 #include "GLS.Objects.hpp"
 #include "GLS.Scene.hpp"
 #include "GLS.SimpleNavigation.hpp"
-#include "GLSLShader.hpp"
+#include "GLSL.Shader.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.SceneViewer.hpp"
-#include "OpenGLx.hpp"
 #include "Formats.DDSImage.hpp"
 #include <Vcl.ExtCtrls.hpp>
 //---------------------------------------------------------------------------

+ 3 - 2
Demos/CPP/specialsFX/posteffect/uMainForm.cpp

@@ -18,6 +18,7 @@
 #pragma link "GLS.SimpleNavigation"
 #pragma link "GLS.VectorFileObjects"
 #pragma link "GLS.SceneViewer"
+#pragma link "GLSL.PostEffects"
 #pragma resource "*.dfm"
 TMainForm *MainForm;
 //---------------------------------------------------------------------------
@@ -70,8 +71,8 @@ void __fastcall TMainForm::GLPostEffect1CustomEffect(TObject *Sender, TGLRenderC
 
   for (i = 0; i <= 7; i++) {
 	Buffer[i]->r = (int)(Buffer[i + 5]->r * 2);
-	Buffer[i]->g = Round(Buffer[i]->g * 1.5);
-	Buffer[i]->b = Round(Buffer[i + 5]->b * 1.5);
+	Buffer[i]->g = Int(Buffer[i]->g * 1.5);
+	Buffer[i]->b = Int(Buffer[i + 5]->b * 1.5);
   }
 }
 //---------------------------------------------------------------------------

+ 1 - 0
Demos/CPP/specialsFX/posteffect/uMainForm.dfm

@@ -67,6 +67,7 @@ object MainForm: TMainForm
     Camera = GLCamera1
     Buffer.BackgroundColor = 16776176
     FieldOfView = 143.915725708007800000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 1
   end

+ 1 - 1
Demos/CPP/specialsFX/posteffect/uMainForm.h

@@ -13,12 +13,12 @@
 #include "GLS.Coordinates.hpp"
 
 #include "GLS.Material.hpp"
-#include "GLPostEffects.hpp"
 #include "GLS.Scene.hpp"
 #include "GLS.SimpleNavigation.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.SceneViewer.hpp"
 #include <Vcl.ExtCtrls.hpp>
+#include "GLSL.PostEffects.hpp"
 //---------------------------------------------------------------------------
 class TMainForm : public TForm
 {

+ 1 - 1
Demos/CPP/specialsFX/shadows/Unit1.cpp

@@ -100,7 +100,7 @@ void __fastcall TForm1::CastBtnClick(TObject *Sender)
  double RefTime = GLCadencer1->GetCurrenttime();
  Shadows1->CastShadow();
  Viewer->Refresh();
- TimeLbl->Caption = IntToStr(Round((GLCadencer1->GetCurrenttime()-(int)RefTime)*100));
+/// TimeLbl->Caption = IntToStr(Int((GLCadencer1->GetCurrenttime()-(int)RefTime)*100));
 
 }
 //---------------------------------------------------------------------------

+ 2 - 0
Demos/CPP/specialsFX/shadows/Unit1.dfm

@@ -63,6 +63,7 @@ object Form1: TForm1
       Camera = GLCamera2
       Buffer.FaceCulling = False
       FieldOfView = 137.326278686523400000
+      PenAsTouch = False
       OnMouseDown = CasterMouseDown
       OnMouseMove = CasterMouseMove
       OnMouseUp = CasterMouseUp
@@ -82,6 +83,7 @@ object Form1: TForm1
       Height = 256
       Camera = GLCamera1
       FieldOfView = 137.326278686523400000
+      PenAsTouch = False
       OnMouseDown = ViewerMouseDown
       OnMouseMove = ViewerMouseMove
       OnMouseUp = ViewerMouseUp

+ 24 - 24
Demos/CPP/specialsFX/shadowvolumes/Unit1.cpp

@@ -39,12 +39,12 @@ __fastcall TForm1::TForm1(TComponent * Owner):TForm(Owner)
 		  sphere = (TGLSphere *) DCSpheres->AddNewChild(__classid(TGLSphere));
 		  sphere->Position->SetPoint(x * cSpacing, y * cSpacing, z * cSpacing);
 		  sphere->Radius = cRadius;
-		  GLS.ShadowVolume->Occluders->AddCaster(sphere, 0, scmParentVisible);
+		  GLShadowVolume->Occluders->AddCaster(sphere, 0, scmParentVisible);
         }
-  DCSpheres->MoveTo(GLS.ShadowVolume);
+  DCSpheres->MoveTo(GLShadowVolume);
   GLFreeForm->LoadFromFile("trinityrage.smd");
   GLFreeForm->BuildSilhouetteConnectivityData();
-  GLS.ShadowVolume->Occluders->AddCaster(GLFreeForm,0,scmRecursivelyVisible);
+  GLShadowVolume->Occluders->AddCaster(GLFreeForm,0,scmRecursivelyVisible);
 }
 
 //---------------------------------------------------------------------------
@@ -62,9 +62,9 @@ void __fastcall TForm1::GLCadencer1Progress(TObject * Sender,
 void __fastcall TForm1::CBShowVolumesClick(TObject * Sender)
 {
   if(CBShowVolumes->Checked)
-    GLS.ShadowVolume->Options = GLS.ShadowVolume->Options << svoShowVolumes;
+	GLShadowVolume->Options = GLShadowVolume->Options << svoShowVolumes;
   else
-    GLS.ShadowVolume->Options = GLS.ShadowVolume->Options >> svoShowVolumes;
+	GLShadowVolume->Options = GLShadowVolume->Options >> svoShowVolumes;
 }
 
 //---------------------------------------------------------------------------
@@ -72,23 +72,23 @@ void __fastcall TForm1::RBZFailClick(TObject * Sender)
 {
 // this event handles all the radio buttons
   if(RBDarkening->Checked)
-    GLS.ShadowVolume->Mode = svmDarkening;
+	GLShadowVolume->Mode = svmDarkening;
   else if(RBNoShadows->Checked)
-    GLS.ShadowVolume->Mode = svmOff;
+	GLShadowVolume->Mode = svmOff;
   else
   {
-    GLS.ShadowVolume->Mode = svmAccurate;
-    if(RBZFail->Checked)
-      GLS.ShadowVolume->Capping = svcAlways;
-    else
-      GLS.ShadowVolume->Capping = svcNever;
+	GLShadowVolume->Mode = svmAccurate;
+	if(RBZFail->Checked)
+	  GLShadowVolume->Capping = svcAlways;
+	else
+	  GLShadowVolume->Capping = svcNever;
   }
 }
 
 //---------------------------------------------------------------------------
 void __fastcall TForm1::GLSceneViewerMouseDown(TObject * Sender,
-                                               TMouseButton Button,
-                                               TShiftState Shift, int X, int Y)
+											   TMouseButton Button,
+											   TShiftState Shift, int X, int Y)
 {
   mx = X;
   my = Y;
@@ -96,7 +96,7 @@ void __fastcall TForm1::GLSceneViewerMouseDown(TObject * Sender,
 
 //---------------------------------------------------------------------------
 void __fastcall TForm1::GLSceneViewerMouseMove(TObject * Sender,
-                                               TShiftState Shift, int X, int Y)
+											   TShiftState Shift, int X, int Y)
 {
   if(Shift.Contains(ssLeft))
   {
@@ -150,7 +150,7 @@ void __fastcall TForm1::ScrollBar_ShadowResolutionChange(TObject * Sender)
 {
   GLSphere_Shadow->Stacks = ScrollBar_ShadowResolution->Position;
   GLSphere_Shadow->Slices = ScrollBar_ShadowResolution->Position;
-  GLS.ShadowVolume->FlushSilhouetteCache();
+  GLShadowVolume->FlushSilhouetteCache();
 }
 
 //---------------------------------------------------------------------------
@@ -163,7 +163,7 @@ void __fastcall TForm1::Button_GenerateSilhouetteClick(TObject * Sender)
 
   silhouetteParameters.CappingRequired = false;
   SetVector(silhouetteParameters.SeenFrom,
-            GLLines1->AbsoluteToLocal(GLCamera->AbsolutePosition));
+			GLLines1->AbsoluteToLocal(GLCamera->AbsolutePosition));
 
   silhouetteParameters.Style = ssOmni;
 
@@ -172,13 +172,13 @@ void __fastcall TForm1::Button_GenerateSilhouetteClick(TObject * Sender)
   GLLines1->Nodes->Clear();
 
   for(i = 0; i <= Silhouette->Indices->Count - 1; i++)
-    GLLines1->Nodes->AddNode(GLLines1->
-                             AbsoluteToLocal(Target->
-                                             LocalToAbsolute(Silhouette->
-                                                             Vertices->
-                                                             Items[Silhouette->
-                                                                   Indices->
-                                                                   Items[i]])));
+	GLLines1->Nodes->AddNode(GLLines1->
+							 AbsoluteToLocal(Target->
+											 LocalToAbsolute(Silhouette->
+															 Vertices->
+															 Items[Silhouette->
+																   Indices->
+																   Items[i]])));
 
   delete Silhouette;
 }

+ 1 - 1
Demos/CPP/specialsFX/shadowvolumes/Unit1.dfm

@@ -29,6 +29,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clBlack
     Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
     FieldOfView = 154.447631835937500000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewerMouseDown
     OnMouseMove = GLSceneViewerMouseMove
@@ -367,7 +368,6 @@ object Form1: TForm1
         CubeSize = 1.000000000000000000
       end
       object GLCylinder1: TGLCylinder
-        Direction.Coordinates = {00000000000000800000803F00000000}
         Position.Coordinates = {00004040000080C0000000000000803F}
         Up.Coordinates = {0000803F000000000000000000000000}
         BottomRadius = 0.600000023841857900

+ 1 - 1
Demos/CPP/specialsFX/shadowvolumes/Unit1.h

@@ -32,7 +32,7 @@ __published:                   // IDE-managed Components
   TGLCamera *GLCamera;
   TGLDummyCube *DCCamera;
   TGLLightSource *GLLightSource1;
-  TGLShadowVolume *GLS.ShadowVolume;
+  TGLShadowVolume *GLShadowVolume;
   TGLSphere *GLSphere1;
   TGLDummyCube *DCLight1Turn;
   TGLDummyCube *DCLight1Pitch;

+ 2 - 1
Demos/CPP/specialsFX/spiral/Unit1.cpp

@@ -17,7 +17,8 @@
 #pragma link "GLS.ParticleFX"
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Coordinates"
-#pragma link "GLFullScreenViewer"
+#pragma link "GLS.FullScreenViewer"
+#pragma link "GLS.FullScreenViewer"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 //---------------------------------------------------------------------------

+ 1 - 0
Demos/CPP/specialsFX/spiral/Unit1.dfm

@@ -23,6 +23,7 @@ object Form1: TForm1
     Camera = GLCamera
     Buffer.BackgroundColor = clBlack
     FieldOfView = 146.474884033203100000
+    PenAsTouch = False
     Align = alClient
     OnDblClick = GLSceneViewerDblClick
     OnMouseMove = GLSceneViewerMouseMove

+ 8 - 8
Demos/CPP/specialsFX/spiral/Unit1.h

@@ -10,19 +10,19 @@
 #include <Buttons.hpp>
 #include <ExtCtrls.hpp>
 
-#include <GLS.CrossPlatform.hpp>  // Pascal unit
-#include <GLS.VectorGeometry.hpp>   // Pascal unit
-#include <GLS.Behaviours.hpp>     // Pascal unit
-#include <GLS.SceneViewer.hpp>    // Pascal unit
-#include <GLS.Objects.hpp>        // Pascal unit
-#include <GLS.Scene.hpp>          // Pascal unit
-#include <GLS.Cadencer.hpp>       // Pascal unit
+#include <GLS.VectorGeometry.hpp>
+#include <GLS.Behaviours.hpp>
+#include <GLS.SceneViewer.hpp>
+#include <GLS.Objects.hpp>
+#include <GLS.Scene.hpp>
+#include <GLS.Cadencer.hpp>
 #include <GLS.ParticleFX.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Coordinates.hpp"
-#include "GLFullScreenViewer.hpp"
+#include "GLS.FullScreenViewer.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.Keyboard.hpp"
+#include "GLS.FullScreenViewer.hpp"
 
 //---------------------------------------------------------------------------
 class TForm1:public TForm

+ 0 - 1
Demos/CPP/specialsFX/thor/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnCreate = FormCreate
   PixelsPerInch = 96
   TextHeight = 13

+ 2 - 2
Demos/CPP/specialsFX/warping/Unit1.cpp

@@ -5,7 +5,7 @@
 
 #include "Unit1.h"
 #include "math.h"
-#include "GLGraphics.hpp"
+#include "GLS.Graphics.hpp"
 #include "GLS.Texture.hpp"
 #include "jpeg.hpp"
 
@@ -95,7 +95,7 @@ void __fastcall TForm1::MIOpenImageFileClick(TObject *Sender)
 void __fastcall TForm1::MISaveCurrentImageClick(TObject *Sender)
 {
    TGLBitmap32 *bmp32;
-   Graphics::TBitmap *bmp;
+   TBitmap *bmp;
 
    bmp32 = GLSceneViewer->Buffer->CreateSnapShot();
    try

+ 1 - 3
Demos/CPP/specialsFX/warping/Unit1.dfm

@@ -26,12 +26,11 @@ object Form1: TForm1
     Margins.Bottom = 2
     Camera = GLCamera
     FieldOfView = 179.686050415039100000
+    PenAsTouch = False
     Align = alClient
     OnMouseDown = GLSceneViewerMouseDown
     OnMouseMove = GLSceneViewerMouseMove
     TabOrder = 0
-    ExplicitWidth = 425
-    ExplicitHeight = 272
   end
   object MainMenu1: TMainMenu
     Left = 208
@@ -146,7 +145,6 @@ object Form1: TForm1
       Material.Texture.MinFilter = miLinear
       Material.Texture.TextureMode = tmReplace
       Material.Texture.Disabled = False
-      Direction.Coordinates = {00000000000000800000803F00000000}
       XSamplingScale.Max = 16.000000000000000000
       XSamplingScale.Step = 8.000000000000000000
       YSamplingScale.Max = 16.000000000000000000

+ 0 - 1
Demos/CPP/sprites/caterpillar/Unit1.dfm

@@ -11,7 +11,6 @@ object Form1: TForm1
   Font.Name = 'Tahoma'
   Font.Style = []
   OldCreateOrder = False
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnResize = FormResize
   PixelsPerInch = 96

+ 0 - 1
Demos/CPP/sprites/particles/Unit1.dfm

@@ -12,7 +12,6 @@ object Form1: TForm1
   Font.Style = []
   OldCreateOrder = False
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnResize = FormResize
   PixelsPerInch = 96
   TextHeight = 13

+ 771 - 5
Demos/CPP/utilities/ScreenSaver/ScreenSaver.cbproj

@@ -1,7 +1,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
         <ProjectGuid>{30320713-03F1-4D97-BC96-001619C8A139}</ProjectGuid>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <AppType>Application</AppType>
         <MainSource>ScreenSaver.cpp</MainSource>
@@ -78,12 +78,15 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
         <PackageImports>IndyIPClient;GLScene_Sounds_RT;frx17;fs17;GLScene_Physics_RT;GLScene_Cg_RT;bindcompfmx;DBXSqliteDriver;vcldbx;GLScene_Physics_RT;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;TeeDB;bindcomp;inetdb;inetdbbde;vclib;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;Tee;GLScene_RT;DataSnapProviderClient;xmlrtl;DBXSybaseASEDriver;ibxpress;DbxCommonDriver;vclimg;GLScene_Sounds_RT;IndyProtocols;DBXMySQLDriver;dbxcds;MetropolisUILiveTile;bindengine;vclactnband;vcldb;soaprtl;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;DBXDb2Driver;vcltouch;bcbsmp;websnap;DBXOracleDriver;CustomIPTransport;vclribbon;VclSmp;dsnap;DBXInformixDriver;IndyIPServer;fmxase;vcl;DataSnapConnectors;IndyCore;GLScene_Sounds_RT;DBXMSSQLDriver;CodeSiteExpressPkg;CloudService;DBXFirebirdDriver;dsnapcon;frxDB17;inet;fsDB17;fmxobj;IndyIPCommon;FmxTeeUI;vclx;frxe17;inetdbxpress;webdsnap;DBXSybaseASADriver;fmxdae;bdertl;dbexpress;DataSnapIndy10ServerTransport;adortl;bcbie;$(PackageImports)</PackageImports>
-        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</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>
         <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
         <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_Locale>1033</VerInfo_Locale>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
@@ -92,6 +95,9 @@
         <VerInfo_Locale>1033</VerInfo_Locale>
         <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
         <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
@@ -114,13 +120,14 @@
         <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
-        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDS)\lib\win32\release\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <Defines>_DEBUG;$(Defines)</Defines>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <OutputExt>scr</OutputExt>
         <FinalOutputDir>.</FinalOutputDir>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <Defines>_DEBUG;$(Defines)</Defines>
@@ -150,8 +157,8 @@
             <DependentOn>Unit2.h</DependentOn>
             <BuildOrder>2</BuildOrder>
         </CppCompile>
-        <FormResources Include="Unit1.dfm"/>
         <FormResources Include="Unit2.dfm"/>
+        <FormResources Include="Unit1.dfm"/>
         <BuildConfiguration Include="Release">
             <Key>Cfg_2</Key>
             <CfgParent>Base</CfgParent>
@@ -214,7 +221,765 @@
                     <ProjectProperties Name="IndexFiles">False</ProjectProperties>
                 </ProjectProperties>
             </CPlusPlusBuilder.Personality>
-            <Deployment/>
+            <Deployment Version="3">
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32c260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx32\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgstl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <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="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32260.dll" Class="DependencyModule">
+                    <Platform Name="Win32">
+                        <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="'$(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\cc64260mt.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin64\cc64260.dll" Class="DependencyModule">
+                    <Platform Name="Win64">
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true'" LocalName="$(BDS)\Redist\osx64\libcgcrtl.dylib" Class="DependencyModule">
+                    <Platform Name="OSX64">
+                        <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="AndroidClassesDexFile">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidGDBServer">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStyles">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Colors">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_DefaultAppIcon">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon36">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon72">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon24">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon48">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon96">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage470">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage960">
+                    <Platform Name="Android">
+                        <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>
+                </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="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="iOSSimulator">
+                        <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="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="iOSSimulator">
+                        <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="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <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="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1024x768">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1536x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668x2388">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048x1536">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048x2732">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2224">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2388x1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2732x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch768x1024">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1125">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1136x640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242x2688">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1334">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1792">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2208">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2436">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2688x1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch320">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640x1136">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch750">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch828">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceResourceRules">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <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>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <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>
+                </DeployClass>
+                <DeployClass Required="true" Name="ProjectOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <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="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <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>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+            </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win64">False</Platform>
@@ -224,4 +989,5 @@
     </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>

+ 8 - 2
Demos/CPP/utilities/fontgen/fontgen.cbproj

@@ -6,7 +6,7 @@
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
@@ -96,12 +96,17 @@
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
@@ -115,12 +120,13 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
-        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDS)\lib\win32\release\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <BCC_UserSuppliedOptions> -tWM -6 -ff -Vx -r- -k -Ve -k</BCC_UserSuppliedOptions>
         <LinkPackageStatics>rtl.lib;vcl.lib;fmx.lib;xmlrtl.lib;vclimg.lib;GLScene_RT.lib</LinkPackageStatics>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>

+ 8 - 2
Demos/CPP/utilities/recorder/Recorder.cbproj

@@ -6,7 +6,7 @@
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
@@ -97,12 +97,17 @@
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
+        <UWP_CppLogo44>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_44.png</UWP_CppLogo44>
+        <UWP_CppLogo150>$(BDS)\bin\Artwork\Windows\UWP\cppreg_UwpDefault_150.png</UWP_CppLogo150>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
@@ -116,13 +121,14 @@
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
-        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(BDS)\lib\win32\release\;$(ILINK_LibraryPath)</ILINK_LibraryPath>
+        <ILINK_LibraryPath>$(BDSCOMMONDIR)\Dcp;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <BCC_UserSuppliedOptions> -tWM -6 -ff -Vx -r- -k -Ve -k</BCC_UserSuppliedOptions>
         <LinkPackageImports>rtl.bpi;vcl.bpi</LinkPackageImports>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <LinkPackageStatics>GLScene_RT.lib;fmx.lib;xmlrtl.lib;vclimg.lib</LinkPackageStatics>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>

+ 1 - 0
Demos/CPP/utilities/recorder/Unit1.cpp

@@ -18,6 +18,7 @@
 #pragma link "GLS.Coordinates"
 
 
+#pragma link "GLS.AVIRecorder"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 bool UserAbort;

+ 1 - 0
Demos/CPP/utilities/recorder/Unit1.dfm

@@ -26,6 +26,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBtnShadow
     FieldOfView = 125.340530395507800000
+    PenAsTouch = False
     Align = alClient
     TabOrder = 0
   end

+ 8 - 6
Demos/CPP/utilities/recorder/Unit1.h

@@ -1,6 +1,12 @@
 //---------------------------------------------------------------------------
-#include "vfw_BCB.h"
-#include "GLAVIRecorder.hpp"
+#include <tchar.h>
+///#include "vfw_BCB.h"
+#include <System.Classes.hpp>
+#include <Vcl.ComCtrls.hpp>
+#include <Vcl.Controls.hpp>
+#include <Vcl.StdCtrls.hpp>
+
+#include "GLS.AVIRecorder.hpp"
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Coordinates.hpp"
@@ -9,10 +15,6 @@
 #include "GLS.Scene.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.Keyboard.hpp"
-#include <System.Classes.hpp>
-#include <Vcl.ComCtrls.hpp>
-#include <Vcl.Controls.hpp>
-#include <Vcl.StdCtrls.hpp>
 
 #ifndef Unit1H
 #define Unit1H

+ 1 - 2
Demos/Delphi/movements/SmoothNavigatorFm.dfm

@@ -1,6 +1,7 @@
 object FormSmoothNavigator: TFormSmoothNavigator
   Left = 318
   Top = 150
+  ActiveControl = GLSceneViewer1
   Caption = 'Smooth Navigator'
   ClientHeight = 420
   ClientWidth = 620
@@ -39,8 +40,6 @@ object FormSmoothNavigator: TFormSmoothNavigator
     Align = alBottom
     BevelOuter = bvNone
     TabOrder = 1
-    ExplicitTop = 463
-    ExplicitWidth = 642
     object MouseLookCheckBox: TCheckBox
       Left = 8
       Top = 6

+ 2 - 2
Demos/Delphi/movements/SmoothNavigatorFm.pas

@@ -65,7 +65,7 @@ type
   private
     UI:  TGLSmoothUserInterface;
     Navigator: TGLSmoothNavigator;
-    //  RealPos: TPoint;
+    RealPos: TPoint;
     ShiftState: TShiftState;
     xx, yy: Integer;
     NewXX, NewYY: Integer;
@@ -162,7 +162,7 @@ begin
     GLCamera1.PointTo(GLArrowLine1, YHmgVector);
 
     UI.MouseLookActive := True;
-//    GetCursorPos(RealPos);
+    GetCursorPos(RealPos);
 //    UI.OriginalMousePos.SetPoint2D(RealPos.X, RealPos.Y);
 //    ShowCursor(False);
   end

+ 1 - 1
Packages/GLScene_Cg_RT.dproj

@@ -8,7 +8,7 @@
         <AppType>Package</AppType>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>19.0</ProjectVersion>
-        <Platform Condition="'$(Platform)'==''">Win64</Platform>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>

+ 1 - 1
Packages/GLScene_Physics_RT.dproj

@@ -8,7 +8,7 @@
         <AppType>Package</AppType>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>19.0</ProjectVersion>
-        <Platform Condition="'$(Platform)'==''">Win64</Platform>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>

+ 1 - 1
Packages/GLScene_Sounds_RT.dproj

@@ -8,7 +8,7 @@
         <AppType>Package</AppType>
         <FrameworkType>VCL</FrameworkType>
         <ProjectVersion>19.0</ProjectVersion>
-        <Platform Condition="'$(Platform)'==''">Win64</Platform>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
         <Base>true</Base>

+ 11 - 12
Source/GLS.Color.pas

@@ -115,7 +115,7 @@ function ConvertRGBColor(const aColor: array of Byte): TColorVector;
 
 // color definitions
 const
-  // Some extra colors, not declared in Graphics.pas
+  // Some extra colors, not declared in Vcl.Graphics.pas
   clForeground = TColor(-1);
   clButton = TColor(-2);
   clLight = TColor(-3);
@@ -188,8 +188,8 @@ const
   clMask = clWhite;
   clDontMask = clBlack;
 
-  // Window's colors (must be filled at program
-  // startup, since they depend on the desktop scheme)
+  // Window's colors (must be filled at program startup,
+  // since they depend on the desktop scheme)
 const
 {$J+ - allow change of the following typed constants}
   clrScrollBar: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
@@ -219,8 +219,7 @@ const
   clrInfoBk: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
 
 {$J- - disable change of other typed constants}
-  // 'static' color definitions
-  // sort of grays
+  // 'static' color definitions sort of grays
   clrTransparent: TColorVector = (X: 0; Y: 0; Z: 0; W: 0);
   clrBlack: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
   clrGray05: TColorVector = (X: 0.05; Y: 0.05; Z: 0.05; W: 1);
@@ -250,7 +249,10 @@ const
   clrLightGray: TColorVector = (X: 0.658824; Y: 0.658824; Z: 0.658824; W: 1);
 
   // colors en masse
+  clrAqua: TColorVector = (X: 0; Y: 1; Z: 1; W: 1);
   clrAquamarine: TColorVector = (X: 0.439216; Y: 0.858824; Z: 0.576471; W: 1);
+  clrBakersChoc: TColorVector = (X: 0.36; Y: 0.20; Z: 0.09; W: 1);
+  clrBlue: TColorVector = (X: 0; Y: 0; Z: 1; W: 1);
   clrBlueViolet: TColorVector = (X: 0.62352; Y: 0.372549; Z: 0.623529; W: 1);
   clrBrown: TColorVector = (X: 0.647059; Y: 0.164706; Z: 0.164706; W: 1);
   clrCadetBlue: TColorVector = (X: 0.372549; Y: 0.623529; Z: 0.623529; W: 1);
@@ -265,6 +267,7 @@ const
   clrDarkTurquoise: TColorVector = (X: 0.439216; Y: 0.576471; Z: 0.858824; W: 1);
   clrFirebrick: TColorVector = (X: 0.556863; Y: 0.137255; Z: 0.137255; W: 1);
   clrForestGreen: TColorVector = (X: 0.137255; Y: 0.556863; Z: 0.137255; W: 1);
+  clrFuchsia: TColorVector = (X: 1; Y: 0; Z: 1; W: 1);
   clrGold: TColorVector = (X: 0.8; Y: 0.498039; Z: 0.196078; W: 1);
   clrGoldenrod: TColorVector = (X: 0.858824; Y: 0.858824; Z: 0.439216; W: 1);
   clrGreenYellow: TColorVector = (X: 0.576471; Y: 0.858824; Z: 0.439216; W: 1);
@@ -272,6 +275,7 @@ const
   clrKhaki: TColorVector = (X: 0.623529; Y: 0.623529; Z: 0.372549; W: 1);
   clrLightBlue: TColorVector = (X: 0.74902; Y: 0.847059; Z: 0.847059; W: 1);
   clrLightSteelBlue: TColorVector = (X: 0.560784; Y: 0.560784; Z: 0.737255; W: 1);
+  clrLime: TColorVector = (X: 0; Y: 1; Z: 0; W: 1);
   clrLimeGreen: TColorVector = (X: 0.196078; Y: 0.8; Z: 0.196078; W: 1);
   clrMaroon: TColorVector = (X: 0.556863; Y: 0.137255; Z: 0.419608; W: 1);
   clrMediumAquamarine: TColorVector = (X: 0.196078; Y: 0.8; Z: 0.6; W: 1);
@@ -284,6 +288,7 @@ const
   clrMediumSpringGreen: TColorVector = (X: 0.498039; Y: 1; Z: 0; W: 1);
   clrMediumTurquoise: TColorVector = (X: 0.439216; Y: 0.858824; Z: 0.858824; W: 1);
   clrMediumViolet: TColorVector = (X: 0.858824; Y: 0.439216; Z: 0.576471; W: 1);
+  clrMediumPurple: TColorVector = (X: 0.73; Y: 0.16; Z: 0.96; W: 1);
   clrMidnightBlue: TColorVector = (X: 0.184314; Y: 0.184314; Z: 0.309804; W: 1);
   clrNavy: TColorVector = (X: 0.137255; Y: 0.137255; Z: 0.556863; W: 1);
   clrNavyBlue: TColorVector = (X: 0.137255; Y: 0.137255; Z: 0.556863; W: 1);
@@ -305,7 +310,6 @@ const
   clrTurquoise: TColorVector = (X: 0.678431; Y: 0.917647; Z: 0.917647; W: 1);
   clrViolet: TColorVector = (X: 0.309804; Y: 0.184314; Z: 0.309804; W: 1);
   clrVioletRed: TColorVector = (X: 0.8; Y: 0.196078; Z: 0.6; W: 1);
-  clrWheat: TColorVector = (X: 0.847059; Y: 0.847059; Z: 0.74902; W: 1);
   clrYellowGreen: TColorVector = (X: 0.6; Y: 0.8; Z: 0.196078; W: 1);
   clrSummerSky: TColorVector = (X: 0.22; Y: 0.69; Z: 0.87; W: 1);
   clrRichBlue: TColorVector = (X: 0.35; Y: 0.35; Z: 0.67; W: 1);
@@ -328,7 +332,6 @@ const
   clrDarkWood: TColorVector = (X: 0.52; Y: 0.37; Z: 0.26; W: 1);
   clrSpicyPink: TColorVector = (X: 1.00; Y: 0.11; Z: 0.68; W: 1);
   clrSemiSweetChoc: TColorVector = (X: 0.42; Y: 0.26; Z: 0.15; W: 1);
-  clrBakersChoc: TColorVector = (X: 0.36; Y: 0.20; Z: 0.09; W: 1);
   clrFlesh: TColorVector = (X: 0.96; Y: 0.80; Z: 0.69; W: 1);
   clrNewTan: TColorVector = (X: 0.92; Y: 0.78; Z: 0.62; W: 1);
   clrNewMidnightBlue: TColorVector = (X: 0.00; Y: 0.00; Z: 0.61; W: 1);
@@ -340,7 +343,6 @@ const
   clrDustyRose: TColorVector = (X: 0.52; Y: 0.39; Z: 0.39; W: 1);
   clrHuntersGreen: TColorVector = (X: 0.13; Y: 0.37; Z: 0.31; W: 1);
   clrScarlet: TColorVector = (X: 0.55; Y: 0.09; Z: 0.09; W: 1);
-  clrMediumPurple: TColorVector = (X: 0.73; Y: 0.16; Z: 0.96; W: 1);
   clrLightPurple: TColorVector = (X: 0.87; Y: 0.58; Z: 0.98; W: 1);
   clrVeryLightPurple: TColorVector = (X: 0.94; Y: 0.81; Z: 0.99; W: 1);
   clrGreen: TColorVector = (X: 0; Y: 0.5; Z: 0; W: 1);
@@ -348,11 +350,8 @@ const
   clrPurple: TColorVector = (X: 1; Y: 0; Z: 1; W: 1);
   clrTeal: TColorVector = (X: 0; Y: 0.5; Z: 0.5; W: 1);
   clrRed: TColorVector = (X: 1; Y: 0; Z: 0; W: 1);
-  clrLime: TColorVector = (X: 0; Y: 1; Z: 0; W: 1);
   clrYellow: TColorVector = (X: 1; Y: 1; Z: 0; W: 1);
-  clrBlue: TColorVector = (X: 0; Y: 0; Z: 1; W: 1);
-  clrFuchsia: TColorVector = (X: 1; Y: 0; Z: 1; W: 1);
-  clrAqua: TColorVector = (X: 0; Y: 1; Z: 1; W: 1);
+  clrWheat: TColorVector = (X: 0.847059; Y: 0.847059; Z: 0.74902; W: 1);
 
   cDefaultNormalMapScale = 0.125;
 

+ 0 - 4
Source/GLS.Extrusion.pas

@@ -1,17 +1,13 @@
 //
 // The graphics rendering engine GLScene http://glscene.org
 //
-
 unit GLS.Extrusion;
-
 (*
   Extrusion objects are solids defined by the surface described by a moving curve.
   Suggestion:
     All extrusion objects use actually the same kind of "parts",
     one common type should do.
 *)
-
-
 interface
 
 {$I GLScene.inc}

+ 1 - 1
Source/GLS.MaterialEx.pas

@@ -788,7 +788,7 @@ type
     function GetVec2: TVector2f; override;
     function GetVec3: TVector3f; override;
     function GetVec4: TGLVector; override;
-    function GetInt: Integer; override;
+    function GetInt: TGLInt; override;
     function GetIVec2: TVector2i; override;
     function GetIVec3: TVector3i; override;
     function GetIVec4: TVector4i; override;

+ 2 - 2
Source/GLS.Objects.pas

@@ -2959,7 +2959,7 @@ begin
   end;
 end;
 
-procedure TGLSphere.SetSlices(aValue: Integer);
+procedure TGLSphere.SetSlices(aValue: TGLInt);
 begin
   if aValue <> FSlices then
   begin
@@ -3531,7 +3531,7 @@ begin
   end;
 end;
 
-procedure TGLSuperellipsoid.SetSlices(aValue: Integer);
+procedure TGLSuperellipsoid.SetSlices(aValue: TGLInt);
 begin
   if aValue <> FSlices then
   begin

+ 1 - 4
Source/GLS.PersistentClasses.pas

@@ -1,9 +1,7 @@
 //
 // The graphics rendering engine GLScene http://glscene.org
 //
-
 unit GLS.PersistentClasses;
-
 (*
    Base persistence classes.
 
@@ -12,7 +10,6 @@ unit GLS.PersistentClasses;
    allowing for object-level versioning (100% backward compatibility) and full
    polymorphic persistence.
 *)
-
 interface
 
 {$I GLScene.inc}
@@ -130,7 +127,7 @@ type
     FList: PPointerObjectList;
     FCount: Integer;
     FCapacity: Integer;
-    FGrowthDelta: integer;
+    FGrowthDelta: Integer;
   protected
     procedure Error; virtual;
     function Get(Index: Integer): TObject; inline;