浏览代码

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

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

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

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

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

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

@@ -106,6 +106,7 @@ object Form1: TForm1
         Material.MaterialLibrary = GLMaterialLibrary
         Material.MaterialLibrary = GLMaterialLibrary
         Material.LibMaterialName = 'earthDay'
         Material.LibMaterialName = 'earthDay'
         Direction.Coordinates = {000000000000803F0000000000000000}
         Direction.Coordinates = {000000000000803F0000000000000000}
+        ShowAxes = True
         TurnAngle = -150.000000000000000000
         TurnAngle = -150.000000000000000000
         Up.Coordinates = {00000000000000800000803F00000000}
         Up.Coordinates = {00000000000000800000803F00000000}
         Radius = 0.500000000000000000
         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
    Typical application is interactive representation of FEA (Finite Element
    Analysis), the palette texture can be used with discrete colors
    Analysis), the palette texture can be used with discrete colors
@@ -14,7 +14,7 @@
    transversal wind and self weigth.
    transversal wind and self weigth.
 
 
    (Sample Data contributed by Carlos Ferreira)
    (Sample Data contributed by Carlos Ferreira)
-}
+*)
 program IntensityMesh;
 program IntensityMesh;
 
 
 uses
 uses

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

@@ -38,7 +38,6 @@ uses
   GLS.State,
   GLS.State,
   GLS.TextureFormat;
   GLS.TextureFormat;
 
 
-
 type
 type
   TForm1 = class(TForm)
   TForm1 = class(TForm)
     GLScene1: TGLScene;
     GLScene1: TGLScene;
@@ -58,8 +57,8 @@ type
     TBScale: TTrackBar;
     TBScale: TTrackBar;
     Label1: TLabel;
     Label1: TLabel;
     procedure FormCreate(Sender: TObject);
     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;
     procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
       X, Y: Integer);
       X, Y: Integer);
     procedure GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
     procedure GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
@@ -70,10 +69,10 @@ type
       WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
       WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
     procedure TBScaleChange(Sender: TObject);
     procedure TBScaleChange(Sender: TObject);
   private
   private
-     
-    mx, my : Integer;
+
+    mx, my: Integer;
   public
   public
-     
+
   end;
   end;
 
 
 var
 var
@@ -84,150 +83,168 @@ implementation
 {$R *.dfm}
 {$R *.dfm}
 
 
 type
 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
 var
-   DataNodes : array of TDataNode;
-   DataPrimitives : array of TDataPrimitive;
+  DataNodes: array of TDataNode;
+  DataPrimitives: array of TDataPrimitive;
 
 
 procedure TForm1.FormCreate(Sender: TObject);
 procedure TForm1.FormCreate(Sender: TObject);
 var
 var
-   mo : TMeshObject;
-   fgQuads, fgTris : TFGVertexIndexList;
-   i : Integer;
-   str : TFileStream;
+  mo: TMeshObject;
+  fgQuads, fgTris: TFGVertexIndexList;
+  i: Integer;
+  str: TFileStream;
 begin
 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;
-   end;
-   // auto center
-   GLFreeForm.PerformAutoCentering;
-   // and initialize scale
-   TBScaleChange(Self);
+    end;
+  // auto center
+  GLFreeForm.PerformAutoCentering;
+  // and initialize scale
+  TBScaleChange(Self);
 end;
 end;
 
 
 procedure TForm1.GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
 procedure TForm1.GLUserShaderDoUnApply(Sender: TObject; Pass: Integer;
   var rci: TGLRenderContextInfo; var Continue: Boolean);
   var rci: TGLRenderContextInfo; var Continue: Boolean);
 begin
 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
       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;
       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;
 end;
 
 
 procedure TForm1.CBSmoothClick(Sender: TObject);
 procedure TForm1.CBSmoothClick(Sender: TObject);
 var
 var
-   tex : TGLTexture;
+  tex: TGLTexture;
 begin
 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;
 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
 begin
-   mx:=x; my:=y;
-   GLSceneViewer1.SetFocus;
+  mx := X;
+  my := Y;
+  GLSceneViewer1.SetFocus;
 end;
 end;
 
 
-procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject;
-  Shift: TShiftState; X, Y: Integer);
+procedure TForm1.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
+  X, Y: Integer);
 begin
 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;
 end;
 
 
 procedure TForm1.TBScaleChange(Sender: TObject);
 procedure TForm1.TBScaleChange(Sender: TObject);
 begin
 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;
 end;
 
 
 procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
 procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
 begin
 begin
-   GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta/120));
+  GLCamera.AdjustDistanceToTarget(Power(1.03, WheelDelta / 120));
 end;
 end;
 
 
 procedure TForm1.CBWireFrameClick(Sender: TObject);
 procedure TForm1.CBWireFrameClick(Sender: TObject);
 begin
 begin
-   GLSceneViewer1.Invalidate;
+  GLSceneViewer1.Invalidate;
 end;
 end;
 
 
 end.
 end.

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

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

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

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

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

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

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

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

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

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

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

@@ -20,10 +20,10 @@
 #include "GLS.Graph.hpp"
 #include "GLS.Graph.hpp"
 #include "GLS.Objects.hpp"
 #include "GLS.Objects.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.VectorFileObjects.hpp"
-#include "Cg.Shader.hpp"
 #include "GLS.File3DS.hpp"
 #include "GLS.File3DS.hpp"
 #include "Imports.Cg.hpp"
 #include "Imports.Cg.hpp"
 #include "Imports.cgGL.hpp"
 #include "Imports.cgGL.hpp"
+#include "Cg.Shader.hpp"
 
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 class TForm1 : public TForm
 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.
 // 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;
   TAffineVector aScale;
-  Gls::Vectorgeometry::TGLMatrix mat;
+  TGLMatrix mat;
   int I;
   int I;
 
 
   // Save scale.
   // Save scale.

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

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

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

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

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

@@ -7,18 +7,18 @@
 #include <Controls.hpp>
 #include <Controls.hpp>
 #include <StdCtrls.hpp>
 #include <StdCtrls.hpp>
 #include <Forms.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 <ExtCtrls.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Coordinates.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
 class TForm1:public TForm

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

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

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

@@ -1,4 +1,4 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 
 #include <vcl.h>
 #include <vcl.h>
 #include <tchar.h>
 #include <tchar.h>
@@ -7,7 +7,7 @@
 #pragma hdrstop
 #pragma hdrstop
 
 
 #include "Unit1.h"
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
 #pragma link "GLS.Cadencer"
@@ -19,77 +19,74 @@
 #pragma link "GLS.SceneViewer"
 #pragma link "GLS.SceneViewer"
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 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
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
     FieldOfView = 149.984252929687500000
     FieldOfView = 149.984252929687500000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   end

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

@@ -1,11 +1,11 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 
 #include <vcl.h>
 #include <vcl.h>
 #include <tchar.h>
 #include <tchar.h>
 #pragma hdrstop
 #pragma hdrstop
 
 
 #include "Unit1.h"
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
 #pragma link "GLS.Cadencer"
@@ -24,189 +24,186 @@
 
 
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 TForm1 *Form1;
-//---------------------------------------------------------------------------
-__fastcall TForm1::TForm1(TComponent* Owner)
-	: TForm(Owner)
-{
+
+// ---------------------------------------------------------------------------
+__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
 }
 }
-//---------------------------------------------------------------------------
-void __fastcall TForm1::FormCreate(TObject *Sender)
-{
+
+// ---------------------------------------------------------------------------
+void __fastcall TForm1::FormCreate(TObject *Sender) {
 	SetGLSceneMediaDir();
 	SetGLSceneMediaDir();
 	// Load the cube map which is used both for environment and as reflection texture
 	// Load the cube map which is used both for environment and as reflection texture
 	TGLTexture *tex = MatLib->LibMaterialByName("water")->Material->Texture;
 	TGLTexture *tex = MatLib->LibMaterialByName("water")->Material->Texture;
 	tex->Image->LoadFromFile("noise.bmp");
 	tex->Image->LoadFromFile("noise.bmp");
 	tex->ImageClassName = __classid(TGLCubeMapImage)->ClassName();
 	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
 	// Load all 6 texture map components of the cube map
 	// The 'PX', 'NX', etc. refer to 'positive X', 'negative X', etc.
 	// The 'PX', 'NX', etc. refer to 'positive X', 'negative X', etc.
 	// and follow the RenderMan specs/conventions
 	// 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
 // Shader headers
 #include "GLSL.PostShaders.hpp"
 #include "GLSL.PostShaders.hpp"
 #include "GLSL.PostEffects.hpp"
 #include "GLSL.PostEffects.hpp"
-#include "CG.PostTransformationShader.hpp"
+#include "Cg.PostTransformationShader.hpp"
 
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 class TForm1 : public TForm
 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;
    int i;
-   Gls::Vectorgeometry::TGLMatrix mat;
+   TGLMatrix mat;
    TGLVector p, pProj;
    TGLVector p, pProj;
    TGLVector planePoint, planeNormal;
    TGLVector planePoint, planeNormal;
    THmgPlane plane;
    THmgPlane plane;

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

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

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

@@ -21,6 +21,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBackground
     Buffer.BackgroundColor = clBackground
     FieldOfView = 152.194625854492200000
     FieldOfView = 152.194625854492200000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   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,
 void __fastcall TForm1::GLCamera1CustomPerspective(const TRectangle &viewport, int width,
           int height, int DPI, float &viewPortRadius)
           int height, int DPI, float &viewPortRadius)
 {
 {
-  Gls::Vectorgeometry::TGLMatrix Mat;
+  TGLMatrix Mat;
 
 
   Mat =  CreatePerspectiveMatrix(GLCamera1->GetFieldOfView(Width)/4,
   Mat =  CreatePerspectiveMatrix(GLCamera1->GetFieldOfView(Width)/4,
 	Width / Height, GLCamera1->NearPlaneBias, GLCamera1->DepthOfView);
 	Width / Height, GLCamera1->NearPlaneBias, GLCamera1->DepthOfView);

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

@@ -1,10 +1,10 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 
 #include <vcl.h>
 #include <vcl.h>
 #pragma hdrstop
 #pragma hdrstop
 
 
 #include "uCubeMap.h"
 #include "uCubeMap.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Coordinates"
 #pragma link "GLS.Coordinates"
@@ -16,82 +16,82 @@
 #pragma link "GLS.Texture"
 #pragma link "GLS.Texture"
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 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
 	// We need a CubeMapImage, which unlike the "regular Images" stores
 	// multiple images.
 	// multiple images.
 
 
-  //with Teapot1->Material->Texture->
-  Teapot1->Material->Texture->ImageClassName =
+	// with Teapot1->Material->Texture->
+	Teapot1->Material->Texture->ImageClassName =
 		__classid(TGLCubeMapImage)->ClassName();
 		__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
 	// Select reflection cube map environment mapping
 	// This is the mode you'll most commonly use with cube maps, normal cube
 	// This is the mode you'll most commonly use with cube maps, normal cube
 	// map generation is also supported (used for diffuse environment lighting)
 	// 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!
 	// 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()
 void __fastcall TForm1::GenerateCubeMap()
 {
 {
    // Don't do anything if cube maps aren't supported
    // Don't do anything if cube maps aren't supported
+   /*
    if (!CubmapSupported) {
    if (!CubmapSupported) {
 	  if (!CubeMapWarnDone)
 	  if (!CubeMapWarnDone)
 		 ShowMessage("Your graphics hardware does not support cube maps...");
 		 ShowMessage("Your graphics hardware does not support cube maps...");
 	  CubeMapWarnDone = true;
 	  CubeMapWarnDone = true;
 	  exit;
 	  exit;
    }
    }
+   */
+
    // Here we generate the new cube map, from CubeMapCamera (a child of the
    // Here we generate the new cube map, from CubeMapCamera (a child of the
    // teapot in the scene hierarchy)
    // teapot in the scene hierarchy)
    // hide the teapot while rendering the cube map
    // 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 = []
   Font.Style = []
   OldCreateOrder = False
   OldCreateOrder = False
   Position = poScreenCenter
   Position = poScreenCenter
-  WindowState = wsMaximized
   OnMouseWheel = FormMouseWheel
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
   PixelsPerInch = 96
   TextHeight = 13
   TextHeight = 13
@@ -25,6 +24,7 @@ object Form1: TForm1
     BeforeRender = GLSceneViewer1BeforeRender
     BeforeRender = GLSceneViewer1BeforeRender
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
     FieldOfView = 143.583038330078100000
     FieldOfView = 143.583038330078100000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseDown = GLSceneViewer1MouseDown
     OnMouseMove = GLSceneViewer1MouseMove
     OnMouseMove = GLSceneViewer1MouseMove

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

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

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

@@ -42,12 +42,12 @@
     <PropertyGroup Condition="'$(Base)'!=''">
     <PropertyGroup Condition="'$(Base)'!=''">
         <SanitizedProjectName>MultiMaterial</SanitizedProjectName>
         <SanitizedProjectName>MultiMaterial</SanitizedProjectName>
         <AllPackageLibs>rtl.lib;vcl.lib;GLScene_RT.lib;xmlrtl.lib;vclimg.lib</AllPackageLibs>
         <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>
         <Multithreaded>true</Multithreaded>
         <_TCHARMapping>wchar_t</_TCHARMapping>
         <_TCHARMapping>wchar_t</_TCHARMapping>
         <ProjectType>CppVCLApplication</ProjectType>
         <ProjectType>CppVCLApplication</ProjectType>
         <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
         <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>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
         <DCC_CBuilderOutput>JPHNE</DCC_CBuilderOutput>
         <DynamicRTL>true</DynamicRTL>
         <DynamicRTL>true</DynamicRTL>
@@ -202,6 +202,54 @@
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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)\bin64\cc64220mt.dll" Class="DependencyModule"/>
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c250mt.dll" Class="DependencyModule">
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32c250mt.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                     <Platform Name="Win32">
@@ -238,45 +286,39 @@
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'!='true'" LocalName="$(BDS)\bin\cc32270.dll" Class="DependencyModule">
                     <Platform Name="Win32">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                     <Platform Name="Win32">
+                        <RemoteName>MultiMaterial.tds</RemoteName>
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                 <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin64\cc64250mt.dll" Class="DependencyModule">
                     <Platform Name="Win64">
                     <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                     <Platform Name="Win64">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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">
                     <Platform Name="Win32">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
@@ -285,12 +327,12 @@
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </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>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
+                <DeployFile Condition="'$(DynamicRTL)'=='true' And '$(Multithreaded)'=='true'" LocalName="$(BDS)\bin\cc32220mt.dll" Class="DependencyModule"/>
                 <DeployClass Name="AdditionalDebugSymbols">
                 <DeployClass Name="AdditionalDebugSymbols">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
                         <Operation>1</Operation>
                         <Operation>1</Operation>
@@ -308,20 +350,12 @@
                         <RemoteDir>classes</RemoteDir>
                         <RemoteDir>classes</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>classes</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidFileProvider">
                 <DeployClass Name="AndroidFileProvider">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\xml</RemoteDir>
                         <RemoteDir>res\xml</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\xml</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidGDBServer">
                 <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
                     <Platform Name="Android">
@@ -334,10 +368,6 @@
                         <RemoteDir>library\lib\armeabi</RemoteDir>
                         <RemoteDir>library\lib\armeabi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>library\lib\armeabi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
                 <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
                     <Platform Name="Android64">
                     <Platform Name="Android64">
@@ -350,20 +380,12 @@
                         <RemoteDir>library\lib\mips</RemoteDir>
                         <RemoteDir>library\lib\mips</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>library\lib\mips</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidServiceOutput">
                 <DeployClass Name="AndroidServiceOutput">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidServiceOutput_Android32">
                 <DeployClass Name="AndroidServiceOutput_Android32">
                     <Platform Name="Android64">
                     <Platform Name="Android64">
@@ -376,200 +398,120 @@
                         <RemoteDir>res\drawable</RemoteDir>
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStyles">
                 <DeployClass Name="AndroidSplashStyles">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStylesV21">
                 <DeployClass Name="AndroidSplashStylesV21">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\values-v21</RemoteDir>
                         <RemoteDir>res\values-v21</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values-v21</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_Colors">
                 <DeployClass Name="Android_Colors">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon144">
                 <DeployClass Name="Android_LauncherIcon144">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon36">
                 <DeployClass Name="Android_LauncherIcon36">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-ldpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon48">
                 <DeployClass Name="Android_LauncherIcon48">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-mdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon72">
                 <DeployClass Name="Android_LauncherIcon72">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-hdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon96">
                 <DeployClass Name="Android_LauncherIcon96">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon24">
                 <DeployClass Name="Android_NotificationIcon24">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-mdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon36">
                 <DeployClass Name="Android_NotificationIcon36">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-hdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon48">
                 <DeployClass Name="Android_NotificationIcon48">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon72">
                 <DeployClass Name="Android_NotificationIcon72">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon96">
                 <DeployClass Name="Android_NotificationIcon96">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
                         <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage426">
                 <DeployClass Name="Android_SplashImage426">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-small</RemoteDir>
                         <RemoteDir>res\drawable-small</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-small</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage470">
                 <DeployClass Name="Android_SplashImage470">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-normal</RemoteDir>
                         <RemoteDir>res\drawable-normal</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-normal</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage640">
                 <DeployClass Name="Android_SplashImage640">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-large</RemoteDir>
                         <RemoteDir>res\drawable-large</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-large</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage960">
                 <DeployClass Name="Android_SplashImage960">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\drawable-xlarge</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="Android_Strings">
                 <DeployClass Name="Android_Strings">
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>res\values</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="DebugSymbols">
                 <DeployClass Name="DebugSymbols">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
@@ -658,9 +600,6 @@
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <Operation>0</Operation>
-                    </Platform>
                     <Platform Name="iOSDevice32">
                     <Platform Name="iOSDevice32">
                         <Operation>0</Operation>
                         <Operation>0</Operation>
                     </Platform>
                     </Platform>
@@ -693,6 +632,17 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPad_Launch1536">
                     <Platform Name="iOSDevice32">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                         <Operation>1</Operation>
@@ -704,6 +654,39 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPad_Launch2048">
                     <Platform Name="iOSDevice32">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                         <Operation>1</Operation>
@@ -715,6 +698,61 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPad_Launch2x">
                     <Platform Name="iOSDevice64">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -736,6 +774,17 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPad_LaunchDark2x">
                     <Platform Name="iOSDevice64">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -746,6 +795,105 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPhone_Launch2x">
                     <Platform Name="iOSDevice64">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -799,6 +947,28 @@
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
                 </DeployClass>
                 </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">
                 <DeployClass Name="iPhone_LaunchDark2x">
                     <Platform Name="iOSDevice64">
                     <Platform Name="iOSDevice64">
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
                         <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
@@ -823,9 +993,6 @@
                     <Platform Name="Android">
                     <Platform Name="Android">
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <Operation>1</Operation>
-                    </Platform>
                 </DeployClass>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
                     <Platform Name="iOSDevice32">
@@ -928,10 +1095,6 @@
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>
-                    <Platform Name="Android64">
-                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
-                        <Operation>1</Operation>
-                    </Platform>
                     <Platform Name="iOSDevice32">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                         <Operation>1</Operation>
                     </Platform>
                     </Platform>

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

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

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

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

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

@@ -15,13 +15,15 @@
 #include "GLS.Texture.hpp"
 #include "GLS.Texture.hpp"
 #include "GLS.VectorGeometry.hpp"
 #include "GLS.VectorGeometry.hpp"
 #include "GLS.Cadencer.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.Material.hpp"
 #include "GLS.Coordinates.hpp"
 #include "GLS.Coordinates.hpp"
 
 
 #include "GLS.BaseClasses.hpp"
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Utils.hpp"
 #include "GLS.Utils.hpp"
+#include "GLSL.MultiMaterialShader.hpp"
+#include "GLSL.TextureShaders.hpp"
 
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 class TForm1 : public TForm
 class TForm1 : public TForm

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

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

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

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

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

@@ -47,16 +47,16 @@
 TForm1 *Form1;
 TForm1 *Form1;
 
 
 int mdx, mdy;
 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) {
 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) {
@@ -232,7 +232,7 @@ void __fastcall TForm1::GLDirectOpenGL1Render(TObject *Sender,
 	TGLRenderContextInfo &rci)
 	TGLRenderContextInfo &rci)
 
 
 {
 {
-	FInvCameraMatrix = rci.PipelineTransformation->InvModelViewMatrix;
+	FInvCameraMatrix = *rci.PipelineTransformation->InvModelViewMatrix;
 	FEyeToLightMatrix = MatrixMultiply(FInvCameraMatrix, FLightModelViewMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FInvCameraMatrix, FLightModelViewMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FLightProjMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FLightProjMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FBiasMatrix);
 	FEyeToLightMatrix = MatrixMultiply(FEyeToLightMatrix, FBiasMatrix);
@@ -252,9 +252,9 @@ void __fastcall TForm1::GLFrameBufferBeforeRender(TObject *Sender,
 
 
 {
 {
 	FLightModelViewMatrix =
 	FLightModelViewMatrix =
-		CurrentGLContext()->PipelineTransformation->ModelViewMatrix;
+		*CurrentGLContext()->PipelineTransformation->ModelViewMatrix;
 	FLightProjMatrix =
 	FLightProjMatrix =
-		CurrentGLContext()->PipelineTransformation->ProjectionMatrix;
+		*CurrentGLContext()->PipelineTransformation->ProjectionMatrix;
 	CurrentGLContext()->GLStates->Enable(stPolygonOffsetFill);
 	CurrentGLContext()->GLStates->Enable(stPolygonOffsetFill);
 	CurrentGLContext()->GLStates->PolygonOffsetFactor = 2;
 	CurrentGLContext()->GLStates->PolygonOffsetFactor = 2;
 	CurrentGLContext()->GLStates->PolygonOffsetUnits = 2;
 	CurrentGLContext()->GLStates->PolygonOffsetUnits = 2;

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

@@ -7,13 +7,13 @@
 #include <Vcl.ComCtrls.hpp>
 #include <Vcl.ComCtrls.hpp>
 #include <Vcl.ExtCtrls.hpp>
 #include <Vcl.ExtCtrls.hpp>
 
 
-#include <GLS.FileZLIB.hpp>
 #include <Vcl.Controls.hpp>
 #include <Vcl.Controls.hpp>
 #include <Vcl.StdCtrls.hpp>
 #include <Vcl.StdCtrls.hpp>
 #include <Vcl.Forms.hpp>
 #include <Vcl.Forms.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Coordinates.hpp"
 #include "GLS.Coordinates.hpp"
+#include "GLS.FileZLIB.hpp"
 
 
 #include "GLS.FBORenderer.hpp"
 #include "GLS.FBORenderer.hpp"
 #include "GLS.Material.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)
 void __fastcall TForm1::FormCreate(TObject *Sender)
 {
 {
    int i, j;
    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
    // fill the tiled area with random tiles
    RandSeed = 0;
    RandSeed = 0;
-/*
+
+ /*
    for (i=-20;i<=20;i++)
    for (i=-20;i<=20;i++)
 	 for (j=-20;j<=20;j++)
 	 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,
    // set all tile materials to anisotropic,
    // add them to the material selection combo
    // add them to the material selection combo

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

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

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

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

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

@@ -1,10 +1,10 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 
 
 #include <vcl.h>
 #include <vcl.h>
 #pragma hdrstop
 #pragma hdrstop
 
 
 #include "Unit1.h"
 #include "Unit1.h"
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
 #pragma package(smart_init)
 #pragma package(smart_init)
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.BaseClasses"
 #pragma link "GLS.Cadencer"
 #pragma link "GLS.Cadencer"
@@ -18,117 +18,111 @@
 #pragma link "GLS.SceneViewer"
 #pragma link "GLS.SceneViewer"
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 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;
 	float angle;
 	// places the ball in the mat center, resets score and ball speed
 	// 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);
 	MakeVector(ballVector, 4*cos(angle), 4*sin(angle), 0);
 	score = 0;
 	score = 0;
 	gameOver = false;
 	gameOver = false;
 	Ball->Position->AsVector = NullHmgPoint;
 	Ball->Position->AsVector = NullHmgPoint;
 }
 }
 
 
-void __fastcall TForm1::FormCreate(TObject *Sender)
-{
+void __fastcall TForm1::FormCreate(TObject *Sender) {
 	Randomize();
 	Randomize();
 	GLSceneViewer1->Cursor = crNone;
 	GLSceneViewer1->Cursor = crNone;
 	ResetGame();
 	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;
 	float px;
 
 
 	// the pad's position is directly calculated from the mouse position
 	// 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;
 		px = -cPadMinMax;
-	else
-	if (px>cPadMinMax)
+	else if (px > cPadMinMax)
 		px = cPadMinMax;
 		px = cPadMinMax;
 	Pad->Position->X = px;
 	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;
 	TGLVector newBallPos;
 	// gameOver is True as soon as the ball is behind the pad, but we don't end
 	// 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
 	// 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)
 		// calc expected new ball pos (if no bump occurs)
 		// ( note : VectorCombine(v1, v2, f1, f2)=v1*f1+v2*f2 )
 		// ( 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
 		// check collision with edges
-		if (newBallPos.X<-7.05)
+		if (newBallPos.X < -7.05)
 			ballVector.X = -ballVector.X;
 			ballVector.X = -ballVector.X;
-		else
-		if (newBallPos.X>7.05)
+		else if (newBallPos.X > 7.05)
 			ballVector.X = -ballVector.X;
 			ballVector.X = -ballVector.X;
-		else
-		if (newBallPos.Y>4.55)
+		else if (newBallPos.Y > 4.55)
 			ballVector.Y = -ballVector.Y;
 			ballVector.Y = -ballVector.Y;
 		// check collision with pad
 		// 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
 				// when ball bumps the pad, it is accelerated and the vector
 				// is slightly randomized
 				// is slightly randomized
 				ballVector.Y = -ballVector.Y;
 				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 !
 				// ...and of course a point is scored !
 				score++;
 				score++;
 				SpaceText1->Text = Format("%.3d", ARRAYOFCONST((score)));
 				SpaceText1->Text = Format("%.3d", ARRAYOFCONST((score)));
 			}
 			}
-			else
-			{
-			  // ball missed !
-			  gameOver = true;
-			  exit;
+			else {
+				// ball missed !
+				gameOver = true;
+				exit;
 			}
 			}
 		}
 		}
 	}
 	}
 	// move the ball
 	// 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
 	// update performance monitor
-  //%s : Name,
-	Caption = Format("%.2f FPS", ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
+	// %s : Name,
+	Caption = Format("%.2f FPS",
+		ARRAYOFCONST((GLSceneViewer1->FramesPerSecond())));
 	GLSceneViewer1->ResetPerformanceMonitor();
 	GLSceneViewer1->ResetPerformanceMonitor();
 	// display score window when game is over and the ball is well out of the board
 	// 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
 		// stop the timer to avoid stacking up Timer events
 		// while the user makes up his mind...
 		// while the user makes up his mind...
 		Timer1->Enabled = false;
 		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.BackgroundColor = clBlack
     Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
     Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
     FieldOfView = 133.897399902343800000
     FieldOfView = 133.897399902343800000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseMove = GLSceneViewer1MouseMove
     OnMouseMove = GLSceneViewer1MouseMove
     TabOrder = 0
     TabOrder = 0

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

@@ -27,7 +27,7 @@ class TForm1 : public TForm
 __published:	// IDE-managed Components
 __published:	// IDE-managed Components
 	TGLSceneViewer *GLSceneViewer1;
 	TGLSceneViewer *GLSceneViewer1;
 	TGLScene *GLScene1;
 	TGLScene *GLScene1;
-	TGLShadowVolume *GLS.ShadowVolume;
+	TGLShadowVolume *GLShadowVolume;
 	TGLPlane *Plane1;
 	TGLPlane *Plane1;
 	TGLCube *Cube1;
 	TGLCube *Cube1;
 	TGLCube *Cube2;
 	TGLCube *Cube2;
@@ -43,7 +43,7 @@ __published:	// IDE-managed Components
 	TGLCadencer *GLCadencer1;
 	TGLCadencer *GLCadencer1;
 	void __fastcall FormCreate(TObject *Sender);
 	void __fastcall FormCreate(TObject *Sender);
 	void __fastcall GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift, int X,
 	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 GLCadencer1Progress(TObject *Sender, const double deltaTime, const double newTime);
 	void __fastcall Timer1Timer(TObject *Sender);
 	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,
 int __cdecl BuoyancyPlaneCallback(const int collisionID, void *context,
   const PNGDFloat globalSpaceMatrix, PNGDFloat globalSpacePlane)
   const PNGDFloat globalSpaceMatrix, PNGDFloat globalSpacePlane)
 {
 {
-  Gls::Vectorgeometry::TGLMatrix *BodyMatrix;
+  TGLMatrix *BodyMatrix;
   TGLVector PlaneEquation;
   TGLVector PlaneEquation;
-  Gls::Vectorgeometry::PGLVector pv;
+  PGLVector pv;
   TForm1 *MyForm;
   TForm1 *MyForm;
 
 
   // Get the matrix of the actual body
   // Get the matrix of the actual body

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

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

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

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

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

@@ -30,7 +30,7 @@ void __fastcall TForm1::FormCreate(TObject *Sender)
    RBUseLODsClick(Sender); //MPSphere
    RBUseLODsClick(Sender); //MPSphere
    // replicate the multiproxy via a TGLParticles object
    // replicate the multiproxy via a TGLParticles object
    for (i = 0; i < 35; i++) {
    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)
 		  const double newTime)
 {
 {
    // this is invoked for each of our MultiProxys, it makes them loop an ellipse
    // 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
     Camera = GLCamera
     Buffer.BackgroundColor = clGray
     Buffer.BackgroundColor = clGray
     FieldOfView = 111.908126831054700000
     FieldOfView = 111.908126831054700000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   end

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

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

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

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

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

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

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

@@ -23,6 +23,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
     FieldOfView = 166.785736083984400000
     FieldOfView = 166.785736083984400000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   end
@@ -179,7 +180,6 @@ object Form1: TForm1
       end
       end
       object GLDummyCube1: TGLDummyCube
       object GLDummyCube1: TGLDummyCube
         ObjectsSorting = osNone
         ObjectsSorting = osNone
-        Direction.Coordinates = {00000000000000800000803F00000000}
         Position.Coordinates = {0000204100000040000040400000803F}
         Position.Coordinates = {0000204100000040000040400000803F}
         CubeSize = 1.000000000000000000
         CubeSize = 1.000000000000000000
         object GLSphere1: TGLSphere
         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)
 void __fastcall TForm1::Timer1Timer(TObject *Sender)
 {
 {
-	Caption = "PFXGallery FPS - " + IntToStr(Round(GLSceneViewer1->FramesPerSecond()));
 	GLSceneViewer1->ResetPerformanceMonitor();
 	GLSceneViewer1->ResetPerformanceMonitor();
 }
 }
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------

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

@@ -27,6 +27,7 @@ object Form1: TForm1
     Buffer.BackgroundColor = clBlack
     Buffer.BackgroundColor = clBlack
     Buffer.AmbientColor.Color = {0000803F0000803F0000803F0000803F}
     Buffer.AmbientColor.Color = {0000803F0000803F0000803F0000803F}
     FieldOfView = 143.454727172851600000
     FieldOfView = 143.454727172851600000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   end
@@ -2303,7 +2304,6 @@ object Form1: TForm1
     Left = 36
     Left = 36
     Top = 44
     Top = 44
     object WorldRoot: TGLDummyCube
     object WorldRoot: TGLDummyCube
-      Direction.Coordinates = {00000000000000800000803F00000000}
       Scale.Coordinates = {0000C0400000C0400000C04000000000}
       Scale.Coordinates = {0000C0400000C0400000C04000000000}
       CubeSize = 1.000000000000000000
       CubeSize = 1.000000000000000000
       object GLLightSource1: TGLLightSource
       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->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");
   Mat = MatLib->LibMaterialByName("XMask");
  ((TGLPersistentImage *)Mat->Material->Texture->Image)->Picture->Bitmap->Height = XImage->Height;
  ((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.Name = 'Tahoma'
   Font.Style = []
   Font.Style = []
   OldCreateOrder = False
   OldCreateOrder = False
-  WindowState = wsMaximized
   OnCreate = FormCreate
   OnCreate = FormCreate
   OnMouseWheel = FormMouseWheel
   OnMouseWheel = FormMouseWheel
   PixelsPerInch = 96
   PixelsPerInch = 96
@@ -115,6 +114,7 @@ object Form1: TForm1
     Camera = Camera
     Camera = Camera
     Buffer.BackgroundColor = clBackground
     Buffer.BackgroundColor = clBackground
     FieldOfView = 175.409606933593800000
     FieldOfView = 175.409606933593800000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     OnMouseMove = SceneViewerMouseMove
     OnMouseMove = SceneViewerMouseMove
     TabOrder = 1
     TabOrder = 1

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

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

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

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

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

@@ -18,6 +18,7 @@
 #pragma link "GLS.SimpleNavigation"
 #pragma link "GLS.SimpleNavigation"
 #pragma link "GLS.VectorFileObjects"
 #pragma link "GLS.VectorFileObjects"
 #pragma link "GLS.SceneViewer"
 #pragma link "GLS.SceneViewer"
+#pragma link "GLSL.PostEffects"
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TMainForm *MainForm;
 TMainForm *MainForm;
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
@@ -70,8 +71,8 @@ void __fastcall TMainForm::GLPostEffect1CustomEffect(TObject *Sender, TGLRenderC
 
 
   for (i = 0; i <= 7; i++) {
   for (i = 0; i <= 7; i++) {
 	Buffer[i]->r = (int)(Buffer[i + 5]->r * 2);
 	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
     Camera = GLCamera1
     Buffer.BackgroundColor = 16776176
     Buffer.BackgroundColor = 16776176
     FieldOfView = 143.915725708007800000
     FieldOfView = 143.915725708007800000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 1
     TabOrder = 1
   end
   end

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

@@ -13,12 +13,12 @@
 #include "GLS.Coordinates.hpp"
 #include "GLS.Coordinates.hpp"
 
 
 #include "GLS.Material.hpp"
 #include "GLS.Material.hpp"
-#include "GLPostEffects.hpp"
 #include "GLS.Scene.hpp"
 #include "GLS.Scene.hpp"
 #include "GLS.SimpleNavigation.hpp"
 #include "GLS.SimpleNavigation.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.VectorFileObjects.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.SceneViewer.hpp"
 #include <Vcl.ExtCtrls.hpp>
 #include <Vcl.ExtCtrls.hpp>
+#include "GLSL.PostEffects.hpp"
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 class TMainForm : public TForm
 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();
  double RefTime = GLCadencer1->GetCurrenttime();
  Shadows1->CastShadow();
  Shadows1->CastShadow();
  Viewer->Refresh();
  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
       Camera = GLCamera2
       Buffer.FaceCulling = False
       Buffer.FaceCulling = False
       FieldOfView = 137.326278686523400000
       FieldOfView = 137.326278686523400000
+      PenAsTouch = False
       OnMouseDown = CasterMouseDown
       OnMouseDown = CasterMouseDown
       OnMouseMove = CasterMouseMove
       OnMouseMove = CasterMouseMove
       OnMouseUp = CasterMouseUp
       OnMouseUp = CasterMouseUp
@@ -82,6 +83,7 @@ object Form1: TForm1
       Height = 256
       Height = 256
       Camera = GLCamera1
       Camera = GLCamera1
       FieldOfView = 137.326278686523400000
       FieldOfView = 137.326278686523400000
+      PenAsTouch = False
       OnMouseDown = ViewerMouseDown
       OnMouseDown = ViewerMouseDown
       OnMouseMove = ViewerMouseMove
       OnMouseMove = ViewerMouseMove
       OnMouseUp = ViewerMouseUp
       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 = (TGLSphere *) DCSpheres->AddNewChild(__classid(TGLSphere));
 		  sphere->Position->SetPoint(x * cSpacing, y * cSpacing, z * cSpacing);
 		  sphere->Position->SetPoint(x * cSpacing, y * cSpacing, z * cSpacing);
 		  sphere->Radius = cRadius;
 		  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->LoadFromFile("trinityrage.smd");
   GLFreeForm->BuildSilhouetteConnectivityData();
   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)
 void __fastcall TForm1::CBShowVolumesClick(TObject * Sender)
 {
 {
   if(CBShowVolumes->Checked)
   if(CBShowVolumes->Checked)
-    GLS.ShadowVolume->Options = GLS.ShadowVolume->Options << svoShowVolumes;
+	GLShadowVolume->Options = GLShadowVolume->Options << svoShowVolumes;
   else
   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
 // this event handles all the radio buttons
   if(RBDarkening->Checked)
   if(RBDarkening->Checked)
-    GLS.ShadowVolume->Mode = svmDarkening;
+	GLShadowVolume->Mode = svmDarkening;
   else if(RBNoShadows->Checked)
   else if(RBNoShadows->Checked)
-    GLS.ShadowVolume->Mode = svmOff;
+	GLShadowVolume->Mode = svmOff;
   else
   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,
 void __fastcall TForm1::GLSceneViewerMouseDown(TObject * Sender,
-                                               TMouseButton Button,
-                                               TShiftState Shift, int X, int Y)
+											   TMouseButton Button,
+											   TShiftState Shift, int X, int Y)
 {
 {
   mx = X;
   mx = X;
   my = Y;
   my = Y;
@@ -96,7 +96,7 @@ void __fastcall TForm1::GLSceneViewerMouseDown(TObject * Sender,
 
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 void __fastcall TForm1::GLSceneViewerMouseMove(TObject * Sender,
 void __fastcall TForm1::GLSceneViewerMouseMove(TObject * Sender,
-                                               TShiftState Shift, int X, int Y)
+											   TShiftState Shift, int X, int Y)
 {
 {
   if(Shift.Contains(ssLeft))
   if(Shift.Contains(ssLeft))
   {
   {
@@ -150,7 +150,7 @@ void __fastcall TForm1::ScrollBar_ShadowResolutionChange(TObject * Sender)
 {
 {
   GLSphere_Shadow->Stacks = ScrollBar_ShadowResolution->Position;
   GLSphere_Shadow->Stacks = ScrollBar_ShadowResolution->Position;
   GLSphere_Shadow->Slices = 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;
   silhouetteParameters.CappingRequired = false;
   SetVector(silhouetteParameters.SeenFrom,
   SetVector(silhouetteParameters.SeenFrom,
-            GLLines1->AbsoluteToLocal(GLCamera->AbsolutePosition));
+			GLLines1->AbsoluteToLocal(GLCamera->AbsolutePosition));
 
 
   silhouetteParameters.Style = ssOmni;
   silhouetteParameters.Style = ssOmni;
 
 
@@ -172,13 +172,13 @@ void __fastcall TForm1::Button_GenerateSilhouetteClick(TObject * Sender)
   GLLines1->Nodes->Clear();
   GLLines1->Nodes->Clear();
 
 
   for(i = 0; i <= Silhouette->Indices->Count - 1; i++)
   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;
   delete Silhouette;
 }
 }

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

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

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

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

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

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

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

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

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

@@ -10,19 +10,19 @@
 #include <Buttons.hpp>
 #include <Buttons.hpp>
 #include <ExtCtrls.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.ParticleFX.hpp>
 #include "GLS.BaseClasses.hpp"
 #include "GLS.BaseClasses.hpp"
 #include "GLS.Coordinates.hpp"
 #include "GLS.Coordinates.hpp"
-#include "GLFullScreenViewer.hpp"
+#include "GLS.FullScreenViewer.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.Keyboard.hpp"
 #include "GLS.Keyboard.hpp"
+#include "GLS.FullScreenViewer.hpp"
 
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------
 class TForm1:public TForm
 class TForm1:public TForm

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

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

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

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

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

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

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

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

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

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

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

@@ -1,7 +1,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
     <PropertyGroup>
         <ProjectGuid>{30320713-03F1-4D97-BC96-001619C8A139}</ProjectGuid>
         <ProjectGuid>{30320713-03F1-4D97-BC96-001619C8A139}</ProjectGuid>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
         <AppType>Application</AppType>
         <AppType>Application</AppType>
         <MainSource>ScreenSaver.cpp</MainSource>
         <MainSource>ScreenSaver.cpp</MainSource>
@@ -78,12 +78,15 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
     <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>
         <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>
         <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>
         <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <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>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
     <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>
         <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>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
         <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>
         <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>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
         <BCC_OptimizeForSpeed>false</BCC_OptimizeForSpeed>
@@ -114,13 +120,14 @@
         <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
         <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <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>
         <Defines>_DEBUG;$(Defines)</Defines>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <OutputExt>scr</OutputExt>
         <OutputExt>scr</OutputExt>
         <FinalOutputDir>.</FinalOutputDir>
         <FinalOutputDir>.</FinalOutputDir>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
         <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;fmx.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <Defines>_DEBUG;$(Defines)</Defines>
         <Defines>_DEBUG;$(Defines)</Defines>
@@ -150,8 +157,8 @@
             <DependentOn>Unit2.h</DependentOn>
             <DependentOn>Unit2.h</DependentOn>
             <BuildOrder>2</BuildOrder>
             <BuildOrder>2</BuildOrder>
         </CppCompile>
         </CppCompile>
-        <FormResources Include="Unit1.dfm"/>
         <FormResources Include="Unit2.dfm"/>
         <FormResources Include="Unit2.dfm"/>
+        <FormResources Include="Unit1.dfm"/>
         <BuildConfiguration Include="Release">
         <BuildConfiguration Include="Release">
             <Key>Cfg_2</Key>
             <Key>Cfg_2</Key>
             <CfgParent>Base</CfgParent>
             <CfgParent>Base</CfgParent>
@@ -214,7 +221,765 @@
                     <ProjectProperties Name="IndexFiles">False</ProjectProperties>
                     <ProjectProperties Name="IndexFiles">False</ProjectProperties>
                 </ProjectProperties>
                 </ProjectProperties>
             </CPlusPlusBuilder.Personality>
             </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>
             <Platforms>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win32">True</Platform>
                 <Platform value="Win64">False</Platform>
                 <Platform value="Win64">False</Platform>
@@ -224,4 +989,5 @@
     </ProjectExtensions>
     </ProjectExtensions>
     <Import Project="$(BDS)\Bin\CodeGear.Cpp.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Cpp.Targets')"/>
     <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="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
 </Project>
 </Project>

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

@@ -6,7 +6,7 @@
         <Base>True</Base>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <AppType>Application</AppType>
@@ -96,12 +96,17 @@
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <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>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <Icon_MainIcon>fontgen_Icon.ico</Icon_MainIcon>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <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>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
@@ -115,12 +120,13 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
         <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>
         <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>
         <LinkPackageStatics>rtl.lib;vcl.lib;fmx.lib;xmlrtl.lib;vclimg.lib;GLScene_RT.lib</LinkPackageStatics>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>

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

@@ -6,7 +6,7 @@
         <Base>True</Base>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <Config Condition="'$(Config)'==''">Debug</Config>
         <FrameworkType>VCL</FrameworkType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>16.0</ProjectVersion>
+        <ProjectVersion>18.7</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>1</TargetedPlatforms>
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <AppType>Application</AppType>
@@ -97,12 +97,17 @@
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <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>
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
     <PropertyGroup Condition="'$(Base_Win64)'!=''">
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <TASM_Defines>_DEBUG;$(TASM_Defines)</TASM_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <BRCC_Defines>_DEBUG;$(BRCC_Defines)</BRCC_Defines>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <Icon_MainIcon>Recorder_Icon.ico</Icon_MainIcon>
         <IncludePath>$(BDSINCLUDE)\windows\vcl;$(IncludePath)</IncludePath>
         <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>
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
     <PropertyGroup Condition="'$(Cfg_1)'!=''">
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
         <DCC_AdditionalSwitches> -M -V</DCC_AdditionalSwitches>
@@ -116,13 +121,14 @@
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
         <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>
         <BCC_UserSuppliedOptions> -tWM -6 -ff -Vx -r- -k -Ve -k</BCC_UserSuppliedOptions>
         <LinkPackageImports>rtl.bpi;vcl.bpi</LinkPackageImports>
         <LinkPackageImports>rtl.bpi;vcl.bpi</LinkPackageImports>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <VerInfo_Locale>1033</VerInfo_Locale>
         <LinkPackageStatics>GLScene_RT.lib;fmx.lib;xmlrtl.lib;vclimg.lib</LinkPackageStatics>
         <LinkPackageStatics>GLScene_RT.lib;fmx.lib;xmlrtl.lib;vclimg.lib</LinkPackageStatics>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <BT_BuildType>Debug</BT_BuildType>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <BCC_Defines>_DEBUG;$(BCC_Defines);$(BCC_Defines)</BCC_Defines>
         <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.Coordinates"
 
 
 
 
+#pragma link "GLS.AVIRecorder"
 #pragma resource "*.dfm"
 #pragma resource "*.dfm"
 TForm1 *Form1;
 TForm1 *Form1;
 bool UserAbort;
 bool UserAbort;

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

@@ -26,6 +26,7 @@ object Form1: TForm1
     Camera = GLCamera1
     Camera = GLCamera1
     Buffer.BackgroundColor = clBtnShadow
     Buffer.BackgroundColor = clBtnShadow
     FieldOfView = 125.340530395507800000
     FieldOfView = 125.340530395507800000
+    PenAsTouch = False
     Align = alClient
     Align = alClient
     TabOrder = 0
     TabOrder = 0
   end
   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.BaseClasses.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Cadencer.hpp"
 #include "GLS.Coordinates.hpp"
 #include "GLS.Coordinates.hpp"
@@ -9,10 +15,6 @@
 #include "GLS.Scene.hpp"
 #include "GLS.Scene.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.SceneViewer.hpp"
 #include "GLS.Keyboard.hpp"
 #include "GLS.Keyboard.hpp"
-#include <System.Classes.hpp>
-#include <Vcl.ComCtrls.hpp>
-#include <Vcl.Controls.hpp>
-#include <Vcl.StdCtrls.hpp>
 
 
 #ifndef Unit1H
 #ifndef Unit1H
 #define Unit1H
 #define Unit1H

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

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

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

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

+ 1 - 1
Packages/GLScene_Cg_RT.dproj

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

+ 1 - 1
Packages/GLScene_Physics_RT.dproj

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

+ 1 - 1
Packages/GLScene_Sounds_RT.dproj

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

+ 11 - 12
Source/GLS.Color.pas

@@ -115,7 +115,7 @@ function ConvertRGBColor(const aColor: array of Byte): TColorVector;
 
 
 // color definitions
 // color definitions
 const
 const
-  // Some extra colors, not declared in Graphics.pas
+  // Some extra colors, not declared in Vcl.Graphics.pas
   clForeground = TColor(-1);
   clForeground = TColor(-1);
   clButton = TColor(-2);
   clButton = TColor(-2);
   clLight = TColor(-3);
   clLight = TColor(-3);
@@ -188,8 +188,8 @@ const
   clMask = clWhite;
   clMask = clWhite;
   clDontMask = clBlack;
   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
 const
 {$J+ - allow change of the following typed constants}
 {$J+ - allow change of the following typed constants}
   clrScrollBar: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
   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);
   clrInfoBk: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
 
 
 {$J- - disable change of other typed constants}
 {$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);
   clrTransparent: TColorVector = (X: 0; Y: 0; Z: 0; W: 0);
   clrBlack: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
   clrBlack: TColorVector = (X: 0; Y: 0; Z: 0; W: 1);
   clrGray05: TColorVector = (X: 0.05; Y: 0.05; Z: 0.05; 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);
   clrLightGray: TColorVector = (X: 0.658824; Y: 0.658824; Z: 0.658824; W: 1);
 
 
   // colors en masse
   // 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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   clrMediumSpringGreen: TColorVector = (X: 0.498039; Y: 1; Z: 0; W: 1);
   clrMediumTurquoise: TColorVector = (X: 0.439216; Y: 0.858824; Z: 0.858824; 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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   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);
   clrVeryLightPurple: TColorVector = (X: 0.94; Y: 0.81; Z: 0.99; W: 1);
   clrGreen: TColorVector = (X: 0; Y: 0.5; Z: 0; 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);
   clrPurple: TColorVector = (X: 1; Y: 0; Z: 1; W: 1);
   clrTeal: TColorVector = (X: 0; Y: 0.5; Z: 0.5; W: 1);
   clrTeal: TColorVector = (X: 0; Y: 0.5; Z: 0.5; W: 1);
   clrRed: TColorVector = (X: 1; Y: 0; Z: 0; 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);
   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;
   cDefaultNormalMapScale = 0.125;
 
 

+ 0 - 4
Source/GLS.Extrusion.pas

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

+ 1 - 1
Source/GLS.MaterialEx.pas

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

+ 2 - 2
Source/GLS.Objects.pas

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

+ 1 - 4
Source/GLS.PersistentClasses.pas

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