Procházet zdrojové kódy

Fixed GLS.PersistentClasses registration

GLScene před 2 roky
rodič
revize
10afa400c5
100 změnil soubory, kde provedl 1071 přidání a 1051 odebrání
  1. 2 2
      Examples/AdvDemos/Forest/fForestD.pas
  2. 1 1
      Examples/AdvDemos/GLSViewer/Source/fMain.pas
  3. 3 3
      Packages/GLScene_Cg_RT.dpk
  4. 3 3
      Packages/GLScene_Cg_RT.dproj
  5. 31 31
      Packages/GLScene_RT.dpk
  6. 30 31
      Packages/GLScene_RT.dproj
  7. 3 3
      Packagex/GLArena_RT.dpk
  8. 4 4
      Packagex/GLArena_RT.dproj
  9. 0 0
      Source/Common/Formats.DDSImage.pas
  10. 0 0
      Source/Common/Formats.MD2.pas
  11. 1 2
      Source/Common/Formats.MD3.pas
  12. 1 1
      Source/Common/Scena.RGBE.pas
  13. 1 1
      Source/FMX/GLSLx.TextureShaders.pas
  14. 1 1
      Source/FMX/GLX.BaseClasses.pas
  15. 52 52
      Source/FMX/GLX.File3DS.pas
  16. 8 8
      Source/FMX/GLX.File3DSSceneObjects.pas
  17. 4 4
      Source/FMX/GLX.FileOBJ.pas
  18. 4 4
      Source/FMX/GLX.Gui.pas
  19. 4 4
      Source/FMX/GLX.LinePFX.pas
  20. 8 8
      Source/FMX/GLX.Material.pas
  21. 1 1
      Source/FMX/GLX.MaterialMultiProxy.pas
  22. 8 8
      Source/FMX/GLX.ParametricSurfaces.pas
  23. 8 8
      Source/FMX/GLX.ParticleFX.pas
  24. 110 113
      Source/FMX/GLX.PersistentClasses.pas
  25. 12 12
      Source/FMX/GLX.Ragdoll.pas
  26. 8 8
      Source/FMX/GLX.TilePlane.pas
  27. 70 70
      Source/FMX/GLX.VectorFileObjects.pas
  28. 8 8
      Source/FMX/GLX.VectorLists.pas
  29. 12 12
      Source/FMX/GLX.VerletTypes.pas
  30. 1 1
      Source/FMX/GLX.XCollection.pas
  31. 16 16
      Source/FMX/Physix.ODESkeletonColliders.pas
  32. 0 251
      Source/GLS.FileGL2.pas
  33. 4 4
      Source/GLS.FileOBJ.pas
  34. 3 3
      Source/GLS.Imposter.pas
  35. 4 4
      Source/GLS.LinePFX.pas
  36. 8 8
      Source/GLS.Material.pas
  37. 11 11
      Source/GLS.MaterialEx.pas
  38. 1 1
      Source/GLS.MaterialMultiProxy.pas
  39. 3 3
      Source/GLS.MeshUtils.pas
  40. 1 1
      Source/GLS.MultiPolygon.pas
  41. 8 8
      Source/GLS.ParametricSurfaces.pas
  42. 12 12
      Source/GLS.ParticleFX.pas
  43. 0 1
      Source/GLS.PerlinPFX.pas
  44. 6 6
      Source/GLS.PolygonTesselation.pas
  45. 14 14
      Source/GLS.Ragdoll.pas
  46. 2 2
      Source/GLS.RenderContextInfo.pas
  47. 1 1
      Source/GLS.Selection.pas
  48. 2 2
      Source/GLS.ShadowVolume.pas
  49. 3 3
      Source/GLS.SpacePartition.pas
  50. 12 12
      Source/GLS.TilePlane.pas
  51. 82 82
      Source/GLS.VectorFileObjects.pas
  52. 11 11
      Source/GLS.VectorLists.pas
  53. 12 12
      Source/GLS.VerletTypes.pas
  54. 2 2
      Source/GLS.WaterPlane.pas
  55. 1 1
      Source/GLS.XCollection.pas
  56. 1 1
      Source/GLSL.TextureShaders.pas
  57. 2 2
      Source/Physics.ODEManager.pas
  58. 16 16
      Source/Physics.ODESkeletonColliders.pas
  59. 2 2
      Source/VCL/CUDA.APIComps.pas
  60. 0 0
      Source/VCL/CUDA.Compiler.pas
  61. 0 0
      Source/VCL/CUDA.Context.pas
  62. 0 0
      Source/VCL/CUDA.EditorFm.dfm
  63. 0 0
      Source/VCL/CUDA.EditorFm.pas
  64. 0 0
      Source/VCL/CUDA.FFTPlan.pas
  65. 0 0
      Source/VCL/CUDA.Graphics.pas
  66. 0 0
      Source/VCL/CUDA.PropEditors.pas
  67. 0 0
      Source/VCL/CUDA.Register.pas
  68. 0 0
      Source/VCL/Cg.BombShader.pas
  69. 0 0
      Source/VCL/Cg.PostTransformationShader.pas
  70. 0 0
      Source/VCL/Cg.Register.pas
  71. 0 0
      Source/VCL/Cg.Shader.pas
  72. 0 0
      Source/VCL/Formats.B3D.pas
  73. 2 2
      Source/VCL/Formats.HDRImage.pas
  74. 0 0
      Source/VCL/Formats.OCT.pas
  75. 1 1
      Source/VCL/Formats.TGA.pas
  76. 0 0
      Source/VCL/Formats.VRML.pas
  77. 2 2
      Source/VCL/Formats.X.pas
  78. 1 1
      Source/VCL/GLS.ArchiveManager.pas
  79. 1 1
      Source/VCL/GLS.BaseClasses.pas
  80. 0 0
      Source/VCL/GLS.BaseMeshSilhouette.pas
  81. 0 0
      Source/VCL/GLS.Behaviours.pas
  82. 4 4
      Source/VCL/GLS.BitmapFont.pas
  83. 4 4
      Source/VCL/GLS.FBORenderer.pas
  84. 1 1
      Source/VCL/GLS.Feedback.pas
  85. 8 6
      Source/VCL/GLS.File3DPDF.pas
  86. 54 54
      Source/VCL/GLS.File3DS.pas
  87. 13 11
      Source/VCL/GLS.File3DSSceneObjects.pas
  88. 0 0
      Source/VCL/GLS.FileASE.pas
  89. 8 6
      Source/VCL/GLS.FileB3D.pas
  90. 47 48
      Source/VCL/GLS.FileBMP.pas
  91. 1 1
      Source/VCL/GLS.FileDDS.pas
  92. 3 2
      Source/VCL/GLS.FileDEL.pas
  93. 1 1
      Source/VCL/GLS.FileDXF.pas
  94. 271 0
      Source/VCL/GLS.FileGL2.pas
  95. 0 0
      Source/VCL/GLS.FileGLTF.pas
  96. 6 6
      Source/VCL/GLS.FileHDR.pas
  97. 1 1
      Source/VCL/GLS.FileTIN.pas
  98. 2 2
      Source/VCL/GLS.FileVOR.pas
  99. 0 0
      Source/VCL/GLS.GameMenu.pas
  100. 1 1
      Source/VCL/GLS.Graphics.pas

+ 2 - 2
Examples/AdvDemos/Forest/fForestD.pas

@@ -111,7 +111,7 @@ type
     Path: TFileName;
     TestTree: TGLTree;
     TreesShown: Integer;
-    nearTrees: TPersistentObjectList;
+    nearTrees: TGLPersistentObjectList;
     Imposter: TImposter;
     densityBitmap: TBitmap;
     mirrorTexture: TGLTextureHandle;
@@ -217,7 +217,7 @@ begin
   SetCursorPos(lmp.X, lmp.Y);
   ShowCursor(False);
 
-  nearTrees := TPersistentObjectList.Create;
+  nearTrees := TGLPersistentObjectList.Create;
 
   camTurn := -60;
   enableRectReflection := False;

+ 1 - 1
Examples/AdvDemos/GLSViewer/Source/fMain.pas

@@ -812,7 +812,7 @@ var
   I: Integer;
   mo: TGLMeshObject;
   fg: TFGVertexIndexList;
-  strips: TPersistentObjectList;
+  strips: TGLPersistentObjectList;
 begin
   acConvertToTriangles.Execute;
   mo := ffObject.MeshObjects[0];

+ 3 - 3
Packages/GLScene_Cg_RT.dpk

@@ -38,8 +38,8 @@ requires
 contains
   Cg.GL in '..\Source\Common\Cg.GL.pas',
   Cg.Import in '..\Source\Common\Cg.Import.pas',
-  Cg.Shader in '..\Source\Cg.Shader.pas',
-  Cg.BombShader in '..\Source\Cg.BombShader.pas',
-  Cg.PostTransformationShader in '..\Source\Cg.PostTransformationShader.pas';
+  Cg.Shader in '..\Source\Vcl\Cg.Shader.pas',
+  Cg.BombShader in '..\Source\Vcl\Cg.BombShader.pas',
+  Cg.PostTransformationShader in '..\Source\Vcl\Cg.PostTransformationShader.pas';
 
 end.

+ 3 - 3
Packages/GLScene_Cg_RT.dproj

@@ -127,9 +127,9 @@
         <DCCReference Include="GLScene_RT.dcp"/>
         <DCCReference Include="..\Source\Common\Cg.GL.pas"/>
         <DCCReference Include="..\Source\Common\Cg.Import.pas"/>
-        <DCCReference Include="..\Source\Cg.Shader.pas"/>
-        <DCCReference Include="..\Source\Cg.BombShader.pas"/>
-        <DCCReference Include="..\Source\Cg.PostTransformationShader.pas"/>
+        <DCCReference Include="..\Source\Vcl\Cg.Shader.pas"/>
+        <DCCReference Include="..\Source\Vcl\Cg.BombShader.pas"/>
+        <DCCReference Include="..\Source\Vcl\Cg.PostTransformationShader.pas"/>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>

+ 31 - 31
Packages/GLScene_RT.dpk

@@ -42,19 +42,19 @@ contains
   Formats.DXTC in '..\Source\Common\Formats.DXTC.pas',
   Formats.m3DS in '..\Source\Common\Formats.m3DS.pas',
   ModuleLoader in '..\Source\Common\ModuleLoader.pas',
-  Formats.DDSImage in '..\Source\Formats.DDSImage.pas',
-  Formats.HDRImage in '..\Source\Formats.HDRImage.pas',
+  Formats.DDSImage in '..\Source\Common\Formats.DDSImage.pas',
+  Formats.HDRImage in '..\Source\VCL\Formats.HDRImage.pas',
   Formats.Q3BSP in '..\Source\Common\Formats.Q3BSP.pas',
-  Formats.B3D in '..\Source\Formats.B3D.pas',
+  Formats.B3D in '..\Source\VCL\Formats.B3D.pas',
   Formats.GL2 in '..\Source\Common\Formats.GL2.pas',
   Formats.LWO in '..\Source\Common\Formats.LWO.pas',
-  Formats.MD2 in '..\Source\Formats.MD2.pas',
-  Formats.MD3 in '..\Source\Formats.MD3.pas',
-  Formats.OCT in '..\Source\Formats.OCT.pas',
-  Formats.TGA in '..\Source\Formats.TGA.pas',
-  Formats.X in '..\Source\Formats.X.pas',
+  Formats.MD2 in '..\Source\Common\Formats.MD2.pas',
+  Formats.MD3 in '..\Source\Common\Formats.MD3.pas',
+  Formats.OCT in '..\Source\VCL\Formats.OCT.pas',
+  Formats.TGA in '..\Source\VCL\Formats.TGA.pas',
+  Formats.X in '..\Source\VCL\Formats.X.pas',
   Formats.VFW in '..\Source\Common\Formats.VFW.pas',
-  Formats.VRML in '..\Source\Formats.VRML.pas',
+  Formats.VRML in '..\Source\VCL\Formats.VRML.pas',
   GLS.AVIRecorder in '..\Source\VCL\GLS.AVIRecorder.pas',
   GLS.AnimatedSprite in '..\Source\VCL\GLS.AnimatedSprite.pas',
   Scena.AnimationUtils in '..\Source\Common\Scena.AnimationUtils.pas',
@@ -64,9 +64,9 @@ contains
   GLS.Atmosphere in '..\Source\VCL\GLS.Atmosphere.pas',
   GLS.ArchiveManager in '..\Source\VCL\GLS.ArchiveManager.pas',
   GLS.BaseClasses in '..\Source\VCL\GLS.BaseClasses.pas',
-  GLS.BaseMeshSilhouette in '..\Source\GLS.BaseMeshSilhouette.pas',
-  GLS.Behaviours in '..\Source\GLS.Behaviours.pas',
-  GLS.BitmapFont in '..\Source\GLS.BitmapFont.pas',
+  GLS.BaseMeshSilhouette in '..\Source\VCL\GLS.BaseMeshSilhouette.pas',
+  GLS.Behaviours in '..\Source\VCL\GLS.Behaviours.pas',
+  GLS.BitmapFont in '..\Source\VCL\GLS.BitmapFont.pas',
   GLS.Blur in '..\Source\GLS.Blur.pas',
   GLS.BumpmapHDS in '..\Source\GLS.BumpmapHDS.pas',
   GLS.Cadencer in '..\Source\VCL\GLS.Cadencer.pas',
@@ -85,22 +85,22 @@ contains
   GLS.EllipseCollision in '..\Source\GLS.EllipseCollision.pas',
   GLS.ExplosionFx in '..\Source\GLS.ExplosionFx.pas',
   GLS.Extrusion in '..\Source\GLS.Extrusion.pas',
-  GLS.FBORenderer in '..\Source\GLS.FBORenderer.pas',
+  GLS.FBORenderer in '..\Source\VCL\GLS.FBORenderer.pas',
   GLS.FPSMovement in '..\Source\GLS.FPSMovement.pas',
-  GLS.Feedback in '..\Source\GLS.Feedback.pas',
+  GLS.Feedback in '..\Source\VCL\GLS.Feedback.pas',
   GLS.File3DS in '..\Source\VCL\GLS.File3DS.pas',
-  GLS.File3DSSceneObjects in '..\Source\GLS.File3DSSceneObjects.pas',
-  GLS.File3DPDF in '..\Source\GLS.File3DPDF.pas',
-  GLS.FileASE in '..\Source\GLS.FileASE.pas',
-  GLS.FileB3D in '..\Source\GLS.FileB3D.pas',
-  GLS.FileBMP in '..\Source\GLS.FileBMP.pas',
+  GLS.File3DSSceneObjects in '..\Source\VCL\GLS.File3DSSceneObjects.pas',
+  GLS.File3DPDF in '..\Source\VCL\GLS.File3DPDF.pas',
+  GLS.FileASE in '..\Source\VCL\GLS.FileASE.pas',
+  GLS.FileB3D in '..\Source\VCL\GLS.FileB3D.pas',
+  GLS.FileBMP in '..\Source\VCL\GLS.FileBMP.pas',
   GLS.FileDDS in '..\Source\VCL\GLS.FileDDS.pas',
-  GLS.FileDXF in '..\Source\GLS.FileDXF.pas',
-  GLS.FileGL2 in '..\Source\GLS.FileGL2.pas',
-  GLS.FileGLTF in '..\Source\GLS.FileGLTF.pas',
+  GLS.FileDXF in '..\Source\VCL\GLS.FileDXF.pas',
+  GLS.FileGL2 in '..\Source\VCL\GLS.FileGL2.pas',
+  GLS.FileGLTF in '..\Source\VCL\GLS.FileGLTF.pas',
   GLS.FileGRD in '..\Source\GLS.FileGRD.pas',
   GLS.FileGTS in '..\Source\GLS.FileGTS.pas',
-  GLS.FileHDR in '..\Source\GLS.FileHDR.pas',
+  GLS.FileHDR in '..\Source\VCL\GLS.FileHDR.pas',
   GLS.FileJPEG in '..\Source\GLS.FileJPEG.pas',
   GLS.FileLMTS in '..\Source\GLS.FileLMTS.pas',
   GLS.FileLWO in '..\Source\GLS.FileLWO.pas',
@@ -122,18 +122,18 @@ contains
   GLS.FileSMD in '..\Source\GLS.FileSMD.pas',
   GLS.FileSTL in '..\Source\GLS.FileSTL.pas',
   GLS.FileTGA in '..\Source\GLS.FileTGA.pas',
-  GLS.FileTIN in '..\Source\GLS.FileTIN.pas',
+  GLS.FileTIN in '..\Source\VCL\GLS.FileTIN.pas',
   GLS.FileVfsPAK in '..\Source\GLS.FileVfsPAK.pas',
   GLS.FileVRML in '..\Source\GLS.FileVRML.pas',
   GLS.FileWAV in '..\Source\GLS.FileWAV.pas',
   GLS.FileX in '..\Source\GLS.FileX.pas',
   GLS.FireFX in '..\Source\GLS.FireFX.pas',
   GLS.FileZLIB in '..\Source\GLS.FileZLIB.pas',
-  GLS.FileDEL in '..\Source\GLS.FileDEL.pas',
-  GLS.FileVOR in '..\Source\GLS.FileVOR.pas',
+  GLS.FileDEL in '..\Source\VCL\GLS.FileDEL.pas',
+  GLS.FileVOR in '..\Source\VCL\GLS.FileVOR.pas',
   GLS.FullScreenViewer in '..\Source\GLS.FullScreenViewer.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
-  GLS.GameMenu in '..\Source\GLS.GameMenu.pas',
+  GLS.GameMenu in '..\Source\VCL\GLS.GameMenu.pas',
   GLS.GeomObjects in '..\Source\VCL\GLS.GeomObjects.pas',
   GLS.GeometryBB in '..\Source\GLS.GeometryBB.pas',
   Scena.Generics in '..\Source\Common\Scena.Generics.pas',
@@ -185,7 +185,7 @@ contains
   GLS.ProxyObjects in '..\Source\GLS.ProxyObjects.pas',
   GLS.Ragdoll in '..\Source\GLS.Ragdoll.pas',
   GLS.RandomHDS in '..\Source\GLS.RandomHDS.pas',
-  GLS.RGBE in '..\Source\GLS.RGBE.pas',
+  Scena.RGBE in '..\Source\Common\Scena.RGBE.pas',
   GLS.RenderContextInfo in '..\Source\GLS.RenderContextInfo.pas',
   GLS.ROAMPatch in '..\Source\GLS.ROAMPatch.pas',
   GLSL.AsmShader in '..\Source\GLSL.AsmShader.pas',
@@ -206,6 +206,7 @@ contains
   GLS.Language in '..\Source\VCL\GLS.Language.pas',
   GLS.Memo in '..\Source\VCL\GLS.Memo.pas',
   GLS.ProjectedTextures in '..\Source\GLS.ProjectedTextures.pas',
+  GLS.PersistentClasses in '..\Source\VCL\GLS.PersistentClasses.pas',
   GLS.Scene in '..\Source\VCL\GLS.Scene.pas',
   GLS.SceneForm in '..\Source\VCL\GLS.SceneForm.pas',
   GLS.Screen in '..\Source\VCL\GLS.Screen.pas',
@@ -250,10 +251,10 @@ contains
   GLS.ScriptBase in '..\Source\GLS.ScriptBase.pas',
   GLS.XCollection in '..\Source\GLS.XCollection.pas',
   GLS.XOpenGL in '..\Source\GLS.XOpenGL.pas',
+  GLS.InitOpenGL in '..\Source\VCL\GLS.InitOpenGL.pas',
   PasGLTF in '..\Source\Common\PasGLTF.pas',
   PasJSON in '..\Source\Common\PasJSON.pas',
   PasDblStrUtils in '..\Source\Common\PasDblStrUtils.pas',
-  GLS.PersistentClasses in '..\Source\GLS.PersistentClasses.pas',
   Scena.OpenGLAdapter in '..\Source\Common\Scena.OpenGLAdapter.pas',
   Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
   Scena.Polynomials in '..\Source\Common\Scena.Polynomials.pas',
@@ -265,8 +266,7 @@ contains
   Scena.VectorGeometry in '..\Source\Common\Scena.VectorGeometry.pas',
   Scena.VectorTypes in '..\Source\Common\Scena.VectorTypes.pas',
   Scena.VectorTypesExt in '..\Source\Common\Scena.VectorTypesExt.pas',
-  Scena.Logger in '..\Source\Common\Scena.Logger.pas',
-  GLS.InitOpenGL in '..\Source\VCL\GLS.InitOpenGL.pas';
+  Scena.Logger in '..\Source\Common\Scena.Logger.pas';
 
 end.
 

+ 30 - 31
Packages/GLScene_RT.dproj

@@ -146,19 +146,19 @@
         <DCCReference Include="..\Source\Common\Formats.DXTC.pas"/>
         <DCCReference Include="..\Source\Common\Formats.m3DS.pas"/>
         <DCCReference Include="..\Source\Common\ModuleLoader.pas"/>
-        <DCCReference Include="..\Source\Formats.DDSImage.pas"/>
-        <DCCReference Include="..\Source\Formats.HDRImage.pas"/>
+        <DCCReference Include="..\Source\Common\Formats.DDSImage.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.HDRImage.pas"/>
         <DCCReference Include="..\Source\Common\Formats.Q3BSP.pas"/>
-        <DCCReference Include="..\Source\Formats.B3D.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.B3D.pas"/>
         <DCCReference Include="..\Source\Common\Formats.GL2.pas"/>
         <DCCReference Include="..\Source\Common\Formats.LWO.pas"/>
-        <DCCReference Include="..\Source\Formats.MD2.pas"/>
-        <DCCReference Include="..\Source\Formats.MD3.pas"/>
-        <DCCReference Include="..\Source\Formats.OCT.pas"/>
-        <DCCReference Include="..\Source\Formats.TGA.pas"/>
-        <DCCReference Include="..\Source\Formats.X.pas"/>
+        <DCCReference Include="..\Source\Common\Formats.MD2.pas"/>
+        <DCCReference Include="..\Source\Common\Formats.MD3.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.OCT.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.TGA.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.X.pas"/>
         <DCCReference Include="..\Source\Common\Formats.VFW.pas"/>
-        <DCCReference Include="..\Source\Formats.VRML.pas"/>
+        <DCCReference Include="..\Source\VCL\Formats.VRML.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.AVIRecorder.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.AnimatedSprite.pas"/>
         <DCCReference Include="..\Source\Common\Scena.AnimationUtils.pas"/>
@@ -168,9 +168,9 @@
         <DCCReference Include="..\Source\VCL\GLS.Atmosphere.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.ArchiveManager.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.BaseClasses.pas"/>
-        <DCCReference Include="..\Source\GLS.BaseMeshSilhouette.pas"/>
-        <DCCReference Include="..\Source\GLS.Behaviours.pas"/>
-        <DCCReference Include="..\Source\GLS.BitmapFont.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.BaseMeshSilhouette.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Behaviours.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.BitmapFont.pas"/>
         <DCCReference Include="..\Source\GLS.Blur.pas"/>
         <DCCReference Include="..\Source\GLS.BumpmapHDS.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Cadencer.pas"/>
@@ -189,22 +189,22 @@
         <DCCReference Include="..\Source\GLS.EllipseCollision.pas"/>
         <DCCReference Include="..\Source\GLS.ExplosionFx.pas"/>
         <DCCReference Include="..\Source\GLS.Extrusion.pas"/>
-        <DCCReference Include="..\Source\GLS.FBORenderer.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FBORenderer.pas"/>
         <DCCReference Include="..\Source\GLS.FPSMovement.pas"/>
-        <DCCReference Include="..\Source\GLS.Feedback.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.Feedback.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.File3DS.pas"/>
-        <DCCReference Include="..\Source\GLS.File3DSSceneObjects.pas"/>
-        <DCCReference Include="..\Source\GLS.File3DPDF.pas"/>
-        <DCCReference Include="..\Source\GLS.FileASE.pas"/>
-        <DCCReference Include="..\Source\GLS.FileB3D.pas"/>
-        <DCCReference Include="..\Source\GLS.FileBMP.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.File3DSSceneObjects.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.File3DPDF.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileASE.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileB3D.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileBMP.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.FileDDS.pas"/>
-        <DCCReference Include="..\Source\GLS.FileDXF.pas"/>
-        <DCCReference Include="..\Source\GLS.FileGL2.pas"/>
-        <DCCReference Include="..\Source\GLS.FileGLTF.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileDXF.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileGL2.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileGLTF.pas"/>
         <DCCReference Include="..\Source\GLS.FileGRD.pas"/>
         <DCCReference Include="..\Source\GLS.FileGTS.pas"/>
-        <DCCReference Include="..\Source\GLS.FileHDR.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileHDR.pas"/>
         <DCCReference Include="..\Source\GLS.FileJPEG.pas"/>
         <DCCReference Include="..\Source\GLS.FileLMTS.pas"/>
         <DCCReference Include="..\Source\GLS.FileLWO.pas"/>
@@ -226,18 +226,18 @@
         <DCCReference Include="..\Source\GLS.FileSMD.pas"/>
         <DCCReference Include="..\Source\GLS.FileSTL.pas"/>
         <DCCReference Include="..\Source\GLS.FileTGA.pas"/>
-        <DCCReference Include="..\Source\GLS.FileTIN.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileTIN.pas"/>
         <DCCReference Include="..\Source\GLS.FileVfsPAK.pas"/>
         <DCCReference Include="..\Source\GLS.FileVRML.pas"/>
         <DCCReference Include="..\Source\GLS.FileWAV.pas"/>
         <DCCReference Include="..\Source\GLS.FileX.pas"/>
         <DCCReference Include="..\Source\GLS.FireFX.pas"/>
         <DCCReference Include="..\Source\GLS.FileZLIB.pas"/>
-        <DCCReference Include="..\Source\GLS.FileDEL.pas"/>
-        <DCCReference Include="..\Source\GLS.FileVOR.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileDEL.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.FileVOR.pas"/>
         <DCCReference Include="..\Source\GLS.FullScreenViewer.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
-        <DCCReference Include="..\Source\GLS.GameMenu.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.GameMenu.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.GeomObjects.pas"/>
         <DCCReference Include="..\Source\GLS.GeometryBB.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
@@ -289,7 +289,7 @@
         <DCCReference Include="..\Source\GLS.ProxyObjects.pas"/>
         <DCCReference Include="..\Source\GLS.Ragdoll.pas"/>
         <DCCReference Include="..\Source\GLS.RandomHDS.pas"/>
-        <DCCReference Include="..\Source\GLS.RGBE.pas"/>
+        <DCCReference Include="..\Source\Common\Scena.RGBE.pas"/>
         <DCCReference Include="..\Source\GLS.RenderContextInfo.pas"/>
         <DCCReference Include="..\Source\GLS.ROAMPatch.pas"/>
         <DCCReference Include="..\Source\GLSL.AsmShader.pas"/>
@@ -310,6 +310,7 @@
         <DCCReference Include="..\Source\VCL\GLS.Language.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Memo.pas"/>
         <DCCReference Include="..\Source\GLS.ProjectedTextures.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.PersistentClasses.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Scene.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.SceneForm.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Screen.pas"/>
@@ -354,10 +355,10 @@
         <DCCReference Include="..\Source\GLS.ScriptBase.pas"/>
         <DCCReference Include="..\Source\GLS.XCollection.pas"/>
         <DCCReference Include="..\Source\GLS.XOpenGL.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
         <DCCReference Include="..\Source\Common\PasGLTF.pas"/>
         <DCCReference Include="..\Source\Common\PasJSON.pas"/>
         <DCCReference Include="..\Source\Common\PasDblStrUtils.pas"/>
-        <DCCReference Include="..\Source\GLS.PersistentClasses.pas"/>
         <DCCReference Include="..\Source\Common\Scena.OpenGLAdapter.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Polynomials.pas"/>
@@ -370,8 +371,6 @@
         <DCCReference Include="..\Source\Common\Scena.VectorTypes.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypesExt.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Logger.pas"/>
-        <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
-        <None Include="..\Source\Common\Scena.inc"/>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>

+ 3 - 3
Packagex/GLArena_RT.dpk

@@ -45,11 +45,9 @@ contains
   Formatx.B3D in '..\Source\FMX\Formatx.B3D.pas',
   Formatx.DDSImage in '..\Source\FMX\Formatx.DDSImage.pas',
   Formatx.HDRImage in '..\Source\FMX\Formatx.HDRImage.pas',
-  Formatx.MD3 in '..\Source\FMX\Formatx.MD3.pas',
   Formatx.Q3MD3 in '..\Source\FMX\Formatx.Q3MD3.pas',
   Formatx.OCT in '..\Source\FMX\Formatx.OCT.pas',
   Formatx.X in '..\Source\FMX\Formatx.X.pas',
-  Formatx.MD2 in '..\Source\FMX\Formatx.MD2.pas',
   Formatx.TGA in '..\Source\FMX\Formatx.TGA.pas',
   Formatx.VRML in '..\Source\FMX\Formatx.VRML.pas',
   Formatx.VfsPAK in '..\Source\FMX\Formatx.VfsPAK.pas',
@@ -257,6 +255,8 @@ contains
   Formats.Q3BSP in '..\Source\Common\Formats.Q3BSP.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
   Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
-  Scena.Generics in '..\Source\Common\Scena.Generics.pas';
+  Scena.Generics in '..\Source\Common\Scena.Generics.pas',
+  Formats.MD2 in '..\Source\Common\Formats.MD2.pas',
+  Formats.MD3 in '..\Source\Common\Formats.MD3.pas';
 
 end.

+ 4 - 4
Packagex/GLArena_RT.dproj

@@ -165,11 +165,9 @@
         <DCCReference Include="..\Source\FMX\Formatx.B3D.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.DDSImage.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.HDRImage.pas"/>
-        <DCCReference Include="..\Source\FMX\Formatx.MD3.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.Q3MD3.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.OCT.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.X.pas"/>
-        <DCCReference Include="..\Source\FMX\Formatx.MD2.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.TGA.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VRML.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VfsPAK.pas"/>
@@ -378,6 +376,8 @@
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
+        <DCCReference Include="..\Source\Common\Formats.MD2.pas"/>
+        <DCCReference Include="..\Source\Common\Formats.MD3.pas"/>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -416,12 +416,12 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                     </Platform>

+ 0 - 0
Source/Formats.DDSImage.pas → Source/Common/Formats.DDSImage.pas


+ 0 - 0
Source/Formats.MD2.pas → Source/Common/Formats.MD2.pas


+ 1 - 2
Source/Formats.MD3.pas → Source/Common/Formats.MD3.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit Formats.MD3;
 
 (* File loading methods for the MD3 file format *)
@@ -130,7 +129,7 @@ begin
 
   // Read in the Tags
   SetLength(Tags,ModelHeader.numFrames*ModelHeader.numTags);
-  if ModelHeader.numTags > 0 then 
+  if ModelHeader.numTags > 0 then
      aStream.Read(Tags[0],sizeof(TMD3Tag)*ModelHeader.numFrames*ModelHeader.numTags);
 
   // Read in the Mesh data

+ 1 - 1
Source/GLS.RGBE.pas → Source/Common/Scena.RGBE.pas

@@ -1,7 +1,7 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-unit GLS.RGBE;
+unit Scena.RGBE;
 
 (* GLScene RGBE utils *)
 

+ 1 - 1
Source/FMX/GLSLx.TextureShaders.pas

@@ -43,7 +43,7 @@ uses
 type
   TgxShaderTextureSharing = class;
 
-  TgxShaderTextureSharingMaterial = class(TInterfacedCollectionItem, IgxMaterialLibrarySupported)
+  TgxShaderTextureSharingMaterial = class(TgxInterfacedCollectionItem, IgxMaterialLibrarySupported)
   private
     FTextureMatrix: TMatrix4f;
     FNeedToUpdateTextureMatrix: Boolean;

+ 1 - 1
Source/FMX/GLX.BaseClasses.pas

@@ -37,7 +37,7 @@ type
   end;
 
   // An abstract class describing the "update" interface.
-  TgxUpdateAbleObject = class(TInterfacedPersistent, IgxNotifyAble)
+  TgxUpdateAbleObject = class(TgxInterfacedPersistent, IgxNotifyAble)
   private
     FOwner: TPersistent;
     FUpdating: Integer;

+ 52 - 52
Source/FMX/GLX.File3DS.pas

@@ -61,8 +61,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); virtual;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); virtual; abstract;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSScaleAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -72,8 +72,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSRotationAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -83,8 +83,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSPositionAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -94,8 +94,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSColorAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -105,8 +105,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TTgxFile3DSPositionAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -116,8 +116,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSSpotLightCutOffAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -127,8 +127,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSLightHotSpotAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -138,8 +138,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSRollAnimationKeys = class(TgxFile3DSAnimationKeys)
@@ -149,8 +149,8 @@ type
     procedure LoadData(const ANumKeys: integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TgxFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
   end;
 
   TgxFile3DSAnimationKeyList = class(TgxPersistentObject)
@@ -163,8 +163,8 @@ type
     procedure ClearKeys;
 
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -188,8 +188,8 @@ type
     procedure GetExtents(out min, max: TAffineVector); override;
     function ExtractTriangles(texCoords: TgxAffineVectorList = nil; normals: TgxAffineVectorList = nil): TgxAffineVectorList;
       override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     procedure Assign(Source: TPersistent); override;
     constructor Create; override;
     destructor Destroy; override;
@@ -217,8 +217,8 @@ type
     procedure LoadAnimation(const AData: Pointer); override;
     procedure SetFrame(const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -241,8 +241,8 @@ type
     procedure LoadData(Owner: TgxBaseMesh; AData: PCamera3DS);
     procedure LoadAnimation(const AData: Pointer); override;
     procedure SetFrame(const AFrame: real); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -508,14 +508,14 @@ begin
     inherited Assign(Source);
 end;
 
-procedure TgxFile3DSAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   Writer.WriteInteger(FNumKeys);
   if FNumKeys > 0 then
     Writer.Write(FKeys[0], FNumKeys * SizeOf(TKeyHeader3DS));
 end;
 
-procedure TgxFile3DSAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   FNumKeys := Reader.ReadInteger;
   SetLength(FKeys, FNumKeys);
@@ -574,7 +574,7 @@ begin
     FScale[I] := (Source as TgxFile3DSScaleAnimationKeys).Fscale[I];
 end;
 
-procedure TgxFile3DSScaleAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSScaleAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
 
@@ -582,7 +582,7 @@ begin
     Writer.Write(FScale[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TgxFile3DSScaleAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSScaleAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -650,14 +650,14 @@ begin
     FRot[I] := (Source as TgxFile3DSRotationAnimationKeys).FRot[I];
 end;
 
-procedure TgxFile3DSRotationAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSRotationAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FRot[0], FNumKeys * SizeOf(TKFRotKey3DS));
 end;
 
-procedure TgxFile3DSRotationAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSRotationAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
   SetLength(FRot, FNumKeys);
@@ -700,14 +700,14 @@ begin
     FPos[I] := (Source as TgxFile3DSPositionAnimationKeys).FPos[I];
 end;
 
-procedure TgxFile3DSPositionAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSPositionAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FPos[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TgxFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -745,14 +745,14 @@ begin
     FCol[I] := (Source as TgxFile3DSColorAnimationKeys).FCol[I];
 end;
 
-procedure TgxFile3DSColorAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSColorAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FCol[0], FNumKeys * SizeOf(TFColor3DS));
 end;
 
-procedure TgxFile3DSColorAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSColorAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -796,14 +796,14 @@ begin
     FTPos[I] := (Source as TTgxFile3DSPositionAnimationKeys).FTPos[I];
 end;
 
-procedure TTgxFile3DSPositionAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TTgxFile3DSPositionAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FTPos[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TTgxFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TTgxFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -841,14 +841,14 @@ begin
     FFall[I] := (Source as TgxFile3DSSpotLightCutOffAnimationKeys).FFall[I];
 end;
 
-procedure TgxFile3DSSpotLightCutOffAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSSpotLightCutOffAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FFall[0], FNumKeys * SizeOf(single));
 end;
 
-procedure TgxFile3DSSpotLightCutOffAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSSpotLightCutOffAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -885,14 +885,14 @@ begin
     FHot[I] := (Source as TgxFile3DSLightHotSpotAnimationKeys).FHot[I];
 end;
 
-procedure TgxFile3DSLightHotSpotAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSLightHotSpotAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FHot[0], FNumKeys * SizeOf(single));
 end;
 
-procedure TgxFile3DSLightHotSpotAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSLightHotSpotAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
   SetLength(FHot, FNumKeys);
@@ -928,14 +928,14 @@ begin
     FRoll[I] := (Source as TgxFile3DSRollAnimationKeys).FRoll[I];
 end;
 
-procedure TgxFile3DSRollAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSRollAnimationKeys.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited;
   if FNumKeys > 0 then
     Writer.Write(FRoll[0], FNumKeys * SizeOf(single));
 end;
 
-procedure TgxFile3DSRollAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSRollAnimationKeys.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
   SetLength(FRoll, FNumKeys);
@@ -992,7 +992,7 @@ begin
     inherited Assign(Source);
 end;
 
-procedure TgxFile3DSAnimationKeyList.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSAnimationKeyList.WriteToFiler(Writer: TgxVirtualWriter);
 var
   I: integer;
   Val: TgxFile3DSAnimKeysClassType;
@@ -1006,7 +1006,7 @@ begin
   end;
 end;
 
-procedure TgxFile3DSAnimationKeyList.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSAnimationKeyList.ReadFromFiler(Reader: TgxVirtualReader);
 var
   I, cnt: integer;
   Val: TgxFile3DSAnimKeysClassType;
@@ -1121,7 +1121,7 @@ begin
   end;
 end;
 
-procedure TgxFile3DSDummyObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSDummyObject.WriteToFiler(Writer: TgxVirtualWriter);
 var
   str: string;
 begin
@@ -1136,7 +1136,7 @@ begin
   FAnimList.WriteToFiler(Writer);
 end;
 
-procedure TgxFile3DSDummyObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSDummyObject.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -1305,7 +1305,7 @@ begin
     FlightSrc.Assign((Source as TgxFile3DSOmniLightObject).FLightSrc);
 end;
 
-procedure TgxFile3DSOmniLightObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSOmniLightObject.WriteToFiler(Writer: TgxVirtualWriter);
 var
   str: string;
 begin
@@ -1318,7 +1318,7 @@ begin
   Writer.WriteString(str);
 end;
 
-procedure TgxFile3DSOmniLightObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSOmniLightObject.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -1457,7 +1457,7 @@ begin
   FTargetObj.Position.SetPoint(FAnimTransf.TargetPos);
 end;
 
-procedure TgxFile3DSCameraObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxFile3DSCameraObject.WriteToFiler(Writer: TgxVirtualWriter);
 var
   str: string;
 begin
@@ -1470,7 +1470,7 @@ begin
   Writer.WriteString(str);
 end;
 
-procedure TgxFile3DSCameraObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxFile3DSCameraObject.ReadFromFiler(Reader: TgxVirtualReader);
 begin
   inherited;
 

+ 8 - 8
Source/FMX/GLX.File3DSSceneObjects.pas

@@ -324,18 +324,18 @@ end;
 
 procedure TgxFile3DSActor.ReadMesh(Stream: TStream);
 var
-  virt: TBinaryReader;
+  virt: TgxBinaryReader;
 begin
-  virt := TBinaryReader.Create(Stream);
+  virt := TgxBinaryReader.Create(Stream);
   MeshOBjects.ReadFromFiler(virt);
   virt.Free;
 end;
 
 procedure TgxFile3DSActor.WriteMesh(Stream: TStream);
 var
-  virt: TBinaryWriter;
+  virt: TgxBinaryWriter;
 begin
-  virt := TBinaryWriter.Create(Stream);
+  virt := TgxBinaryWriter.Create(Stream);
   MeshOBjects.WriteToFiler(virt);
   virt.Free;
 end;
@@ -371,9 +371,9 @@ end;
 procedure TgxFile3DSFreeForm.ReadMesh(Stream: TStream);
 var
   v: TVector4f;
-  virt: TBinaryReader;
+  virt: TgxBinaryReader;
 begin
-  virt := TBinaryReader.Create(Stream);
+  virt := TgxBinaryReader.Create(Stream);
 
   virt.read(FRefMat, sizeof(FRefMat));
   virt.read(v, sizeof(v));
@@ -389,10 +389,10 @@ end;
 
 procedure TgxFile3DSFreeForm.WriteMesh(Stream: TStream);
 var
-  virt: TBinaryWriter;
+  virt: TgxBinaryWriter;
   v: TVector4f;
 begin
-  virt := TBinaryWriter.Create(Stream);
+  virt := TgxBinaryWriter.Create(Stream);
 
   virt.write(FRefMat, sizeof(FRefMat));
   v := S_Rot3DS.AsVector;

+ 4 - 4
Source/FMX/GLX.FileOBJ.pas

@@ -163,8 +163,8 @@ type
     procedure Assign(Source: TPersistent); override;
     constructor CreateOwned(aOwner: TgxFaceGroups); override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Add(VertexIdx, NormalIdx, TexCoordIdx: Integer);
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure AddToTriangles(aList: TgxAffineVectorList; aTexCoords: TgxAffineVectorList = nil;
@@ -1361,7 +1361,7 @@ begin
     inherited;
 end;
 
-procedure TOBJFGVertexNormalTexIndexList.ReadFromFiler(reader: TVirtualReader);
+procedure TOBJFGVertexNormalTexIndexList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1384,7 +1384,7 @@ begin
     RaiseFilerException(archiveVersion);
 end;
 
-procedure TOBJFGVertexNormalTexIndexList.WriteToFiler(writer: TVirtualWriter);
+procedure TOBJFGVertexNormalTexIndexList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do

+ 4 - 4
Source/FMX/GLX.Gui.pas

@@ -510,10 +510,10 @@ var
   TmpElement: TgxGuiElement;
   TmpAlignment: TGUIAlignments;
   Version: Integer;
-  Data: TBinaryReader;
+  Data: TgxBinaryReader;
 
 begin
-  Data := TBinaryReader.Create(Stream);
+  Data := TgxBinaryReader.Create(Stream);
   try
 
     Version := Data.ReadInteger;
@@ -561,10 +561,10 @@ var
   Alignments, XC, YC: Integer;
   TmpElement: TgxGuiElement;
   TmpAlignment: TGUIAlignments;
-  Data: TBinaryWriter;
+  Data: TgxBinaryWriter;
 
 begin
-  Data := TBinaryWriter.Create(Stream);
+  Data := TgxBinaryWriter.Create(Stream);
   try
     Data.WriteInteger(1);
     Data.WriteInteger(FGuiComponents.Count);

+ 4 - 4
Source/FMX/GLX.LinePFX.pas

@@ -33,8 +33,8 @@ type
          FLength : Single;
       protected
       public
-         procedure WriteToFiler(writer : TVirtualWriter); override;
-         procedure ReadFromFiler(reader : TVirtualReader); override;
+         procedure WriteToFiler(writer : TgxVirtualWriter); override;
+         procedure ReadFromFiler(reader : TgxVirtualReader); override;
          { Direction of the line. }
          property Direction : TAffineVector read FDirection write FDirection;
          { Length of the line }
@@ -187,7 +187,7 @@ end;
 // ------------------ TgxLineParticle ------------------
 // ------------------
 
-procedure TgxLineParticle.WriteToFiler(writer : TVirtualWriter);
+procedure TgxLineParticle.WriteToFiler(writer : TgxVirtualWriter);
 begin
    inherited WriteToFiler(writer);
    with writer do begin
@@ -197,7 +197,7 @@ begin
    end;
 end;
 
-procedure TgxLineParticle.ReadFromFiler(reader : TVirtualReader);
+procedure TgxLineParticle.ReadFromFiler(reader : TgxVirtualReader);
 var
    archiveVersion : integer;
 begin

+ 8 - 8
Source/FMX/GLX.Material.pas

@@ -572,8 +572,8 @@ type
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     procedure DestroyHandles;
-    procedure WriteToFiler(writer: TVirtualWriter);
-    procedure ReadFromFiler(reader: TVirtualReader);
+    procedure WriteToFiler(writer: TgxVirtualWriter);
+    procedure ReadFromFiler(reader: TgxVirtualReader);
     procedure SaveToStream(aStream: TStream); virtual;
     procedure LoadFromStream(aStream: TStream); virtual;
     procedure AddMaterialsFromStream(aStream: TStream);
@@ -2320,7 +2320,7 @@ begin
   Result := (FMaterials.Count > 0);
 end;
 
-procedure TgxMaterialLibrary.WriteToFiler(writer: TVirtualWriter);
+procedure TgxMaterialLibrary.WriteToFiler(writer: TgxVirtualWriter);
 var
   i, j: Integer;
   libMat: TgxLibMaterial;
@@ -2488,7 +2488,7 @@ begin
   end;
 end;
 
-procedure TgxMaterialLibrary.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMaterialLibrary.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
   libMat: TgxLibMaterial;
@@ -2661,9 +2661,9 @@ end;
 
 procedure TgxMaterialLibrary.SaveToStream(aStream: TStream);
 var
-  wr: TBinaryWriter;
+  wr: TgxBinaryWriter;
 begin
-  wr := TBinaryWriter.Create(aStream);
+  wr := TgxBinaryWriter.Create(aStream);
   try
     Self.WriteToFiler(wr);
   finally
@@ -2673,9 +2673,9 @@ end;
 
 procedure TgxMaterialLibrary.LoadFromStream(aStream: TStream);
 var
-  rd: TBinaryReader;
+  rd: TgxBinaryReader;
 begin
-  rd := TBinaryReader.Create(aStream);
+  rd := TgxBinaryReader.Create(aStream);
   try
     Self.ReadFromFiler(rd);
   finally

+ 1 - 1
Source/FMX/GLX.MaterialMultiProxy.pas

@@ -48,7 +48,7 @@ type
   TgxMaterialMultiProxy = class;
 
   // MasterObject description for a MultiProxy object.
-  TgxMaterialMultiProxyMaster = class(TInterfacedCollectionItem, IgxMaterialLibrarySupported)
+  TgxMaterialMultiProxyMaster = class(TgxInterfacedCollectionItem, IgxMaterialLibrarySupported)
   private
     FMasterObject: TgxBaseSceneObject;
     FMasterLibMaterial: TgxLibMaterial;

+ 8 - 8
Source/FMX/GLX.ParametricSurfaces.pas

@@ -75,8 +75,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure Prepare; override;
     procedure Clear; override;
@@ -141,8 +141,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure Prepare; override;
     property CountU: Integer read FCountU write FCountU;
@@ -187,7 +187,7 @@ begin
   inherited;
 end;
 
-procedure TMOParametricSurface.WriteToFiler(writer: TVirtualWriter);
+procedure TMOParametricSurface.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -209,7 +209,7 @@ begin
   end;
 end;
 
-procedure TMOParametricSurface.ReadFromFiler(reader: TVirtualReader);
+procedure TMOParametricSurface.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -436,7 +436,7 @@ begin
   inherited;
 end;
 
-procedure TFGBezierSurface.WriteToFiler(writer: TVirtualWriter);
+procedure TFGBezierSurface.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -454,7 +454,7 @@ begin
   end;
 end;
 
-procedure TFGBezierSurface.ReadFromFiler(reader: TVirtualReader);
+procedure TFGBezierSurface.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 8 - 8
Source/FMX/GLX.ParticleFX.pas

@@ -72,8 +72,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Manager: TgxParticleFXManager read FManager write FManager;
     (* Particle's ID, given at birth.
        ID is a value unique per manager. *)
@@ -118,8 +118,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     // Refers owner manager
     property Owner: TgxParticleFXManager read FOwner write FOwner;
     property Items[index: Integer]: TgxParticle read GetItems write SetItems; default;
@@ -812,7 +812,7 @@ begin
     FVelocity.V[Index] := aValue;
 end;
 
-procedure TgxParticle.WriteToFiler(writer: TVirtualWriter);
+procedure TgxParticle.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -826,7 +826,7 @@ begin
 end;
 
 
-procedure TgxParticle.ReadFromFiler(reader: TVirtualReader);
+procedure TgxParticle.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: integer;
 begin
@@ -862,7 +862,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxParticleList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxParticleList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -872,7 +872,7 @@ begin
   end;
 end;
 
-procedure TgxParticleList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxParticleList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: integer;
 begin

+ 110 - 113
Source/FMX/GLX.PersistentClasses.pas

@@ -28,7 +28,7 @@ type
   PObject = ^TObject;
 
   // Virtual layer similar to VCL's TReader (but reusable) }
-  TVirtualReader = class
+  TgxVirtualReader = class
   private
     FStream: TStream;
   public
@@ -48,7 +48,7 @@ type
   end;
 
   // Virtual layer similar to VCL's TWriter (but reusable)
-  TVirtualWriter = class
+  TgxVirtualWriter = class
   private
     FStream: TStream;
   public
@@ -64,16 +64,16 @@ type
     procedure WriteTStrings(const aStrings: TStrings; storeObjects: Boolean = True);
   end;
 
-  TVirtualReaderClass = class of TVirtualReader;
-  TVirtualWriterClass = class of TVirtualWriter;
+  TgxVirtualReaderClass = class of TgxVirtualReader;
+  TgxVirtualWriterClass = class of TgxVirtualWriter;
 
   (* Interface for persistent objects.
      This interface does not really allow polymorphic persistence,
      but is rather intended as a way to unify persistence calls for iterators. *)
   IgxPersistentObject = interface(IInterface)
   ['{A9A0198A-F11B-4325-A92C-2F24DB41652B}']
-    procedure WriteToFiler(writer: TVirtualWriter);
-    procedure ReadFromFiler(reader: TVirtualReader);
+    procedure WriteToFiler(writer: TgxVirtualWriter);
+    procedure ReadFromFiler(reader: TgxVirtualReader);
   end;
 
     (* Base class for persistent objects.
@@ -92,24 +92,24 @@ type
     function _Release: Integer; stdcall;
   public
     constructor Create; virtual;
-    constructor CreateFromFiler(reader: TVirtualReader);
+    constructor CreateFromFiler(reader: TgxVirtualReader);
     destructor Destroy; override;
     procedure Assign(source: TPersistent); override;
     function CreateClone: TgxPersistentObject; virtual;
     class function FileSignature: string; virtual;
-    class function FileVirtualWriter: TVirtualWriterClass; virtual;
-    class function FileVirtualReader: TVirtualReaderClass; virtual;
-    procedure WriteToFiler(writer: TVirtualWriter); virtual;
-    procedure ReadFromFiler(reader: TVirtualReader); virtual;
-    procedure SaveToStream(stream: TStream; writerClass: TVirtualWriterClass = nil); virtual;
-    procedure LoadFromStream(stream: TStream; readerClass: TVirtualReaderClass = nil); virtual;
-    procedure SaveToFile(const fileName: string; writerClass: TVirtualWriterClass = nil); virtual;
-    procedure LoadFromFile(const fileName: string; readerClass: TVirtualReaderClass = nil); virtual;
-    function SaveToString(writerClass: TVirtualWriterClass = nil): string; virtual;
-    procedure LoadFromString(const data: string; readerClass: TVirtualReaderClass = nil); virtual;
+    class function FileVirtualWriter: TgxVirtualWriterClass; virtual;
+    class function FileVirtualReader: TgxVirtualReaderClass; virtual;
+    procedure WriteToFiler(writer: TgxVirtualWriter); virtual;
+    procedure ReadFromFiler(reader: TgxVirtualReader); virtual;
+    procedure SaveToStream(stream: TStream; writerClass: TgxVirtualWriterClass = nil); virtual;
+    procedure LoadFromStream(stream: TStream; readerClass: TgxVirtualReaderClass = nil); virtual;
+    procedure SaveToFile(const fileName: string; writerClass: TgxVirtualWriterClass = nil); virtual;
+    procedure LoadFromFile(const fileName: string; readerClass: TgxVirtualReaderClass = nil); virtual;
+    function SaveToString(writerClass: TgxVirtualWriterClass = nil): string; virtual;
+    procedure LoadFromString(const data: string; readerClass: TgxVirtualReaderClass = nil); virtual;
   end;
 
-  TPersistentObjectClass = class of TgxPersistentObject;
+  TGLPersistentObjectClass = class of TgxPersistentObject;
   TgxPointerObjectList = array[0..MaxInt div (2*SizeOf(Pointer))] of TObject;
   PgxPointerObjectList = ^TgxPointerObjectList;
   TObjectListSortCompare = function(item1, item2: TObject): Integer;
@@ -145,9 +145,9 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
-    procedure ReadFromFilerWithEvent(reader: TVirtualReader;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
+    procedure ReadFromFilerWithEvent(reader: TgxVirtualReader;
       afterSenderObjectCreated: TNotifyEvent);
     function Add(const item: TObject): Integer;
     procedure AddNils(nbVals: Cardinal);
@@ -192,7 +192,7 @@ type
   end;
 
   // Wraps a TReader-compatible reader.
-  TBinaryReader = class(TVirtualReader)
+  TgxBinaryReader = class(TgxVirtualReader)
   protected
     function ReadValue: TValueType;
     function ReadWideString(vType: TValueType): WideString;
@@ -209,7 +209,7 @@ type
   end;
 
   // Wraps a TWriter-compatible writer.
-  TBinaryWriter = class(TVirtualWriter)
+  TgxBinaryWriter = class(TgxVirtualWriter)
   protected
     procedure WriteAnsiString(const aString: AnsiString); virtual;
     procedure WriteWideString(const aString: WideString); virtual;
@@ -224,7 +224,7 @@ type
   end;
 
   // Reads object persistence in Text format.
-  TTextReader = class(TVirtualReader)
+  TgxTextReader = class(TgxVirtualReader)
   private
     FValueType: string;
     FData: string;
@@ -243,7 +243,7 @@ type
   end;
 
   // Writes object persistence in Text format.
-  TTextWriter = class(TVirtualWriter)
+  TgxTextWriter = class(TgxVirtualWriter)
   private
     FIndentLevel: Integer;
   protected
@@ -271,7 +271,7 @@ type
   end;
 
   // TPersistent thet inplements IInterface.
-  TInterfacedPersistent = class(TPersistent, IInterface)
+  TgxInterfacedPersistent = class(TPersistent, IInterface)
   protected
     // Implementing IInterface.
     function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
@@ -280,7 +280,7 @@ type
   end;
 
   // TCollectionItem thet inplements IInterface.
-  TInterfacedCollectionItem = class(TCollectionItem, IInterface)
+  TgxInterfacedCollectionItem = class(TCollectionItem, IInterface)
   protected
     // Implementing IInterface.
     function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
@@ -303,9 +303,6 @@ function UTF8ToWideString(const s: AnsiString): WideString;
 implementation
 // ------------------------------------------------------------------
 
-uses
-  GLX.ApplicationFileIO;
-
 const
   cDefaultListGrowthDelta = 16;
 
@@ -401,20 +398,20 @@ begin
 end;
 
 // ------------------
-// ------------------ TVirtualReader ------------------
+// ------------------ TgxVirtualReader ------------------
 // ------------------
 
-constructor TVirtualReader.Create(Stream: TStream);
+constructor TgxVirtualReader.Create(Stream: TStream);
 begin
   FStream := Stream;
 end;
 
-procedure TVirtualReader.ReadTypeError;
+procedure TgxVirtualReader.ReadTypeError;
 begin
   raise EReadError.CreateFmt('%s, read type error', [ClassName]);
 end;
 
-procedure TVirtualReader.ReadTStrings(aStrings: TStrings);
+procedure TgxVirtualReader.ReadTStrings(aStrings: TStrings);
 var
   i: Integer;
   objectsStored: Boolean;
@@ -439,15 +436,15 @@ begin
 end;
 
 // ------------------
-// ------------------ TVirtualWriter ------------------
+// ------------------ TgxVirtualWriter ------------------
 // ------------------
 
-constructor TVirtualWriter.Create(Stream: TStream);
+constructor TgxVirtualWriter.Create(Stream: TStream);
 begin
   FStream := Stream;
 end;
 
-procedure TVirtualWriter.WriteTStrings(const aStrings: TStrings;
+procedure TgxVirtualWriter.WriteTStrings(const aStrings: TStrings;
   storeObjects: Boolean = True);
 var
   i: Integer;
@@ -479,7 +476,7 @@ begin
   inherited Create;
 end;
 
-constructor TgxPersistentObject.CreateFromFiler(reader: TVirtualReader);
+constructor TgxPersistentObject.CreateFromFiler(reader: TgxVirtualReader);
 begin
   Create;
   ReadFromFiler(reader);
@@ -511,7 +508,7 @@ end;
 
 function TgxPersistentObject.CreateClone: TgxPersistentObject;
 begin
-  Result := TPersistentObjectClass(Self.ClassType).Create;
+  Result := TGLPersistentObjectClass(Self.ClassType).Create;
   Result.Assign(Self);
 end;
 
@@ -520,23 +517,23 @@ begin
   Result := '';
 end;
 
-class function TgxPersistentObject.FileVirtualWriter: TVirtualWriterClass;
+class function TgxPersistentObject.FileVirtualWriter: TgxVirtualWriterClass;
 begin
-  Result := TBinaryWriter;
+  Result := TgxBinaryWriter;
 end;
 
-class function TgxPersistentObject.FileVirtualReader: TVirtualReaderClass;
+class function TgxPersistentObject.FileVirtualReader: TgxVirtualReaderClass;
 begin
-  Result := TBinaryReader;
+  Result := TgxBinaryReader;
 end;
 
-procedure TgxPersistentObject.WriteToFiler(writer: TVirtualWriter);
+procedure TgxPersistentObject.WriteToFiler(writer: TgxVirtualWriter);
 begin
   // nothing
   Assert(Assigned(writer));
 end;
 
-procedure TgxPersistentObject.ReadFromFiler(reader: TVirtualReader);
+procedure TgxPersistentObject.ReadFromFiler(reader: TgxVirtualReader);
 begin
   // nothing
   Assert(Assigned(reader));
@@ -567,13 +564,13 @@ begin
   Result := 0;
 end;
 
-procedure TgxPersistentObject.SaveToStream(stream: TStream; writerClass: TVirtualWriterClass = nil);
+procedure TgxPersistentObject.SaveToStream(stream: TStream; writerClass: TgxVirtualWriterClass = nil);
 var
-  wr: TVirtualWriter;
+  wr: TgxVirtualWriter;
   fileSig: AnsiString;
 begin
   if writerClass = nil then
-    writerClass := TBinaryWriter;
+    writerClass := TgxBinaryWriter;
   wr := writerClass.Create(stream);
   try
     if FileSignature <> '' then
@@ -587,13 +584,13 @@ begin
   end;
 end;
 
-procedure TgxPersistentObject.LoadFromStream(stream: TStream; readerClass: TVirtualReaderClass = nil);
+procedure TgxPersistentObject.LoadFromStream(stream: TStream; readerClass: TgxVirtualReaderClass = nil);
 var
-  rd: TVirtualReader;
+  rd: TgxVirtualReader;
   sig: AnsiString;
 begin
   if readerClass = nil then
-    readerClass := TBinaryReader;
+    readerClass := TgxBinaryReader;
   rd := readerClass.Create(stream);
   try
     if FileSignature <> '' then
@@ -609,7 +606,7 @@ begin
   end;
 end;
 
-procedure TgxPersistentObject.SaveToFile(const fileName: string; writerClass: TVirtualWriterClass = nil);
+procedure TgxPersistentObject.SaveToFile(const fileName: string; writerClass: TgxVirtualWriterClass = nil);
 var
   fs: TStream;
 begin
@@ -623,7 +620,7 @@ begin
   end;
 end;
 
-procedure TgxPersistentObject.LoadFromFile(const fileName: string; readerClass: TVirtualReaderClass = nil);
+procedure TgxPersistentObject.LoadFromFile(const fileName: string; readerClass: TgxVirtualReaderClass = nil);
 var
   fs: TStream;
 begin
@@ -637,7 +634,7 @@ begin
   end;
 end;
 
-function TgxPersistentObject.SaveToString(writerClass: TVirtualWriterClass = nil): string;
+function TgxPersistentObject.SaveToString(writerClass: TgxVirtualWriterClass = nil): string;
 var
   ss: TStringStream;
 begin
@@ -650,7 +647,7 @@ begin
   end;
 end;
 
-procedure TgxPersistentObject.LoadFromString(const data: string; readerClass: TVirtualReaderClass = nil);
+procedure TgxPersistentObject.LoadFromString(const data: string; readerClass: TgxVirtualReaderClass = nil);
 var
   ss: TStringStream;
 begin
@@ -1041,7 +1038,7 @@ begin
   end;
 end;
 
-procedure TgxPersistentObjectList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxPersistentObjectList.WriteToFiler(writer: TgxVirtualWriter);
 (*
    Object List Filer Format :
 
@@ -1106,10 +1103,10 @@ begin
   end;
 end;
 
-procedure TgxPersistentObjectList.ReadFromFilerWithEvent(reader: TVirtualReader; afterSenderObjectCreated: TNotifyEvent);
+procedure TgxPersistentObjectList.ReadFromFilerWithEvent(reader: TgxVirtualReader; afterSenderObjectCreated: TNotifyEvent);
 var
   obj: TgxPersistentObject;
-  m: TPersistentObjectClass;
+  m: TGLPersistentObjectClass;
   version: integer;
   objTypes: TList;
 begin
@@ -1134,7 +1131,7 @@ begin
               Cardinal(vaInt64) + 1 { vaUTF8String }:
               begin
                 // Unknown class, to be registered
-                m := TPersistentObjectClass(FindClass(ReadString));
+                m := TGLPersistentObjectClass(FindClass(ReadString));
                 objTypes.Add(m);
                 obj := m.Create;
                 if Assigned(afterSenderObjectCreated) then
@@ -1145,7 +1142,7 @@ begin
             Cardinal(vaInt8), Cardinal(vaInt16), Cardinal(vaInt32):
               begin
                 // known class, direct retrieve
-                m := TPersistentObjectClass(objTypes[ReadInteger]);
+                m := TGLPersistentObjectClass(objTypes[ReadInteger]);
                 obj := m.Create;
                 if Assigned(afterSenderObjectCreated) then
                   afterSenderObjectCreated(obj);
@@ -1165,7 +1162,7 @@ begin
   end;
 end;
 
-procedure TgxPersistentObjectList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxPersistentObjectList.ReadFromFiler(reader: TgxVirtualReader);
 begin
   ReadFromFilerWithEvent(reader, AfterObjectCreatedByReader);
 end;
@@ -1233,15 +1230,15 @@ begin
 end;
 
 // ------------------
-// ------------------ TBinaryReader ------------------
+// ------------------ TgxBinaryReader ------------------
 // ------------------
 
-procedure TBinaryReader.Read(var Buf; Count: Longint);
+procedure TgxBinaryReader.Read(var Buf; Count: Longint);
 begin
   FStream.Read(Buf, Count);
 end;
 
-function TBinaryReader.ReadValue: TValueType;
+function TgxBinaryReader.ReadValue: TValueType;
 var
   b: byte;
 begin
@@ -1249,7 +1246,7 @@ begin
   Result := TValueType(b);
 end;
 
-function TBinaryReader.NextValue: TValueType;
+function TgxBinaryReader.NextValue: TValueType;
 var
   pos: Int64;
 begin
@@ -1258,7 +1255,7 @@ begin
   FStream.Position := pos;
 end;
 
-function TBinaryReader.ReadInteger: Integer;
+function TgxBinaryReader.ReadInteger: Integer;
 var
   tempShort: ShortInt;
   tempSmallInt: SmallInt;
@@ -1281,7 +1278,7 @@ begin
   end;
 end;
 
-function TBinaryReader.ReadBoolean: Boolean;
+function TgxBinaryReader.ReadBoolean: Boolean;
 begin
   case ReadValue of
     vaTrue: Result := True;
@@ -1292,7 +1289,7 @@ begin
   end;
 end;
 
-function TBinaryReader.ReadString: string;
+function TgxBinaryReader.ReadString: string;
 var
   n: Cardinal;
   vType: TValueType;
@@ -1318,7 +1315,7 @@ begin
   Result := string(tempString);
 end;
 
-function TBinaryReader.ReadWideString(vType: TValueType): WideString;
+function TgxBinaryReader.ReadWideString(vType: TValueType): WideString;
 var
   n: Cardinal;
   utf8buf: AnsiString;
@@ -1345,7 +1342,7 @@ begin
   end;
 end;
 
-function TBinaryReader.ReadFloat: Extended;
+function TgxBinaryReader.ReadFloat: Extended;
 {$IFDEF WIN64}
 var
    C  :TExtended80Rec; // Temporary variable to store 10 bytes floating point number in a Win64 application
@@ -1367,33 +1364,33 @@ begin
   {$ENDIF}
 end;
 
-procedure TBinaryReader.ReadListBegin;
+procedure TgxBinaryReader.ReadListBegin;
 begin
   if ReadValue <> vaList then
     ReadTypeError;
 end;
 
-procedure TBinaryReader.ReadListEnd;
+procedure TgxBinaryReader.ReadListEnd;
 begin
   if ReadValue <> vaNull then
     ReadTypeError;
 end;
 
-function TBinaryReader.EndOfList: Boolean;
+function TgxBinaryReader.EndOfList: Boolean;
 begin
   Result := (NextValue = vaNull);
 end;
 
 // ------------------
-// ------------------ TBinaryWriter ------------------
+// ------------------ TgxBinaryWriter ------------------
 // ------------------
 
-procedure TBinaryWriter.Write(const Buf; Count: Longint);
+procedure TgxBinaryWriter.Write(const Buf; Count: Longint);
 begin
   FStream.Write(Buf, Count);
 end;
 
-procedure TBinaryWriter.WriteInteger(anInteger: Integer);
+procedure TgxBinaryWriter.WriteInteger(anInteger: Integer);
 type
   TIntStruct = packed record
     typ: byte;
@@ -1420,14 +1417,14 @@ begin
   end;
 end;
 
-procedure TBinaryWriter.WriteBoolean(aBoolean: Boolean);
+procedure TgxBinaryWriter.WriteBoolean(aBoolean: Boolean);
 const
   cBoolToType: array[False..True] of byte = (byte(vaFalse), byte(vaTrue));
 begin
   Write(cBoolToType[aBoolean], 1);
 end;
 
-procedure TBinaryWriter.WriteAnsiString(const aString: AnsiString);
+procedure TgxBinaryWriter.WriteAnsiString(const aString: AnsiString);
 type
   TStringHeader = packed record
     typ: Byte;
@@ -1452,7 +1449,7 @@ begin
   end;
 end;
 
-procedure TBinaryWriter.WriteWideString(const aString: WideString);
+procedure TgxBinaryWriter.WriteWideString(const aString: WideString);
 type
   TStringHeader = packed record
     typ: Byte;
@@ -1468,7 +1465,7 @@ begin
     Write(aString[1], sh.length * SizeOf(WideChar));
 end;
 
-procedure TBinaryWriter.WriteString(const aString: string);
+procedure TgxBinaryWriter.WriteString(const aString: string);
 begin
 {$IFDEF UNICODE}
   // TODO: should really check if the string can be simplified to: vaString / vaLString / vaUTF8String
@@ -1478,7 +1475,7 @@ begin
 {$ENDIF}
 end;
 
-procedure TBinaryWriter.WriteFloat(const aFloat: Extended);
+procedure TgxBinaryWriter.WriteFloat(const aFloat: Extended);
 type
   TExtendedStruct = packed record
     typ: Byte;
@@ -1502,14 +1499,14 @@ begin
   {$ENDIF}
 end;
 
-procedure TBinaryWriter.WriteListBegin;
+procedure TgxBinaryWriter.WriteListBegin;
 const
   buf: byte = byte(vaList);
 begin
   Write(buf, 1);
 end;
 
-procedure TBinaryWriter.WriteListEnd;
+procedure TgxBinaryWriter.WriteListEnd;
 const
   buf: byte = byte(vaNull);
 begin
@@ -1517,10 +1514,10 @@ begin
 end;
 
 // ------------------
-// ------------------ TTextReader ------------------
+// ------------------ TgxTextReader ------------------
 // ------------------
 
-procedure TTextReader.ReadLine(const requestedType: string = '');
+procedure TgxTextReader.ReadLine(const requestedType: string = '');
 var
   line: string;
   c: Byte;
@@ -1551,7 +1548,7 @@ begin
         + requestedType + '", found "FValueType".');
 end;
 
-procedure TTextReader.Read(var Buf; Count: Longint);
+procedure TgxTextReader.Read(var Buf; Count: Longint);
 
   function HexCharToInt(const c: Char): Integer;
   begin
@@ -1576,7 +1573,7 @@ begin
   end;
 end;
 
-function TTextReader.NextValue: TValueType;
+function TgxTextReader.NextValue: TValueType;
 var
   p: Int64;
 begin
@@ -1602,19 +1599,19 @@ begin
   Stream.Position := p;
 end;
 
-function TTextReader.ReadInteger: Integer;
+function TgxTextReader.ReadInteger: Integer;
 begin
   ReadLine(cVTInteger);
   Result := StrToInt(FData);
 end;
 
-function TTextReader.ReadBoolean: Boolean;
+function TgxTextReader.ReadBoolean: Boolean;
 begin
   ReadLine(cVTBoolean);
   Result := (FData = cTrue);
 end;
 
-function TTextReader.ReadString: string;
+function TgxTextReader.ReadString: string;
 var
   i: Integer;
 begin
@@ -1635,7 +1632,7 @@ begin
   Assert(FData[i] = '.', 'Invalid stored string.');
 end;
 
-function TTextReader.ReadFloat: Extended;
+function TgxTextReader.ReadFloat: Extended;
 var
   oldDc: Char;
 begin
@@ -1646,17 +1643,17 @@ begin
   FormatSettings.DecimalSeparator := oldDc;
 end;
 
-procedure TTextReader.ReadListBegin;
+procedure TgxTextReader.ReadListBegin;
 begin
   ReadLine(cVTListBegin);
 end;
 
-procedure TTextReader.ReadListEnd;
+procedure TgxTextReader.ReadListEnd;
 begin
   ReadLine(cVTListEnd);
 end;
 
-function TTextReader.EndOfList: Boolean;
+function TgxTextReader.EndOfList: Boolean;
 var
   p: Int64;
 begin
@@ -1667,20 +1664,20 @@ begin
 end;
 
 // ------------------
-// ------------------ TTextWriter ------------------
+// ------------------ TgxTextWriter ------------------
 // ------------------
 
-constructor TTextWriter.Create(aStream: TStream);
+constructor TgxTextWriter.Create(aStream: TStream);
 begin
   inherited;
 end;
 
-destructor TTextWriter.Destroy;
+destructor TgxTextWriter.Destroy;
 begin
   inherited;
 end;
 
-procedure TTextWriter.WriteLine(const valueType, data: string);
+procedure TgxTextWriter.WriteLine(const valueType, data: string);
 var
   buf: AnsiString;
 begin
@@ -1689,7 +1686,7 @@ begin
   Stream.Write(buf[1], Length(buf));
 end;
 
-procedure TTextWriter.Write(const Buf; Count: Longint);
+procedure TgxTextWriter.Write(const Buf; Count: Longint);
 const
   cNibbleToHex: PChar = '0123456789ABCDEF';
 var
@@ -1708,12 +1705,12 @@ begin
   WriteLine(cVTRaw, data);
 end;
 
-procedure TTextWriter.WriteInteger(anInteger: Integer);
+procedure TgxTextWriter.WriteInteger(anInteger: Integer);
 begin
   WriteLine(cVTInteger, IntToStr(anInteger));
 end;
 
-procedure TTextWriter.WriteBoolean(aBoolean: Boolean);
+procedure TgxTextWriter.WriteBoolean(aBoolean: Boolean);
 begin
   if aBoolean then
     WriteLine(cVTBoolean, cTrue)
@@ -1721,7 +1718,7 @@ begin
     WriteLine(cVTBoolean, cFalse);
 end;
 
-procedure TTextWriter.WriteString(const aString: string);
+procedure TgxTextWriter.WriteString(const aString: string);
 var
   i: Integer;
   s: string;
@@ -1735,18 +1732,18 @@ begin
   WriteLine(cVTString, s + '.');
 end;
 
-procedure TTextWriter.WriteFloat(const aFloat: Extended);
+procedure TgxTextWriter.WriteFloat(const aFloat: Extended);
 begin
   WriteLine(cVTInteger, FloatToStr(aFloat));
 end;
 
-procedure TTextWriter.WriteListBegin;
+procedure TgxTextWriter.WriteListBegin;
 begin
   WriteLine(cVTListBegin, '');
   Inc(FIndentLevel, 3);
 end;
 
-procedure TTextWriter.WriteListEnd;
+procedure TgxTextWriter.WriteListEnd;
 begin
   Dec(FIndentLevel, 3);
   WriteLine(cVTListEnd, '');
@@ -1767,20 +1764,20 @@ begin
 end;
 
 // ------------------
-// ------------------ TInterfacedPersistent ------------------
+// ------------------ TgxInterfacedPersistent ------------------
 // ------------------
 
-function TInterfacedPersistent._AddRef: Integer; stdcall;
+function TgxInterfacedPersistent._AddRef: Integer; stdcall;
 begin
   Result := -1; //ignore
 end;
 
-function TInterfacedPersistent._Release: Integer; stdcall;
+function TgxInterfacedPersistent._Release: Integer; stdcall;
 begin
   Result := -1; //ignore
 end;
 
-function TInterfacedPersistent.QueryInterface(const IID: TGUID;
+function TgxInterfacedPersistent.QueryInterface(const IID: TGUID;
   out Obj): HResult; stdcall;
 begin
   if GetInterface(IID, Obj) then
@@ -1790,21 +1787,21 @@ begin
 end;
 
 // ------------------
-// ------------------ TInterfacedCollectionItem ------------------
+// ------------------ TgxInterfacedCollectionItem ------------------
 // ------------------
 
 
-function TInterfacedCollectionItem._AddRef: Integer; stdcall;
+function TgxInterfacedCollectionItem._AddRef: Integer; stdcall;
 begin
   Result := -1; //ignore
 end;
 
-function TInterfacedCollectionItem._Release: Integer; stdcall;
+function TgxInterfacedCollectionItem._Release: Integer; stdcall;
 begin
   Result := -1; //ignore
 end;
 
-function TInterfacedCollectionItem.QueryInterface(const IID: TGUID;
+function TgxInterfacedCollectionItem.QueryInterface(const IID: TGUID;
     out Obj): HResult; stdcall;
 begin
   if GetInterface(IID, Obj) then

+ 12 - 12
Source/FMX/GLX.Ragdoll.pas

@@ -31,8 +31,8 @@ type
   public
     constructor Create(Ragdoll: TgxRagdoll); reintroduce;
     destructor Destroy; override;
-    procedure WriteToFiler(writer : TVirtualWriter); override;
-    procedure ReadFromFiler(reader : TVirtualReader); override;
+    procedure WriteToFiler(writer : TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader : TgxVirtualReader); override;
     property Ragdoll : TgxRagdoll read FRagdoll;
     property Items[Index: Integer] : TgxRagdolBone read GetRagdollBone; default;
 	end;
@@ -70,8 +70,8 @@ type
     constructor CreateOwned(aOwner : TgxRagdolBoneList);
     constructor Create(Ragdoll: TgxRagdoll);
     destructor Destroy; override;
-    procedure WriteToFiler(writer : TVirtualWriter); override;
-    procedure ReadFromFiler(reader : TVirtualReader); override;
+    procedure WriteToFiler(writer : TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader : TgxVirtualReader); override;
     property Owner : TgxRagdolBoneList read FOwner;
     property Name : String read FName write FName;
     property BoneID : Integer read FBoneID write FBoneID;
@@ -93,8 +93,8 @@ type
   public
     constructor Create(AOwner : TgxBaseMesh); reintroduce;
     destructor Destroy; override;
-    procedure WriteToFiler(writer : TVirtualWriter); override;
-    procedure ReadFromFiler(reader : TVirtualReader); override;
+    procedure WriteToFiler(writer : TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader : TgxVirtualReader); override;
     // Must be set before build the ragdoll
     procedure SetRootBone(RootBone: TgxRagdolBone);
     // Create the bounding box and setup the ragdoll do be started later
@@ -133,13 +133,13 @@ begin
   Result:=TgxRagdolBone(List^[Index]);
 end;
 
-procedure TgxRagdolBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxRagdolBoneList.ReadFromFiler(reader: TgxVirtualReader);
 begin
   inherited;
   //Not implemented
 end;
 
-procedure TgxRagdolBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxRagdolBoneList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited;
   //Not implemented
@@ -260,7 +260,7 @@ begin
   Result:=TgxRagdolBone(List^[Index]);
 end;
 
-procedure TgxRagdolBone.ReadFromFiler(reader: TVirtualReader);
+procedure TgxRagdolBone.ReadFromFiler(reader: TgxVirtualReader);
 begin
   inherited;
 
@@ -282,7 +282,7 @@ begin
   for i := 0 to Count-1 do items[i].UpdateChild;
 end;
 
-procedure TgxRagdolBone.WriteToFiler(writer: TVirtualWriter);
+procedure TgxRagdolBone.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited;
 
@@ -331,7 +331,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxRagdoll.ReadFromFiler(reader: TVirtualReader);
+procedure TgxRagdoll.ReadFromFiler(reader: TgxVirtualReader);
 begin
   inherited;
 end;
@@ -373,7 +373,7 @@ begin
   FOwner.Skeleton.MorphMesh(true);
 end;
 
-procedure TgxRagdoll.WriteToFiler(writer: TVirtualWriter);
+procedure TgxRagdoll.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited;
 

+ 8 - 8
Source/FMX/GLX.TilePlane.pas

@@ -38,8 +38,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Cell[col: Integer]: Integer read GetCell write SetCell; default;
     property ColMin: Integer read FColMin write SetColMin;
     property ColMax: Integer read FColMax write SetColMax;
@@ -65,8 +65,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Tile[col, row: Integer]: Integer read GetTile
       write SetTile; default;
     property row[index: Integer]: TgxTiledAreaRow read GetRow;
@@ -142,7 +142,7 @@ begin
   inherited;
 end;
 
-procedure TgxTiledAreaRow.WriteToFiler(writer: TVirtualWriter);
+procedure TgxTiledAreaRow.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -153,7 +153,7 @@ begin
   end;
 end;
 
-procedure TgxTiledAreaRow.ReadFromFiler(reader: TVirtualReader);
+procedure TgxTiledAreaRow.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -311,7 +311,7 @@ end;
 
 // WriteToFiler
 //
-procedure TgxTiledArea.WriteToFiler(writer: TVirtualWriter);
+procedure TgxTiledArea.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -324,7 +324,7 @@ end;
 
 // ReadFromFiler
 //
-procedure TgxTiledArea.ReadFromFiler(reader: TVirtualReader);
+procedure TgxTiledArea.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 70 - 70
Source/FMX/GLX.VectorFileObjects.pas

@@ -71,8 +71,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     // Clears all mesh object data, submeshes, facegroups, etc.
     procedure Clear; virtual;
     // Translates all the vertices by the given delta.
@@ -126,8 +126,8 @@ type
     constructor CreateOwned(aOwner: TgxSkeletonFrameList);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Owner: TgxSkeletonFrameList read FOwner;
     property Name: string read FName write FName;
     // Position values for the joints.
@@ -162,7 +162,7 @@ type
   public
     constructor CreateOwned(aOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     // As the name states; Convert Quaternions to Rotations or vice-versa.
     procedure ConvertQuaternionsToRotations(KeepQuaternions: Boolean = True; SetTransformMode: Boolean = True);
     procedure ConvertRotationsToQuaternions(KeepRotations: Boolean = True; SetTransformMode: Boolean = True);
@@ -186,8 +186,8 @@ type
     constructor CreateOwned(aOwner: TgxSkeleton);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Skeleton: TgxSkeleton read FSkeleton;
     property Items[Index: Integer]: TgxSkeletonBone read GetSkeletonBone; default;
     // Returns a bone by its BoneID, nil if not found.
@@ -204,8 +204,8 @@ type
   // This list store skeleton root bones exclusively.
   TgxSkeletonRootBoneList = class(TgxSkeletonBoneList)
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     // Render skeleton wireframe
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     property GlobalMatrix: TMatrix4f read FGlobalMatrix write FGlobalMatrix;
@@ -228,8 +228,8 @@ type
     constructor CreateOwned(aOwner: TgxSkeletonBoneList);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     // Render skeleton wireframe
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     property Owner: TgxSkeletonBoneList read FOwner;
@@ -274,8 +274,8 @@ type
   public
     constructor Create; override;
     constructor CreateOwned(aOwner: TgxSkeletonColliderList);
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     (* This method is used to align the colliders and their
       derived objects to their associated skeleton bone.
       Override to set up descendant class alignment properties. *)
@@ -301,7 +301,7 @@ type
   public
     constructor CreateOwned(aOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Clear; override;
     // Calls AlignCollider for each collider in the list.
     procedure AlignColliders;
@@ -345,8 +345,8 @@ type
     constructor CreateOwned(aOwner: TgxBaseMesh);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Owner: TgxBaseMesh read FOwner;
     property RootBones: TgxSkeletonRootBoneList read FRootBones write SetRootBones;
     property Frames: TgxSkeletonFrameList read FFrames write SetFrames;
@@ -453,8 +453,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Clear; override;
     function ExtractTriangles(texCoords: TgxAffineVectorList = nil; normals: TgxAffineVectorList = nil): TgxAffineVectorList;
       override;
@@ -528,7 +528,7 @@ type
   public
     constructor CreateOwned(aOwner: TgxBaseMesh);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TgxMaterialLibrary);
     procedure DropMaterialLibraryCache;
     (* Prepare the texture and materials before rendering.
@@ -569,8 +569,8 @@ type
   public
     constructor CreateOwned(aOwner: TgxMeshMorphTargetList);
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     property Owner: TgxMeshMorphTargetList read FOwner;
   end;
 
@@ -583,7 +583,7 @@ type
   public
     constructor CreateOwned(aOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Translate(const delta: TAffineVector);
     property Owner: TPersistent read FOwner;
     procedure Clear; override;
@@ -599,8 +599,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Clear; override;
     procedure Translate(const delta: TAffineVector); override;
     procedure MorphTo(morphTargetIndex: Integer); virtual;
@@ -644,8 +644,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure Clear; override;
     property VerticesBonesWeights: PgxVerticesBoneWeights read FVerticesBonesWeights;
     property VerticeBoneWeightCount: Integer read FVerticeBoneWeightCount write SetVerticeBoneWeightCount;
@@ -679,8 +679,8 @@ type
   public
     constructor CreateOwned(aOwner: TgxFaceGroups); virtual;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TgxMaterialLibrary);
     procedure DropMaterialLibraryCache;
     procedure BuildList(var mrci: TgxRenderContextInfo); virtual; abstract;
@@ -729,8 +729,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure AddToTriangles(aList: TgxAffineVectorList; aTexCoords: TgxAffineVectorList = nil;
       aNormals: TgxAffineVectorList = nil); override;
@@ -759,8 +759,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure AddToTriangles(aList: TgxAffineVectorList; aTexCoords: TgxAffineVectorList = nil;
       aNormals: TgxAffineVectorList = nil); override;
@@ -780,8 +780,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure BuildList(var mrci: TgxRenderContextInfo); override;
     procedure AddToTriangles(aList: TgxAffineVectorList; aTexCoords: TgxAffineVectorList = nil;
       aNormals: TgxAffineVectorList = nil); override;
@@ -799,7 +799,7 @@ type
   public
     constructor CreateOwned(aOwner: TgxMeshObject);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TgxMaterialLibrary);
     procedure DropMaterialLibraryCache;
     property Owner: TgxMeshObject read FOwner;
@@ -1519,7 +1519,7 @@ begin
     inherited; // Die!
 end;
 
-procedure TgxBaseMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TgxBaseMeshObject.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -1532,7 +1532,7 @@ begin
   end;
 end;
 
-procedure TgxBaseMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TgxBaseMeshObject.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1744,7 +1744,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxSkeletonFrame.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonFrame.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -1758,7 +1758,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonFrame.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonFrame.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1924,7 +1924,7 @@ begin
   inherited;
 end;
 
-procedure TgxSkeletonFrameList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonFrameList.ReadFromFiler(reader: TgxVirtualReader);
 var
   i: Integer;
 begin
@@ -1997,7 +1997,7 @@ begin
   inherited;
 end;
 
-procedure TgxSkeletonBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonBoneList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2007,7 +2007,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonBoneList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2085,7 +2085,7 @@ end;
 // ------------------ TgxSkeletonRootBoneList ------------------
 // ------------------
 
-procedure TgxSkeletonRootBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonRootBoneList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2095,7 +2095,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonRootBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonRootBoneList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2150,7 +2150,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxSkeletonBone.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonBone.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2162,7 +2162,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonBone.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonBone.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2283,7 +2283,7 @@ begin
     FOwner.Add(Self);
 end;
 
-procedure TgxSkeletonCollider.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonCollider.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2297,7 +2297,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonCollider.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonCollider.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2362,7 +2362,7 @@ begin
   Result := TgxSkeletonCollider(inherited Get(index));
 end;
 
-procedure TgxSkeletonColliderList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonColliderList.ReadFromFiler(reader: TgxVirtualReader);
 var
   i: Integer;
 begin
@@ -2424,7 +2424,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxSkeleton.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeleton.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2440,7 +2440,7 @@ begin
   end;
 end;
 
-procedure TgxSkeleton.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeleton.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2857,7 +2857,7 @@ begin
   end;
 end;
 
-procedure TgxMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TgxMeshObject.WriteToFiler(writer: TgxVirtualWriter);
 var
   i: Integer;
 begin
@@ -2880,7 +2880,7 @@ begin
   end;
 end;
 
-procedure TgxMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMeshObject.ReadFromFiler(reader: TgxVirtualReader);
 var
   i, Count, archiveVersion: Integer;
   lOldLightMapTexCoords: TgxTexPointList;
@@ -4097,7 +4097,7 @@ begin
   inherited;
 end;
 
-procedure TgxMeshObjectList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMeshObjectList.ReadFromFiler(reader: TgxVirtualReader);
 var
   i: Integer;
   Mesh: TgxMeshObject;
@@ -4354,7 +4354,7 @@ begin
   inherited;
 end;
 
-procedure TgxMeshMorphTarget.WriteToFiler(writer: TVirtualWriter);
+procedure TgxMeshMorphTarget.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -4364,7 +4364,7 @@ begin
   end;
 end;
 
-procedure TgxMeshMorphTarget.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMeshMorphTarget.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -4395,7 +4395,7 @@ begin
   inherited;
 end;
 
-procedure TgxMeshMorphTargetList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMeshMorphTargetList.ReadFromFiler(reader: TgxVirtualReader);
 var
   i: Integer;
 begin
@@ -4446,7 +4446,7 @@ begin
   inherited;
 end;
 
-procedure TgxMorphableMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TgxMorphableMeshObject.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -4456,7 +4456,7 @@ begin
   end;
 end;
 
-procedure TgxMorphableMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TgxMorphableMeshObject.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -4551,7 +4551,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TgxSkeletonMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TgxSkeletonMeshObject.WriteToFiler(writer: TgxVirtualWriter);
 var
   i: Integer;
 begin
@@ -4567,7 +4567,7 @@ begin
   end;
 end;
 
-procedure TgxSkeletonMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TgxSkeletonMeshObject.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -4932,7 +4932,7 @@ begin
   inherited;
 end;
 
-procedure TgxFaceGroup.WriteToFiler(writer: TVirtualWriter);
+procedure TgxFaceGroup.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -4951,7 +4951,7 @@ begin
   end;
 end;
 
-procedure TgxFaceGroup.ReadFromFiler(reader: TVirtualReader);
+procedure TgxFaceGroup.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5057,7 +5057,7 @@ begin
   inherited;
 end;
 
-procedure TfgxVertexIndexList.WriteToFiler(writer: TVirtualWriter);
+procedure TfgxVertexIndexList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5068,7 +5068,7 @@ begin
   end;
 end;
 
-procedure TfgxVertexIndexList.ReadFromFiler(reader: TVirtualReader);
+procedure TfgxVertexIndexList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5333,7 +5333,7 @@ begin
   inherited;
 end;
 
-procedure TFGVertexNormalTexIndexList.WriteToFiler(writer: TVirtualWriter);
+procedure TFGVertexNormalTexIndexList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5344,7 +5344,7 @@ begin
   end;
 end;
 
-procedure TFGVertexNormalTexIndexList.ReadFromFiler(reader: TVirtualReader);
+procedure TFGVertexNormalTexIndexList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5449,7 +5449,7 @@ begin
   inherited;
 end;
 
-procedure TFGIndexTexCoordList.WriteToFiler(writer: TVirtualWriter);
+procedure TFGIndexTexCoordList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5459,7 +5459,7 @@ begin
   end;
 end;
 
-procedure TFGIndexTexCoordList.ReadFromFiler(reader: TVirtualReader);
+procedure TFGIndexTexCoordList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5607,7 +5607,7 @@ begin
   inherited;
 end;
 
-procedure TgxFaceGroups.ReadFromFiler(reader: TVirtualReader);
+procedure TgxFaceGroups.ReadFromFiler(reader: TgxVirtualReader);
 var
   i: Integer;
 begin

+ 8 - 8
Source/FMX/GLX.VectorLists.pas

@@ -52,8 +52,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Src: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure AddNulls(nbVals: Cardinal);
     procedure InsertNulls(Index: Integer; nbVals: Cardinal);
     procedure AdjustCapacityToAtLeast(const size: Integer);
@@ -93,8 +93,8 @@ type
   protected
     function GetItemAddress(Index: Integer): PFloatArray;
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure GetExtents(out min, max: TAffineVector); virtual;
     function Sum: TAffineVector; virtual;
     procedure Normalize; virtual;
@@ -720,7 +720,7 @@ begin
   AWriter.WriteString(lOutputText);
 end;
 
-procedure TgxBaseList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxBaseList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited;
   with writer do
@@ -733,7 +733,7 @@ begin
   end;
 end;
 
-procedure TgxBaseList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxBaseList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -981,7 +981,7 @@ end;
 // ------------------ TgxBaseVectorList ------------------
 // ------------------
 
-procedure TgxBaseVectorList.WriteToFiler(writer: TVirtualWriter);
+procedure TgxBaseVectorList.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited;
   if Self is TgxTexPointList then
@@ -993,7 +993,7 @@ begin
   end;
 end;
 
-procedure TgxBaseVectorList.ReadFromFiler(reader: TVirtualReader);
+procedure TgxBaseVectorList.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 12 - 12
Source/FMX/GLX.VerletTypes.pas

@@ -672,8 +672,8 @@ type
   private
     FVerletConstraint: TgxVerletConstraint;
   public
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TgxVerletWorld); virtual;
     // The verlet constraint is created through the AddToVerletWorld procedure
     property VerletConstraint: TgxVerletConstraint read FVerletConstraint;
@@ -687,8 +687,8 @@ type
     procedure SetRadius(const Val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TgxVerletWorld); override;
     procedure AlignCollider; override;
     property Radius: Single read FRadius write SetRadius;
@@ -703,8 +703,8 @@ type
     procedure SetLength(const Val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TgxVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TgxVerletWorld); override;
     procedure AlignCollider; override;
     property Radius: Single read FRadius write SetRadius;
@@ -2610,13 +2610,13 @@ end;
 // ------------------
 // ------------------ TgxVerletSkeletonCollider ------------------
 // ------------------
-procedure TgxVerletSkeletonCollider.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxVerletSkeletonCollider.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
 end;
 
-procedure TgxVerletSkeletonCollider.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxVerletSkeletonCollider.ReadFromFiler(Reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2645,14 +2645,14 @@ begin
   AlignCollider;
 end;
 
-procedure TgxVerletSphere.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxVerletSphere.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
   Writer.WriteFloat(FRadius);
 end;
 
-procedure TgxVerletSphere.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxVerletSphere.ReadFromFiler(Reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2701,7 +2701,7 @@ begin
   AlignCollider;
 end;
 
-procedure TgxVerletCapsule.WriteToFiler(Writer: TVirtualWriter);
+procedure TgxVerletCapsule.WriteToFiler(Writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
@@ -2709,7 +2709,7 @@ begin
   Writer.WriteFloat(FLength);
 end;
 
-procedure TgxVerletCapsule.ReadFromFiler(Reader: TVirtualReader);
+procedure TgxVerletCapsule.ReadFromFiler(Reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 1 - 1
Source/FMX/GLX.XCollection.pas

@@ -31,7 +31,7 @@ type
     methods if you add data in a subclass !
      Subclasses must be registered using the RegisterXCollectionItemClass
     function for proper operation  *)
-  TXCollectionItem = class(TInterfacedPersistent)
+  TXCollectionItem = class(TgxInterfacedPersistent)
   private
     FOwner: TXCollection;
     FName: string;

+ 16 - 16
Source/FMX/Physix.ODESkeletonColliders.pas

@@ -23,8 +23,8 @@ type
   private
     FGeom: PdxGeom;
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); virtual;
     procedure AlignCollider; override;
     // The geoms are created through the AddToSpace procedure
@@ -39,8 +39,8 @@ type
     procedure SetRadius(const val: TdReal);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
     property Radius: TdReal read FRadius write SetRadius;
   end;
@@ -54,8 +54,8 @@ type
     procedure SetLength(const val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
     property Radius: Single read FRadius write SetRadius;
     property Length: Single read FLength write SetLength;
@@ -71,8 +71,8 @@ type
     procedure SetBoxDepth(const val: TdReal);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TgxVirtualWriter); override;
+    procedure ReadFromFiler(reader: TgxVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
     property BoxWidth: TdReal read FBoxWidth write SetBoxWidth;
     property BoxHeight: TdReal read FBoxHeight write SetBoxHeight;
@@ -107,7 +107,7 @@ end;
 // ------------------ TSCODEBase ------------------
 // ------------------
 
-procedure TSCODEBase.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBase.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -116,7 +116,7 @@ begin
   end;
 end;
 
-procedure TSCODEBase.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBase.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -172,7 +172,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODESphere.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODESphere.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -182,7 +182,7 @@ begin
   end;
 end;
 
-procedure TSCODESphere.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODESphere.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -224,7 +224,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODECCylinder.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODECCylinder.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -235,7 +235,7 @@ begin
   end;
 end;
 
-procedure TSCODECCylinder.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODECCylinder.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -290,7 +290,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODEBox.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBox.WriteToFiler(writer: TgxVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -302,7 +302,7 @@ begin
   end;
 end;
 
-procedure TSCODEBox.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBox.ReadFromFiler(reader: TgxVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 0 - 251
Source/GLS.FileGL2.pas

@@ -1,251 +0,0 @@
-//
-// The graphics platform GLScene https://github.com/glscene
-//
-unit GLS.FileGL2;
-
-(* Vector file object loading of Ghoul2 model and animation files *)
-
-interface
-
-uses
-  System.Classes,
-  System.SysUtils,
-
-  GLS.PersistentClasses,
-  GLS.VectorFileObjects,
-  GLS.ApplicationFileIO,
-  GLS.Material,
-  Scena.VectorGeometry,
-  Formats.GL2,
-  Scena.VectorTypes,
-  GLS.VectorLists;
-
-type
-
-  TGLMVectorFile = class (TGLVectorFile)
-    public
-      class function Capabilities : TGLDataFileCapabilities; override;
-      procedure LoadFromStream(aStream : TStream); override;
-  end;
-
-  TGLAVectorFile = class (TGLVectorFile)
-    public
-      class function Capabilities : TGLDataFileCapabilities; override;
-      procedure LoadFromStream(aStream : TStream); override;
-  end;
-
-var
-  vGhoul2LevelOfDetail     : Integer = 0; // Highest detail level by default
-  vGhoul2MaxBonesPerVertex : Integer = 4; // Ghoul2 supports up to 4 bones
-                                          // per vertex. Use this global
-                                          // variable to set a different limit.
-
-// ------------------------------------------------------------------
-implementation
-// ------------------------------------------------------------------
-
-// ------------------
-// ------------------ TGLMVectorFile ------------------
-// ------------------
-
-class function TGLMVectorFile.Capabilities : TGLDataFileCapabilities;
-begin
-  Result:=[dfcRead];
-end;
-
-procedure TGLMVectorFile.LoadFromStream(aStream : TStream);
-var
-  GLMFile     : TFileGLM;
-  i,j,k,s,c,d : integer;
-  mesh        : TGLSkeletonMeshObject;
-  fg          : TFGVertexIndexList;
-  VertOfs     : integer;
-  shader      : string;
-  vec2        : Tvector2f;
-  numweights,
-  boneref,
-  boneid      : Integer;
-  boneweight,
-  weighttot   : Single;
-  NumSurfVert : Integer;
-
-  procedure AllocateMaterial(meshname,shader:string);
-  var
-    LibMat : TGLLibMaterial;
-  begin
-    if Assigned(Owner.MaterialLibrary) then with Owner.MaterialLibrary do begin
-      if Assigned(Materials.GetLibMaterialByName(meshname)) then exit;
-      LibMat:=Materials.Add;
-      LibMat.name:=meshname;
-      LibMat.Material.Texture.Disabled:=False;
-    end;
-  end;
-
-begin
-  GLMFile:=TFileGLM.Create;
-  GLMFile.LoadFromStream(aStream);
-  try
-    // Need a way to import all levels of detail, but this global
-    // variable will do for now.
-    d:=vGhoul2LevelOfDetail;
-    if d>=Length(GLMFile.LODs) then exit;
-    for s:=0 to Length(GLMFile.SurfaceHeirachy)-1 do begin
-      mesh:=TGLSkeletonMeshObject.CreateOwned(Owner.MeshObjects);
-      mesh.Mode:=momFaceGroups;
-      mesh.Name:=trim(GLMFile.SurfaceHeirachy[s].name);
-      shader:=trim(GLMFile.SurfaceHeirachy[s].shader);
-      AllocateMaterial(mesh.Name,shader);
-
-      // Set size of VerticesBonesWeights
-      NumSurfVert:=0;
-      for c:=0 to GLMFile.SurfaceHeirachy[s].numChildren-1 do begin
-        i:=GLMFile.SurfaceHeirachy[s].childIndices[c]-1;
-        NumSurfVert:=NumSurfVert+GLMFile.LODs[d].Surfaces[i].SurfaceHeader.numVerts;
-      end;
-      mesh.BonesPerVertex:=vGhoul2MaxBonesPerVertex;
-      mesh.VerticeBoneWeightCount:=NumSurfVert;
-      for c:=0 to GLMFile.SurfaceHeirachy[s].numChildren-1 do begin
-        i:=GLMFile.SurfaceHeirachy[s].childIndices[c]-1;
-        with GLMFile.LODs[d].Surfaces[i] do begin
-          VertOfs:=mesh.Vertices.Count;
-          for j:=0 to Length(Vertices)-1 do begin
-            // Add vertices and normals
-            mesh.Vertices.Add(Vertices[j].vertex);
-            mesh.Normals.Add(Vertices[j].normal);
-
-            // Fix and then add the Texture coords
-            vec2:=TexCoords[j];
-            vec2.Y:=1-vec2.Y; // reverse the v coordinate
-            mesh.TexCoords.Add(vec2);
-
-            // Add weighted bones
-            numweights:=G2_GetVertWeights(Vertices[j]);
-            weighttot:=0;
-            for k:=0 to mesh.BonesPerVertex-1 do
-              if k<numweights then begin
-                boneref:=G2_GetVertBoneIndex(Vertices[j],k);
-                boneid:=BoneReferences[boneref];
-                boneweight:=G2_GetVertBoneWeight(Vertices[j],k,weighttot,numweights);
-                mesh.VerticesBonesWeights^[mesh.Vertices.Count-1]^[k].BoneID:=boneid;
-                mesh.VerticesBonesWeights^[mesh.Vertices.Count-1]^[k].Weight:=boneweight;
-              end else begin
-                mesh.VerticesBonesWeights^[mesh.Vertices.Count-1]^[k].BoneID:=0;
-                mesh.VerticesBonesWeights^[mesh.Vertices.Count-1]^[k].Weight:=0;
-              end;
-          end;
-          fg:=TFGVertexIndexList.CreateOwned(mesh.FaceGroups);
-          fg.Mode:=fgmmTriangles;
-          fg.MaterialName:=mesh.Name;
-          for j:=0 to Length(Triangles)-1 do begin
-            // The faces need to be wound in the opposite direction so...
-            fg.VertexIndices.Add(Triangles[j].indices[0]+VertOfs);
-            fg.VertexIndices.Add(Triangles[j].indices[2]+VertOfs);
-            fg.VertexIndices.Add(Triangles[j].indices[1]+VertOfs);
-          end;
-        end;
-      end;
-    end;
-
-  finally
-    GLMFile.Free;
-  end;
-end;
-
-
-// ------------------
-// ------------------ TGLAVectorFile ------------------
-// ------------------
-
-class function TGLAVectorFile.Capabilities : TGLDataFileCapabilities;
-begin
-  Result:=[dfcRead];
-end;
-
-procedure TGLAVectorFile.LoadFromStream(aStream : TStream);
-var
-  GLAFile  : TFileGLA;
-  i,j      : Integer;
-  frame    : TGLSkeletonFrame;
-  CompBone : TGLACompQuatBone;
-  quat     : TQuaternion;
-  pos      : TAffineVector;
-  basepose : TGLSkeletonFrame;
-  bonelist : TGLIntegerList;
-  bone     : TGLSkeletonBone;
-
-begin
-  GLAFile:=TFileGLA.Create;
-  GLAFile.LoadFromStream(aStream);
-  try
-    if not (Owner is TGLActor) then exit;
-
-    TGLActor(Owner).Reference:=aarSkeleton;
-
-    bonelist:=TGLIntegerList.Create;
-    for i:=0 to GLAFile.AnimHeader.numBones-1 do
-      bonelist.Add(i);
-    while bonelist.count>0 do begin
-      if GLAFile.Skeleton[bonelist[0]].parent = -1 then
-        bone:=TGLSkeletonBone.CreateOwned(Owner.Skeleton.RootBones)
-      else begin
-        bone:=Owner.Skeleton.RootBones.BoneByID(GLAFile.Skeleton[bonelist[0]].parent);
-        if Assigned(bone) then
-          bone:=TGLSkeletonBone.CreateOwned(bone)
-      end;
-      if Assigned(bone) then begin
-        bone.Name:=GLAFile.Skeleton[bonelist[0]].Name;
-        bone.BoneID:=bonelist[0];
-      end else
-        bonelist.Add(bonelist[0]);
-      bonelist.Delete(0);
-    end;
-    bonelist.Free;
-
-    // Build the base pose
-    basepose:=TGLSkeletonFrame.CreateOwned(TGLActor(Owner).Skeleton.Frames);
-    basepose.Name:='basepose';
-    basepose.TransformMode:=sftQuaternion;
-    basepose.Position.AddNulls(GLAFile.AnimHeader.numBones);
-    basepose.Quaternion.AddNulls(GLAFile.AnimHeader.numBones);
-
-    // Load animation data
-    for i:=0 to GLAFile.AnimHeader.numFrames-1 do begin
-      // Creates the frame
-      frame:=TGLSkeletonFrame.CreateOwned(TGLActor(Owner).Skeleton.Frames);
-      frame.Name:='Frame'+IntToStr(i);
-      frame.TransformMode:=sftQuaternion;
-
-      for j:=0 to GLAFile.AnimHeader.numBones-1 do begin
-        // Uncompress bone and add to the frame
-        CompBone:=GLAFile.GetCompressedMatrix(i,j);
-        quat:=QuaternionMake([CompBone[1]-32726,CompBone[2]-32726,CompBone[3]-32726],CompBone[0]-32726);
-        pos:=AffineVectorMake(CompBone[4]/64-512,CompBone[5]/64-512,CompBone[6]/64-512);
-        frame.Quaternion.Add(quat);
-        frame.Position.Add(pos);
-      end;
-    end;
-
-    Owner.Skeleton.RootBones.PrepareGlobalMatrices;
-
-    for i:=0 to Owner.MeshObjects.Count-1 do
-      TGLSkeletonMeshObject(Owner.MeshObjects[i]).PrepareBoneMatrixInvertedMeshes;
-
-  finally
-    GLAFile.Free;
-  end;
-end;
-
-
-// ------------------------------------------------------------------
-// ------------------------------------------------------------------
-// ------------------------------------------------------------------
-initialization
-// ------------------------------------------------------------------
-// ------------------------------------------------------------------
-// ------------------------------------------------------------------
-
-   RegisterVectorFileFormat('glm', 'Ghoul2 (GLM) model files', TGLMVectorFile);
-   RegisterVectorFileFormat('glx', 'Ghoul2 (GLX) model files', TGLMVectorFile);
-   RegisterVectorFileFormat('gla', 'Ghoul2 (GLA) animation files', TGLAVectorFile);
-
-end.

+ 4 - 4
Source/GLS.FileOBJ.pas

@@ -165,8 +165,8 @@ type
     procedure Assign(Source: TPersistent); override;
     constructor CreateOwned(aOwner: TglFaceGroups); override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Add(VertexIdx, NormalIdx, TexCoordIdx: Integer);
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure AddToTriangles(aList: TGLAffineVectorList;
@@ -1398,7 +1398,7 @@ begin
 end;
 
 procedure TOBJFGVertexNormalTexIndexList.ReadFromFiler(
-  reader: TVirtualReader);
+  reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1422,7 +1422,7 @@ begin
 end;
 
 procedure TOBJFGVertexNormalTexIndexList.WriteToFiler(
-  writer: TVirtualWriter);
+  writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do

+ 3 - 3
Source/GLS.Imposter.pas

@@ -115,7 +115,7 @@ type
   private
     FBackColor: TGLColor;
     FBuildOffset: TGLCoordinates;
-    FImposterRegister: TPersistentObjectList;
+    FImposterRegister: TGLPersistentObjectList;
     FRenderPoint: TGLRenderPoint;
     FImposterOptions: TImposterOptions;
     FAlphaTreshold: Single;
@@ -129,7 +129,7 @@ type
     procedure SetBuildOffset(AValue: TGLCoordinates);
     procedure SetImposterReference(AValue: TImposterReference);
     procedure InitializeImpostorTexture(const TextureSize: TPoint);
-    property ImposterRegister: TPersistentObjectList read FImposterRegister;
+    property ImposterRegister: TGLPersistentObjectList read FImposterRegister;
     procedure UnregisterImposter(imposter: TImposter);
     function CreateNewImposter: TImposter; virtual;
     procedure PrepareImposters(Sender: TObject; var rci: TGLRenderContextInfo);
@@ -547,7 +547,7 @@ end;
 constructor TGLImposterBuilder.Create(AOwner: TComponent);
 begin
   inherited;
-  FImposterRegister := TPersistentObjectList.Create;
+  FImposterRegister := TGLPersistentObjectList.Create;
   FBackColor := TGLColor.CreateInitialized(Self, clrTransparent);
   FBuildOffset := TGLCoordinates.CreateInitialized(Self, NullHmgPoint, CsPoint);
   FImposterOptions := cDefaultImposterOptions;

+ 4 - 4
Source/GLS.LinePFX.pas

@@ -34,8 +34,8 @@ type
     FLength: Single;
   protected
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Direction of the line.
     property Direction: TAffineVector read FDirection write FDirection;
     // Length of the line
@@ -194,7 +194,7 @@ end;
 // ------------------ TGLLineParticle ------------------
 // ------------------
 
-procedure TGLLineParticle.WriteToFiler(writer: TVirtualWriter);
+procedure TGLLineParticle.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -205,7 +205,7 @@ begin
   end;
 end;
 
-procedure TGLLineParticle.ReadFromFiler(reader: TVirtualReader);
+procedure TGLLineParticle.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 8 - 8
Source/GLS.Material.pas

@@ -597,8 +597,8 @@ type
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
     procedure DestroyHandles;
-    procedure WriteToFiler(writer: TVirtualWriter);
-    procedure ReadFromFiler(reader: TVirtualReader);
+    procedure WriteToFiler(writer: TGLVirtualWriter);
+    procedure ReadFromFiler(reader: TGLVirtualReader);
     procedure SaveToStream(aStream: TStream); virtual;
     procedure LoadFromStream(aStream: TStream); virtual;
     procedure AddMaterialsFromStream(aStream: TStream);
@@ -2405,7 +2405,7 @@ begin
   Result := (FMaterials.Count > 0);
 end;
 
-procedure TGLMaterialLibrary.WriteToFiler(writer: TVirtualWriter);
+procedure TGLMaterialLibrary.WriteToFiler(writer: TGLVirtualWriter);
 var
   i, j: Integer;
   libMat: TGLLibMaterial;
@@ -2575,7 +2575,7 @@ begin
   end;
 end;
 
-procedure TGLMaterialLibrary.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMaterialLibrary.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
   libMat: TGLLibMaterial;
@@ -2747,9 +2747,9 @@ end;
 
 procedure TGLMaterialLibrary.SaveToStream(aStream: TStream);
 var
-  wr: TBinaryWriter;
+  wr: TGLBinaryWriter;
 begin
-  wr := TBinaryWriter.Create(aStream);
+  wr := TGLBinaryWriter.Create(aStream);
   try
     Self.WriteToFiler(wr);
   finally
@@ -2759,9 +2759,9 @@ end;
 
 procedure TGLMaterialLibrary.LoadFromStream(aStream: TStream);
 var
-  rd: TBinaryReader;
+  rd: TGLBinaryReader;
 begin
-  rd := TBinaryReader.Create(aStream);
+  rd := TGLBinaryReader.Create(aStream);
   try
     Self.ReadFromFiler(rd);
   finally

+ 11 - 11
Source/GLS.MaterialEx.pas

@@ -73,16 +73,16 @@ type
       IGLMaterialLibrarySupported)
   private
     FNameHashKey: Integer;
-    FUserList: TPersistentObjectList;
+    FUserList: TGLPersistentObjectList;
     FDefferedInit: Boolean;
     FNotifying: Boolean;
     FIsValid: Boolean;
-    function GetUserList: TPersistentObjectList;
+    function GetUserList: TGLPersistentObjectList;
     function GetMaterialLibraryEx: TGLMaterialLibraryEx;
   protected
     procedure SetName(const AValue: TGLMaterialComponentName); override;
     procedure NotifyChange(Sender: TObject); virtual;
-    property UserList: TPersistentObjectList read GetUserList;
+    property UserList: TGLPersistentObjectList read GetUserList;
     procedure DoOnPrepare(Sender: TGLContext); virtual; abstract;
   public
     destructor Destroy; override;
@@ -892,12 +892,12 @@ type
     FShaders: array[TGLShaderType] of TGLShaderEx;
     FIsValid: Boolean;
     FInfoLog: string;
-    FUniforms: TPersistentObjectList;
+    FUniforms: TGLPersistentObjectList;
     FAutoFill: Boolean;
     function GetLibShaderName(AType: TGLShaderType): string;
     procedure SetLibShaderName(AType: TGLShaderType; const AValue: string);
     function GetUniform(const AName: string): IShaderParameter;
-    class procedure ReleaseUniforms(AList: TPersistentObjectList);
+    class procedure ReleaseUniforms(AList: TGLPersistentObjectList);
     property LibVertexShaderName: TGLMaterialComponentName index shtVertex
       read GetLibShaderName write SetLibShaderName;
     property LibFragmentShaderName: TGLMaterialComponentName index shtFragment
@@ -1324,11 +1324,11 @@ begin
     Result := 0;
 end;
 
-function TGLBaseMaterialCollectionItem.GetUserList: TPersistentObjectList;
+function TGLBaseMaterialCollectionItem.GetUserList: TGLPersistentObjectList;
 begin
   if FUserList = nil then
   begin
-    FUserList := TPersistentObjectList.Create;
+    FUserList := TGLPersistentObjectList.Create;
     FNotifying := False;
   end;
   Result := FUserList;
@@ -4418,7 +4418,7 @@ begin
   FHandle := TGLProgramHandle.Create;
   FHandle.OnPrapare := DoOnPrepare;
   FEnabled := False;
-  FUniforms := TPersistentObjectList.Create;
+  FUniforms := TGLPersistentObjectList.Create;
   FAutoFill := True;
 end;
 
@@ -4447,7 +4447,7 @@ end;
 procedure TGLBaseShaderModel.DoOnPrepare(Sender: TGLContext);
 var
   T: TGLShaderType;
-  LUniforms: TPersistentObjectList;
+  LUniforms: TGLPersistentObjectList;
   LUniform, LUniform2: TGLShaderUniform;
   ID: Cardinal;
   I, J, C: Integer;
@@ -4537,7 +4537,7 @@ begin
               end;
 
               // Get uniforms
-              LUniforms := TPersistentObjectList.Create;
+              LUniforms := TGLPersistentObjectList.Create;
 
               gl.GetProgramiv(ID, GL_ACTIVE_UNIFORMS, @C);
               for I := 0 to C - 1 do
@@ -4826,7 +4826,7 @@ begin
 end;
 
 class procedure TGLBaseShaderModel.ReleaseUniforms(
-  AList: TPersistentObjectList);
+  AList: TGLPersistentObjectList);
 var
   I: Integer;
 begin

+ 1 - 1
Source/GLS.MaterialMultiProxy.pas

@@ -48,7 +48,7 @@ type
   TGLMaterialMultiProxy = class;
 
   {MasterObject description for a MultiProxy object. }
-  TGLMaterialMultiProxyMaster = class(TInterfacedCollectionItem, IGLMaterialLibrarySupported)
+  TGLMaterialMultiProxyMaster = class(TGLInterfacedCollectionItem, IGLMaterialLibrarySupported)
   private
     FMasterObject: TGLBaseSceneObject;
     FMasterLibMaterial: TGLLibMaterial;

+ 3 - 3
Source/GLS.MeshUtils.pas

@@ -144,7 +144,7 @@ procedure WeldVertices(vertices: TGLAffineVectorList; indicesMap: TGLIntegerList
   the agglomerated list of the triangles that couldn't be stripified. 
 *)
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
-  agglomerateLoneTriangles: Boolean = False): TPersistentObjectList;
+  agglomerateLoneTriangles: Boolean = False): TGLPersistentObjectList;
 (* 
   Increases indices coherency wrt vertex caches.
   The indices parameters is understood as vertex indices of a triangles set,
@@ -1033,7 +1033,7 @@ begin
 end;
 
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
-  agglomerateLoneTriangles: Boolean = False): TPersistentObjectList;
+  agglomerateLoneTriangles: Boolean = False): TGLPersistentObjectList;
 var
   accountedTriangles: array of ByteBool;
   vertexTris: array of TGLIntegerList;
@@ -1105,7 +1105,7 @@ var
   loneTriangles: TGLIntegerList;
 begin
   Assert((indices.Count mod 3) = 0, 'indices count is not a multiple of 3!');
-  Result := TPersistentObjectList.Create;
+  Result := TGLPersistentObjectList.Create;
   // direct access and cache vars
   indicesList := indices.list;
   indicesCount := indices.Count;

+ 1 - 1
Source/GLS.MultiPolygon.pas

@@ -93,7 +93,7 @@ type
     procedure GetExtents(var min, max: TAffineVector);
   end;
 
-  TGLPolygonList = class(TPersistentObjectList)
+  TGLPolygonList = class(TGLPersistentObjectList)
   private
     FAktList: TGLAffineVectorList;
     function GetList(I: Integer): TGLAffineVectorList;

+ 8 - 8
Source/GLS.ParametricSurfaces.pas

@@ -85,8 +85,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure Prepare; override;
     procedure Clear; override;
@@ -154,8 +154,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure Prepare; override;
     property CountU: Integer read FCountU write FCountU;
@@ -198,7 +198,7 @@ begin
   inherited;
 end;
 
-procedure TMOParametricSurface.WriteToFiler(writer: TVirtualWriter);
+procedure TMOParametricSurface.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -220,7 +220,7 @@ begin
   end;
 end;
 
-procedure TMOParametricSurface.ReadFromFiler(reader: TVirtualReader);
+procedure TMOParametricSurface.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -460,7 +460,7 @@ begin
   inherited;
 end;
 
-procedure TFGBezierSurface.WriteToFiler(writer: TVirtualWriter);
+procedure TFGBezierSurface.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -478,7 +478,7 @@ begin
   end;
 end;
 
-procedure TFGBezierSurface.ReadFromFiler(reader: TVirtualReader);
+procedure TFGBezierSurface.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 12 - 12
Source/GLS.ParticleFX.pas

@@ -57,7 +57,7 @@ type
      The class implements properties for position, velocity and time, whatever
      you need in excess of that will have to be placed in subclasses (this
      class should remain as compact as possible). *)
-  TGLParticle = class(TPersistentObject)
+  TGLParticle = class(TGLPersistentObject)
   private
     FID, FTag: Integer;
     FManager: TGLParticleFXManager; // NOT persistent
@@ -73,8 +73,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Manager: TGLParticleFXManager read FManager write FManager;
     // Particle's ID, given at birth. ID is a value unique per manager.
     property ID: Integer read FID;
@@ -105,10 +105,10 @@ type
   (* List of particles.
    This list is managed with particles and performance in mind, make sure to
    check methods doc. *)
-  TGLParticleList = class(TPersistentObject)
+  TGLParticleList = class(TGLPersistentObject)
   private
     FOwner: TGLParticleFXManager; // NOT persistent
-    FItemList: TPersistentObjectList;
+    FItemList: TGLPersistentObjectList;
     FDirectList: PGLParticleArray; // NOT persistent
   protected
     function GetItems(index: Integer): TGLParticle;
@@ -117,8 +117,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Refers owner manager
     property Owner: TGLParticleFXManager read FOwner write FOwner;
     property Items[index: Integer]: TGLParticle read GetItems write SetItems; default;
@@ -816,7 +816,7 @@ begin
     FVelocity.V[Index] := aValue;
 end;
 
-procedure TGLParticle.WriteToFiler(writer: TVirtualWriter);
+procedure TGLParticle.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -829,7 +829,7 @@ begin
   end;
 end;
 
-procedure TGLParticle.ReadFromFiler(reader: TVirtualReader);
+procedure TGLParticle.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: integer;
 begin
@@ -854,7 +854,7 @@ end;
 constructor TGLParticleList.Create;
 begin
   inherited Create;
-  FItemList := TPersistentObjectList.Create;
+  FItemList := TGLPersistentObjectList.Create;
   FitemList.GrowthDelta := 64;
   FDirectList := nil;
 end;
@@ -865,7 +865,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLParticleList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLParticleList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -875,7 +875,7 @@ begin
   end;
 end;
 
-procedure TGLParticleList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLParticleList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: integer;
 begin

+ 0 - 1
Source/GLS.PerlinPFX.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.PerlinPFX;
 
 (* PFX particle effects revolving around the use of Perlin noise *)

+ 6 - 6
Source/GLS.PolygonTesselation.pas

@@ -3,7 +3,7 @@
 //
 unit GLS.PolygonTesselation;
 
-(* Code to generate triangle strips and fans for polygons. *)
+(* Code to generate triangle strips and fans for polygons *)
 
 interface
 
@@ -16,9 +16,9 @@ uses
   Scena.OpenGLAdapter,
   Scena.OpenGLTokens,
   Scena.VectorTypes,
+  Scena.VectorGeometry,
   GLS.VectorFileObjects,
-  GLS.VectorLists,
-  Scena.VectorGeometry;
+  GLS.VectorLists;
 
 (* Tesselates the polygon outlined by the Vertexes. And adds them to the first
    facegroup of the Mesh. *)
@@ -70,14 +70,14 @@ end;
 function AllocNewVertex: PAffineVector;
 begin
   Inc(TessExtraVertices);
-  
+
   // Allocate more memory if needed
   if TessExtraVertices > TessVerticesCount then
   begin
     TessVerticesCount := TessVerticesCount * 2;
     Reallocmem(TessVertices, TessVerticesCount * SizeOf(TAffineVector));
   end;
-  
+
   Result := @TessVertices[TessExtraVertices - 1];
 end;
 
@@ -102,7 +102,7 @@ begin
   end
   else
     TessMesh := Mesh.MeshObjects[0];
-	
+
   // vertices count.
   TessVerticesCount := Vertexes.Count;
   // allocate extra buffer used by GLU in complex polygons.

+ 14 - 14
Source/GLS.Ragdoll.pas

@@ -24,7 +24,7 @@ type
   TGLRagdolJoint = class
   end;
 
-  TGLRagdolBoneList = class(TPersistentObjectList)
+  TGLRagdolBoneList = class(TGLPersistentObjectList)
   private
     FRagdoll: TGLRagdoll;
   protected
@@ -32,8 +32,8 @@ type
   public
     constructor Create(Ragdoll: TGLRagdoll); reintroduce;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Ragdoll: TGLRagdoll read FRagdoll;
     property Items[Index: Integer]: TGLRagdolBone read GetRagdollBone; default;
   end;
@@ -74,8 +74,8 @@ type
     constructor CreateOwned(aOwner: TGLRagdolBoneList);
     constructor Create(Ragdoll: TGLRagdoll);
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Owner: TGLRagdolBoneList read FOwner;
     property Name: String read FName write FName;
     property BoneID: Integer read FBoneID write FBoneID;
@@ -88,7 +88,7 @@ type
     property Items[Index: Integer]: TGLRagdolBone read GetRagdollBone; default;
   end;
 
-  TGLRagdoll = class(TPersistentObject)
+  TGLRagdoll = class(TGLPersistentObject)
   private
     FOwner: TGLBaseMesh;
     FRootBone: TGLRagdolBone;
@@ -97,8 +97,8 @@ type
   public
     constructor Create(aOwner: TGLBaseMesh); reintroduce;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Must be set before build the ragdoll
     procedure SetRootBone(RootBone: TGLRagdolBone);
     // Create the bounding box and setup the ragdoll do be started later
@@ -140,13 +140,13 @@ begin
   Result := TGLRagdolBone(List^[Index]);
 end;
 
-procedure TGLRagdolBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLRagdolBoneList.ReadFromFiler(reader: TGLVirtualReader);
 begin
   inherited;
   // Not implemented
 end;
 
-procedure TGLRagdolBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLRagdolBoneList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited;
   // Not implemented
@@ -280,7 +280,7 @@ begin
   Result := TGLRagdolBone(List^[Index]);
 end;
 
-procedure TGLRagdolBone.ReadFromFiler(reader: TVirtualReader);
+procedure TGLRagdolBone.ReadFromFiler(reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -306,7 +306,7 @@ begin
     Items[i].UpdateChild;
 end;
 
-procedure TGLRagdolBone.WriteToFiler(writer: TVirtualWriter);
+procedure TGLRagdolBone.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited;
 end;
@@ -361,7 +361,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLRagdoll.ReadFromFiler(reader: TVirtualReader);
+procedure TGLRagdoll.ReadFromFiler(reader: TGLVirtualReader);
 begin
   inherited;
 end;
@@ -405,7 +405,7 @@ begin
   FOwner.Skeleton.MorphMesh(True);
 end;
 
-procedure TGLRagdoll.WriteToFiler(writer: TVirtualWriter);
+procedure TGLRagdoll.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited;
 

+ 2 - 2
Source/GLS.RenderContextInfo.pas

@@ -86,8 +86,8 @@ type
     IgnoreBlendingRequests: Boolean;
     IgnoreDepthRequests: Boolean;
     Amalgamating: Boolean;
-    Lights: TPersistentObjectList;
-    AfterRenderEffects: TPersistentObjectList;
+    Lights: TGLPersistentObjectList;
+    AfterRenderEffects: TGLPersistentObjectList;
     CurrentMaterialLevel: TGLMaterialLevel;
     PrimitiveMask: TGLMeshPrimitives;
     OrderCounter: Integer;

+ 1 - 1
Source/GLS.Selection.pas

@@ -38,7 +38,7 @@ type
 
   (* List class for object picking.
      This list is used to store the results of a PickObjects call. *)
-  TGLPickList = class(TPersistentObjectList)
+  TGLPickList = class(TGLPersistentObjectList)
   private
     function GetFar(aValue: Integer): Single;
     function GetHit(aValue: Integer): TObject;

+ 2 - 2
Source/GLS.ShadowVolume.pas

@@ -119,7 +119,7 @@ type
   // Specifies an individual shadow casting light.
   TGLShadowVolumeLight = class(TGLShadowVolumeCaster)
   private
-    FSilhouettes: TPersistentObjectList;
+    FSilhouettes: TGLPersistentObjectList;
   protected
     function GetLightSource: TGLLightSource;
     procedure SetLightSource(const ls: TGLLightSource);
@@ -326,7 +326,7 @@ end;
 constructor TGLShadowVolumeLight.Create(ACollection: TCollection);
 begin
   inherited Create(ACollection);
-  FSilhouettes := TPersistentObjectList.Create;
+  FSilhouettes := TGLPersistentObjectList.Create;
 end;
 
 destructor TGLShadowVolumeLight.Destroy;

+ 3 - 3
Source/GLS.SpacePartition.pas

@@ -76,7 +76,7 @@ type
   end;
 
   // Used to store the actual objects in the SpacePartition
-  TGLSpacePartitionLeaf = class(TPersistentObject)
+  TGLSpacePartitionLeaf = class(TGLPersistentObject)
   private
     FSpacePartition: TGLBaseSpacePartition;
     procedure SetSpacePartition(const Value: TGLBaseSpacePartition);
@@ -109,7 +109,7 @@ type
   end;
 
   // List for storing space partition leaves
-  TGLSpacePartitionLeafList = class(TPersistentObjectList)
+  TGLSpacePartitionLeafList = class(TGLPersistentObjectList)
   private
     function GetItems(I: Integer): TGLSpacePartitionLeaf;
     procedure SetItems(I: Integer; const Value: TGLSpacePartitionLeaf);
@@ -132,7 +132,7 @@ type
   TGLCullingMode = (CmFineCulling, CmGrossCulling);
 
   // Basic space partition, does not implement any actual space partitioning
-  TGLBaseSpacePartition = class(TPersistentObject)
+  TGLBaseSpacePartition = class(TGLPersistentObject)
   private
     FCullingMode: TGLCullingMode;
     // Query space for Leaves that intersect a cone, result is returned through QueryResult

+ 12 - 12
Source/GLS.TilePlane.pas

@@ -27,7 +27,7 @@ uses
 
 type
   // Stores row information for a tiled area.
-  TGLTiledAreaRow = class(TPersistentObject)
+  TGLTiledAreaRow = class(TGLPersistentObject)
   private
     FColMin, FColMax: Integer;
     FData: TGLIntegerList;
@@ -39,8 +39,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Cell[col: Integer]: Integer read GetCell write SetCell; default;
     property ColMin: Integer read FColMin write SetColMin;
     property ColMax: Integer read FColMax write SetColMax;
@@ -53,10 +53,10 @@ type
   (* Stores tile information in a tiled area.
     Each tile stores an integer value with zero the default value,
     assumed as "empty". *)
-  TGLTiledArea = class(TPersistentObject)
+  TGLTiledArea = class(TGLPersistentObject)
   private
     FRowMin, FRowMax: Integer;
-    FRows: TPersistentObjectList;
+    FRows: TGLPersistentObjectList;
   protected
     procedure SetRowMin(const val: Integer);
     procedure SetRowMax(const val: Integer);
@@ -66,8 +66,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Tile[col, row: Integer]: Integer read GetTile write SetTile; default;
     property row[index: Integer]: TGLTiledAreaRow read GetRow;
     property RowMin: Integer read FRowMin write SetRowMin;
@@ -139,7 +139,7 @@ begin
   inherited;
 end;
 
-procedure TGLTiledAreaRow.WriteToFiler(writer: TVirtualWriter);
+procedure TGLTiledAreaRow.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -150,7 +150,7 @@ begin
   end;
 end;
 
-procedure TGLTiledAreaRow.ReadFromFiler(reader: TVirtualReader);
+procedure TGLTiledAreaRow.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -284,7 +284,7 @@ end;
 constructor TGLTiledArea.Create;
 begin
   inherited;
-  FRows := TPersistentObjectList.Create;
+  FRows := TGLPersistentObjectList.Create;
   FRowMax := -1;
 end;
 
@@ -294,7 +294,7 @@ begin
   inherited;
 end;
 
-procedure TGLTiledArea.WriteToFiler(writer: TVirtualWriter);
+procedure TGLTiledArea.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -305,7 +305,7 @@ begin
   end;
 end;
 
-procedure TGLTiledArea.ReadFromFiler(reader: TVirtualReader);
+procedure TGLTiledArea.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 82 - 82
Source/GLS.VectorFileObjects.pas

@@ -56,7 +56,7 @@ type
     A base class for mesh objects. The class introduces a set of vertices and
     normals for the object but does no rendering of its own
   *)
-  TGLBaseMeshObject = class(TPersistentObject)
+  TGLBaseMeshObject = class(TGLPersistentObject)
   private
     FName: string;
     FVertices: TGLAffineVectorList;
@@ -70,8 +70,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Clears all mesh object data, submeshes, facegroups, etc.
     procedure Clear; virtual;
     // Translates all the vertices by the given delta.
@@ -118,7 +118,7 @@ type
     so that the local matrices will be recalculated (the call to Flush does
     not recalculate the matrices, but marks the current ones as dirty)
   *)
-  TGLSkeletonFrame = class(TPersistentObject)
+  TGLSkeletonFrame = class(TGLPersistentObject)
   private
     FOwner: TGLSkeletonFrameList;
     FName: string;
@@ -135,8 +135,8 @@ type
     constructor CreateOwned(aOwner: TGLSkeletonFrameList);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Owner: TGLSkeletonFrameList read FOwner;
     property Name: string read FName write FName;
     // Position values for the joints.
@@ -163,7 +163,7 @@ type
   end;
 
   // A list of TGLSkeletonFrame objects
-  TGLSkeletonFrameList = class(TPersistentObjectList)
+  TGLSkeletonFrameList = class(TGLPersistentObjectList)
   private
     FOwner: TPersistent;
   protected
@@ -171,7 +171,7 @@ type
   public
     constructor CreateOwned(aOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // As the name states; Convert Quaternions to Rotations or vice-versa.
     procedure ConvertQuaternionsToRotations(KeepQuaternions: Boolean = True; SetTransformMode: Boolean = True);
     procedure ConvertRotationsToQuaternions(KeepRotations: Boolean = True; SetTransformMode: Boolean = True);
@@ -184,7 +184,7 @@ type
   TGLSkeletonBone = class;
 
   // A list of skeleton bones
-  TGLSkeletonBoneList = class(TPersistentObjectList)
+  TGLSkeletonBoneList = class(TGLPersistentObjectList)
   private
     FSkeleton: TGLSkeleton; // not persistent
   protected
@@ -195,8 +195,8 @@ type
     constructor CreateOwned(aOwner: TGLSkeleton);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Skeleton: TGLSkeleton read FSkeleton;
     property Items[Index: Integer]: TGLSkeletonBone read GetSkeletonBone; default;
     // Returns a bone by its BoneID, nil if not found.
@@ -213,8 +213,8 @@ type
   // This list store skeleton root bones exclusively
   TGLSkeletonRootBoneList = class(TGLSkeletonBoneList)
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Render skeleton wireframe
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     property GlobalMatrix: TGLMatrix read FGlobalMatrix write FGlobalMatrix;
@@ -239,8 +239,8 @@ type
     constructor CreateOwned(aOwner: TGLSkeletonBoneList);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     // Render skeleton wireframe
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     property Owner: TGLSkeletonBoneList read FOwner;
@@ -278,7 +278,7 @@ type
     to create skeleton driven Verlet Constraints, ODE Geoms, etc.
     Overriden classes should be named as TSCxxxxx.
   *)
-  TGLSkeletonCollider = class(TPersistentObject)
+  TGLSkeletonCollider = class(TGLPersistentObject)
   private
     FOwner: TGLSkeletonColliderList;
     FBone: TGLSkeletonBone;
@@ -291,8 +291,8 @@ type
   public
     constructor Create; override;
     constructor CreateOwned(AOwner: TGLSkeletonColliderList);
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     (* This method is used to align the colliders and their
       derived objects to their associated skeleton bone.
       Override to set up descendant class alignment properties. *)
@@ -309,7 +309,7 @@ type
   end;
 
   // List class for storing TGLSkeletonCollider objects
-  TGLSkeletonColliderList = class(TPersistentObjectList)
+  TGLSkeletonColliderList = class(TGLPersistentObjectList)
   private
     FOwner: TPersistent;
   protected
@@ -317,7 +317,7 @@ type
   public
     constructor CreateOwned(AOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Clear; override;
     // Calls AlignCollider for each collider in the list.
     procedure AlignColliders;
@@ -340,7 +340,7 @@ type
   (* Main skeleton object. This class stores the bones hierarchy and animation frames.
     It is also responsible for maintaining the "CurrentFrame" and allowing
     various frame blending operations. *)
-  TGLSkeleton = class(TPersistentObject)
+  TGLSkeleton = class(TGLPersistentObject)
   private
     FOwner: TGLBaseMesh;
     FRootBones: TGLSkeletonRootBoneList;
@@ -360,8 +360,8 @@ type
     constructor CreateOwned(aOwner: TGLBaseMesh);
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Owner: TGLBaseMesh read FOwner;
     property RootBones: TGLSkeletonRootBoneList read FRootBones write SetRootBones;
     property Frames: TGLSkeletonFrameList read FFrames write SetFrames;
@@ -477,8 +477,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Clear; override;
     function ExtractTriangles(texCoords: TGLAffineVectorList = nil;
 	  Normals: TGLAffineVectorList = nil): TGLAffineVectorList; override;
@@ -537,7 +537,7 @@ type
   end;
 
   // A list of TGLMeshObject objects.
-  TGLMeshObjectList = class(TPersistentObjectList)
+  TGLMeshObjectList = class(TGLPersistentObjectList)
   private
     FOwner: TGLBaseMesh;
     // Returns True if all its MeshObjects use VBOs.
@@ -548,7 +548,7 @@ type
   public
     constructor CreateOwned(aOwner: TGLBaseMesh);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TGLMaterialLibrary);
     procedure DropMaterialLibraryCache;
     (* Prepare the texture and materials before rendering.
@@ -592,13 +592,13 @@ type
   public
     constructor CreateOwned(aOwner: TGLMeshMorphTargetList);
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     property Owner: TGLMeshMorphTargetList read FOwner;
   end;
 
   // A list of TGLMeshMorphTarget objects. 
-  TGLMeshMorphTargetList = class(TPersistentObjectList)
+  TGLMeshMorphTargetList = class(TGLPersistentObjectList)
   private
     FOwner: TPersistent;
   protected
@@ -606,7 +606,7 @@ type
   public
     constructor CreateOwned(AOwner: TPersistent);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Translate(const delta: TAffineVector);
     property Owner: TPersistent read FOwner;
     procedure Clear; override;
@@ -621,8 +621,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Clear; override;
     procedure Translate(const delta: TAffineVector); override;
     procedure MorphTo(morphTargetIndex: Integer); virtual;
@@ -666,8 +666,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure Clear; override;
     property VerticesBonesWeights: PGLVerticesBoneWeights read FVerticesBonesWeights;
     property VerticeBoneWeightCount: Integer read FVerticeBoneWeightCount write SetVerticeBoneWeightCount;
@@ -687,7 +687,7 @@ type
     Subclasses implement the actual behaviours, and should have at least
     one "Add" method, taking in parameters all that is required to describe
     a single base facegroup element. *)
-  TGLFaceGroup = class(TPersistentObject)
+  TGLFaceGroup = class(TGLPersistentObject)
   private
     FOwner: TGLFaceGroups;
     FMaterialName: string;
@@ -701,8 +701,8 @@ type
   public
     constructor CreateOwned(aOwner: TGLFaceGroups); virtual;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TGLMaterialLibrary);
     procedure DropMaterialLibraryCache;
     procedure BuildList(var mrci: TGLRenderContextInfo); virtual; abstract;
@@ -750,8 +750,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure AddToTriangles(aList: TGLAffineVectorList; aTexCoords: TGLAffineVectorList = nil;
       aNormals: TGLAffineVectorList = nil); override;
@@ -780,8 +780,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure AddToTriangles(aList: TGLAffineVectorList; aTexCoords: TGLAffineVectorList = nil;
       aNormals: TGLAffineVectorList = nil); override;
@@ -801,8 +801,8 @@ type
   public
     constructor Create; override;
     destructor Destroy; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure AddToTriangles(aList: TGLAffineVectorList; aTexCoords: TGLAffineVectorList = nil;
       aNormals: TGLAffineVectorList = nil); override;
@@ -812,7 +812,7 @@ type
   end;
 
   // A list of TGLFaceGroup objects. 
-  TGLFaceGroups = class(TPersistentObjectList)
+  TGLFaceGroups = class(TGLPersistentObjectList)
   private
     FOwner: TGLMeshObject;
   protected
@@ -820,7 +820,7 @@ type
   public
     constructor CreateOwned(aOwner: TGLMeshObject);
     destructor Destroy; override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure PrepareMaterialLibraryCache(matLib: TGLMaterialLibrary);
     procedure DropMaterialLibraryCache;
     property Owner: TGLMeshObject read FOwner;
@@ -1295,7 +1295,7 @@ type
   end;
 
   // Stores registered vector file formats 
-  TGLVectorFileFormatsList = class(TPersistentObjectList)
+  TGLVectorFileFormatsList = class(TGLPersistentObjectList)
   public
     destructor Destroy; override;
     procedure Add(const Ext, Desc: string; DescID: Integer; AClass: TGLVectorFileClass);
@@ -1549,7 +1549,7 @@ begin
     inherited; // Die!
 end;
 
-procedure TGLBaseMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TGLBaseMeshObject.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -1562,7 +1562,7 @@ begin
   end;
 end;
 
-procedure TGLBaseMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TGLBaseMeshObject.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1841,7 +1841,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLSkeletonFrame.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonFrame.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -1855,7 +1855,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonFrame.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonFrame.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2021,7 +2021,7 @@ begin
   inherited;
 end;
 
-procedure TGLSkeletonFrameList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonFrameList.ReadFromFiler(reader: TGLVirtualReader);
 var
   i: Integer;
 begin
@@ -2094,7 +2094,7 @@ begin
   inherited;
 end;
 
-procedure TGLSkeletonBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonBoneList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2104,7 +2104,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonBoneList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2182,7 +2182,7 @@ end;
 // ------------------ TGLSkeletonRootBoneList ------------------
 // ------------------
 
-procedure TGLSkeletonRootBoneList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonRootBoneList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2192,7 +2192,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonRootBoneList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonRootBoneList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2247,7 +2247,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLSkeletonBone.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonBone.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2259,7 +2259,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonBone.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonBone.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -2383,7 +2383,7 @@ begin
     FOwner.Add(Self);
 end;
 
-procedure TGLSkeletonCollider.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonCollider.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2397,7 +2397,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonCollider.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonCollider.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2463,7 +2463,7 @@ begin
   Result := TGLSkeletonCollider(inherited Get(index));
 end;
 
-procedure TGLSkeletonColliderList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonColliderList.ReadFromFiler(reader: TGLVirtualReader);
 var
   i: Integer;
 begin
@@ -2525,7 +2525,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLSkeleton.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeleton.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -2541,7 +2541,7 @@ begin
   end;
 end;
 
-procedure TGLSkeleton.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeleton.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2969,7 +2969,7 @@ begin
   end;
 end;
 
-procedure TGLMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TGLMeshObject.WriteToFiler(writer: TGLVirtualWriter);
 var
   i: Integer;
 begin
@@ -2992,7 +2992,7 @@ begin
   end;
 end;
 
-procedure TGLMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMeshObject.ReadFromFiler(reader: TGLVirtualReader);
 var
   i, Count, archiveVersion: Integer;
   lOldLightMapTexCoords: TGLTexPointList;
@@ -4206,7 +4206,7 @@ begin
   inherited;
 end;
 
-procedure TGLMeshObjectList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMeshObjectList.ReadFromFiler(reader: TGLVirtualReader);
 var
   i: Integer;
   mesh: TGLMeshObject;
@@ -4517,7 +4517,7 @@ begin
   inherited;
 end;
 
-procedure TGLMeshMorphTarget.WriteToFiler(writer: TVirtualWriter);
+procedure TGLMeshMorphTarget.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -4527,7 +4527,7 @@ begin
   end;
 end;
 
-procedure TGLMeshMorphTarget.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMeshMorphTarget.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -4558,7 +4558,7 @@ begin
   inherited;
 end;
 
-procedure TGLMeshMorphTargetList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMeshMorphTargetList.ReadFromFiler(reader: TGLVirtualReader);
 var
   i: Integer;
 begin
@@ -4609,7 +4609,7 @@ begin
   inherited;
 end;
 
-procedure TGLMorphableMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TGLMorphableMeshObject.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -4619,7 +4619,7 @@ begin
   end;
 end;
 
-procedure TGLMorphableMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TGLMorphableMeshObject.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -4714,7 +4714,7 @@ begin
   inherited Destroy;
 end;
 
-procedure TGLSkeletonMeshObject.WriteToFiler(writer: TVirtualWriter);
+procedure TGLSkeletonMeshObject.WriteToFiler(writer: TGLVirtualWriter);
 var
   i: Integer;
 begin
@@ -4730,7 +4730,7 @@ begin
   end;
 end;
 
-procedure TGLSkeletonMeshObject.ReadFromFiler(reader: TVirtualReader);
+procedure TGLSkeletonMeshObject.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion, i: Integer;
 begin
@@ -5097,7 +5097,7 @@ begin
   inherited;
 end;
 
-procedure TGLFaceGroup.WriteToFiler(writer: TVirtualWriter);
+procedure TGLFaceGroup.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5116,7 +5116,7 @@ begin
   end;
 end;
 
-procedure TGLFaceGroup.ReadFromFiler(reader: TVirtualReader);
+procedure TGLFaceGroup.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5224,7 +5224,7 @@ begin
   inherited;
 end;
 
-procedure TFGVertexIndexList.WriteToFiler(writer: TVirtualWriter);
+procedure TFGVertexIndexList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5235,7 +5235,7 @@ begin
   end;
 end;
 
-procedure TFGVertexIndexList.ReadFromFiler(reader: TVirtualReader);
+procedure TFGVertexIndexList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5501,7 +5501,7 @@ begin
   inherited;
 end;
 
-procedure TFGVertexNormalTexIndexList.WriteToFiler(writer: TVirtualWriter);
+procedure TFGVertexNormalTexIndexList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5512,7 +5512,7 @@ begin
   end;
 end;
 
-procedure TFGVertexNormalTexIndexList.ReadFromFiler(reader: TVirtualReader);
+procedure TFGVertexNormalTexIndexList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5614,7 +5614,7 @@ begin
   inherited;
 end;
 
-procedure TFGIndexTexCoordList.WriteToFiler(writer: TVirtualWriter);
+procedure TFGIndexTexCoordList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -5624,7 +5624,7 @@ begin
   end;
 end;
 
-procedure TFGIndexTexCoordList.ReadFromFiler(reader: TVirtualReader);
+procedure TFGIndexTexCoordList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -5767,7 +5767,7 @@ begin
   inherited;
 end;
 
-procedure TGLFaceGroups.ReadFromFiler(reader: TVirtualReader);
+procedure TGLFaceGroups.ReadFromFiler(reader: TGLVirtualReader);
 var
   i: Integer;
 begin

+ 11 - 11
Source/GLS.VectorLists.pas

@@ -22,7 +22,7 @@ type
   TGLBaseListOptions = set of TGLBaseListOption;
 
   // Base class for lists, introduces common behaviours
-  TGLBaseList = class(TPersistentObject)
+  TGLBaseList = class(TGLPersistentObject)
   private
     FCount: Integer;
     FCapacity: Integer;
@@ -52,8 +52,8 @@ type
     constructor Create; override;
     destructor Destroy; override;
     procedure Assign(Src: TPersistent); override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure AddNulls(nbVals: Cardinal);
     procedure InsertNulls(Index: Integer; nbVals: Cardinal);
     procedure AdjustCapacityToAtLeast(const size: Integer);
@@ -93,8 +93,8 @@ type
   protected
     function GetItemAddress(Index: Integer): PFloatArray; inline;
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure GetExtents(out min, max: TAffineVector); virtual;
     function Sum: TAffineVector;
     procedure Normalize; virtual;
@@ -503,7 +503,7 @@ procedure QuickSortLists(startIndex, endIndex: Integer; refList: TGLSingleList;
 procedure QuickSortLists(startIndex, endIndex: Integer; refList: TGLSingleList; objList: TGLBaseList); overload;
 (* Sort the refList in ascending order, ordering objList on the way.
    Use if, and *ONLY* if refList contains only values superior or equal to 1 *)
-procedure FastQuickSortLists(startIndex, endIndex: Integer; const refList: TGLSingleList; const objList: TPersistentObjectList);
+procedure FastQuickSortLists(startIndex, endIndex: Integer; const refList: TGLSingleList; const objList: TGLPersistentObjectList);
 
 // ------------------------------------------------------------------
 implementation
@@ -617,7 +617,7 @@ begin
   end;
 end;
 
-procedure FastQuickSortLists(startIndex, endIndex: Integer; const refList: TGLSingleList; const objList: TPersistentObjectList);
+procedure FastQuickSortLists(startIndex, endIndex: Integer; const refList: TGLSingleList; const objList: TGLPersistentObjectList);
 var
   ppl:      PIntegerArray;
   oTemp:    Pointer;
@@ -745,7 +745,7 @@ begin
   AWriter.WriteString(lOutputText);
 end;
 
-procedure TGLBaseList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLBaseList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited;
   with writer do
@@ -758,7 +758,7 @@ begin
   end;
 end;
 
-procedure TGLBaseList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLBaseList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -1006,7 +1006,7 @@ end;
 // ------------------ TGLBaseVectorList ------------------
 // ------------------
 
-procedure TGLBaseVectorList.WriteToFiler(writer: TVirtualWriter);
+procedure TGLBaseVectorList.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited;
   if Self is TGLTexPointList then
@@ -1018,7 +1018,7 @@ begin
   end;
 end;
 
-procedure TGLBaseVectorList.ReadFromFiler(reader: TVirtualReader);
+procedure TGLBaseVectorList.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 12 - 12
Source/GLS.VerletTypes.pas

@@ -672,8 +672,8 @@ type
   private
     FVerletConstraint: TGLVerletConstraint;
   public
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TGLVerletWorld); virtual;
     // The verlet constraint is created through the AddToVerletWorld procedure
     property VerletConstraint: TGLVerletConstraint read FVerletConstraint;
@@ -687,8 +687,8 @@ type
     procedure SetRadius(const Val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TGLVerletWorld); override;
     procedure AlignCollider; override;
     property Radius: Single read FRadius write SetRadius;
@@ -703,8 +703,8 @@ type
     procedure SetLength(const Val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     procedure AddToVerletWorld(VerletWorld: TGLVerletWorld); override;
     procedure AlignCollider; override;
     property Radius: Single read FRadius write SetRadius;
@@ -2610,13 +2610,13 @@ end;
 // ------------------
 // ------------------ TGLVerletSkeletonCollider ------------------
 // ------------------
-procedure TGLVerletSkeletonCollider.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLVerletSkeletonCollider.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
 end;
 
-procedure TGLVerletSkeletonCollider.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLVerletSkeletonCollider.ReadFromFiler(Reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2645,14 +2645,14 @@ begin
   AlignCollider;
 end;
 
-procedure TGLVerletSphere.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLVerletSphere.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
   Writer.WriteFloat(FRadius);
 end;
 
-procedure TGLVerletSphere.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLVerletSphere.ReadFromFiler(Reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -2701,7 +2701,7 @@ begin
   AlignCollider;
 end;
 
-procedure TGLVerletCapsule.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLVerletCapsule.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(Writer);
   Writer.WriteInteger(0); // Archive Version 0
@@ -2709,7 +2709,7 @@ begin
   Writer.WriteFloat(FLength);
 end;
 
-procedure TGLVerletCapsule.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLVerletCapsule.ReadFromFiler(Reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 2 - 2
Source/GLS.WaterPlane.pas

@@ -42,7 +42,7 @@ const
    private
      FLocks: packed array of ByteBool;
      FPositions, FVelocity: packed array of Single;
-     FPlaneQuadIndices: TPersistentObjectList;
+     FPlaneQuadIndices: TGLPersistentObjectList;
      FPlaneQuadTexCoords: TGLTexPointList;
      FPlaneQuadVertices: TGLAffineVectorList;
      FPlaneQuadNormals: TGLAffineVectorList;
@@ -132,7 +132,7 @@ begin
   FMaximumCatchupIterations := 1;
   FOptions := cDefaultWaterPlaneOptions;
 
-  FPlaneQuadIndices := TPersistentObjectList.Create;
+  FPlaneQuadIndices := TGLPersistentObjectList.Create;
   FPlaneQuadTexCoords := TGLTexPointList.Create;
   FPlaneQuadVertices := TGLAffineVectorList.Create;
   FPlaneQuadNormals := TGLAffineVectorList.Create;

+ 1 - 1
Source/GLS.XCollection.pas

@@ -32,7 +32,7 @@ type
     methods if you add data in a subclass !
     Subclasses must be registered using the RegisterXCollectionItemClass
     function for proper operation *)
-  TXCollectionItem = class(TInterfacedPersistent)
+  TXCollectionItem = class(TGLInterfacedPersistent)
   private
     FOwner: TXCollection;
     FName: string;

+ 1 - 1
Source/GLSL.TextureShaders.pas

@@ -43,7 +43,7 @@ uses
 type
   TGLTextureSharingShader = class;
 
-  TGLTextureSharingShaderMaterial = class(TInterfacedCollectionItem, IGLMaterialLibrarySupported)
+  TGLTextureSharingShaderMaterial = class(TGLInterfacedCollectionItem, IGLMaterialLibrarySupported)
   private
     FTextureMatrix: TGLMatrix;
     FNeedToUpdateTextureMatrix: Boolean;

+ 2 - 2
Source/Physics.ODEManager.pas

@@ -67,7 +67,7 @@ type
     FOnCustomCollision: TGLODECustomCollisionEvent;
     FNumContactJoints,
 	FMaxContacts: Integer;
-    FODEBehaviours: TPersistentObjectList;
+    FODEBehaviours: TGLPersistentObjectList;
     FRFContactList: TList;
     FIterations: Integer;
     FSolver: TGLODESolverMethod;
@@ -1297,7 +1297,7 @@ begin
 
   inherited;
 
-  FODEBehaviours:= TPersistentObjectList.Create;
+  FODEBehaviours:= TGLPersistentObjectList.Create;
   FRFContactList:= TList.Create;
 
   FGravity:= TGLCoordinates.CreateInitialized(Self, NullHmgPoint, csVector);

+ 16 - 16
Source/Physics.ODESkeletonColliders.pas

@@ -23,8 +23,8 @@ type
   private
     FGeom: PdxGeom;
   public
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); virtual;
     procedure AlignCollider; override;
     // The geoms are created through the AddToSpace procedure
@@ -39,8 +39,8 @@ type
     procedure SetRadius(const val: TdReal);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
 
     property Radius: TdReal read FRadius write SetRadius;
@@ -55,8 +55,8 @@ type
     procedure SetLength(const val: Single);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
     property Radius: Single read FRadius write SetRadius;
     property Length: Single read FLength write SetLength;
@@ -72,8 +72,8 @@ type
     procedure SetBoxDepth(const val: TdReal);
   public
     constructor Create; override;
-    procedure WriteToFiler(writer: TVirtualWriter); override;
-    procedure ReadFromFiler(reader: TVirtualReader); override;
+    procedure WriteToFiler(writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(reader: TGLVirtualReader); override;
     procedure AddToSpace(Space: PdxSpace); override;
     property BoxWidth: TdReal read FBoxWidth write SetBoxWidth;
     property BoxHeight: TdReal read FBoxHeight write SetBoxHeight;
@@ -104,7 +104,7 @@ end;
 // ------------------ TSCODEBase ------------------
 // ------------------
 
-procedure TSCODEBase.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBase.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -113,7 +113,7 @@ begin
   end;
 end;
 
-procedure TSCODEBase.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBase.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -169,7 +169,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODESphere.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODESphere.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -179,7 +179,7 @@ begin
   end;
 end;
 
-procedure TSCODESphere.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODESphere.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -220,7 +220,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODECCylinder.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODECCylinder.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -231,7 +231,7 @@ begin
   end;
 end;
 
-procedure TSCODECCylinder.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODECCylinder.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin
@@ -286,7 +286,7 @@ begin
   AlignCollider;
 end;
 
-procedure TSCODEBox.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBox.WriteToFiler(writer: TGLVirtualWriter);
 begin
   inherited WriteToFiler(writer);
   with writer do
@@ -298,7 +298,7 @@ begin
   end;
 end;
 
-procedure TSCODEBox.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBox.ReadFromFiler(reader: TGLVirtualReader);
 var
   archiveVersion: Integer;
 begin

+ 2 - 2
Source/CUDA.APIComps.pas → Source/VCL/CUDA.APIComps.pas

@@ -56,7 +56,7 @@ type
   TCUDAComponent = class(TCUDAHandlesMaster)
   private
     FMaster: TCUDAComponent;
-    FItems: TPersistentObjectList;
+    FItems: TGLPersistentObjectList;
     procedure SetMaster(AMaster: TCUDAComponent);
     function GetItem(const i: Integer): TCUDAComponent;
     function GetItemsCount: Integer;
@@ -1062,7 +1062,7 @@ end;
 procedure TCUDAComponent.AddItem(AItem: TCUDAComponent);
 begin
   if not Assigned(FItems) then
-    FItems := TPersistentObjectList.Create;
+    FItems := TGLPersistentObjectList.Create;
   FItems.Add(AItem);
 end;
 

+ 0 - 0
Source/CUDA.Compiler.pas → Source/VCL/CUDA.Compiler.pas


+ 0 - 0
Source/CUDA.Context.pas → Source/VCL/CUDA.Context.pas


+ 0 - 0
Source/CUDA.EditorFm.dfm → Source/VCL/CUDA.EditorFm.dfm


+ 0 - 0
Source/CUDA.EditorFm.pas → Source/VCL/CUDA.EditorFm.pas


+ 0 - 0
Source/CUDA.FFTPlan.pas → Source/VCL/CUDA.FFTPlan.pas


+ 0 - 0
Source/CUDA.Graphics.pas → Source/VCL/CUDA.Graphics.pas


+ 0 - 0
Source/CUDA.PropEditors.pas → Source/VCL/CUDA.PropEditors.pas


+ 0 - 0
Source/CUDA.Register.pas → Source/VCL/CUDA.Register.pas


+ 0 - 0
Source/Cg.BombShader.pas → Source/VCL/Cg.BombShader.pas


+ 0 - 0
Source/Cg.PostTransformationShader.pas → Source/VCL/Cg.PostTransformationShader.pas


+ 0 - 0
Source/Cg.Register.pas → Source/VCL/Cg.Register.pas


+ 0 - 0
Source/Cg.Shader.pas → Source/VCL/Cg.Shader.pas


+ 0 - 0
Source/Formats.B3D.pas → Source/VCL/Formats.B3D.pas


+ 2 - 2
Source/Formats.HDRImage.pas → Source/VCL/Formats.HDRImage.pas

@@ -22,6 +22,7 @@ uses
   Scena.VectorTypes,
   Scena.OpenGLTokens,
   Scena.VectorGeometry,
+  Scena.TextureFormat,
   GLS.Graphics;
 
 type
@@ -37,8 +38,7 @@ implementation
 //--------------------------------------------------------------------
 
 uses
-  GLS.FileHDR,
-  Scena.TextureFormat;
+  GLS.FileHDR;
 
 // ------------------
 // ------------------ THDRImage ------------------

+ 0 - 0
Source/Formats.OCT.pas → Source/VCL/Formats.OCT.pas


+ 1 - 1
Source/Formats.TGA.pas → Source/VCL/Formats.TGA.pas

@@ -3,7 +3,7 @@
 //
 unit Formats.TGA;
 
-(* Graphic engine friendly loading of TGA image. *)
+(* Graphic engine friendly loading of TGA image *)
 
 interface
 

+ 0 - 0
Source/Formats.VRML.pas → Source/VCL/Formats.VRML.pas


+ 2 - 2
Source/Formats.X.pas → Source/VCL/Formats.X.pas

@@ -3,7 +3,7 @@
 //
 unit Formats.X;
 
-(* Simple X format support for Microsoft's favorite format *)
+(* Loading simple X format files for Microsoft's favorite format *)
 
 interface
 
@@ -47,7 +47,7 @@ type
 
   TDXMaterialList = class;
 
-  TDXMaterial = class(TPersistentObject)
+  TDXMaterial = class(TGLPersistentObject)
   private
     FDiffuse: TVector4f;
     FSpecPower: Single;

+ 1 - 1
Source/VCL/GLS.ArchiveManager.pas

@@ -72,7 +72,7 @@ type
   end;
 
   // The list of registered classes
-  TGLArchiveFileFormatsList = class(TPersistentObjectList)
+  TGLArchiveFileFormatsList = class(TGLPersistentObjectList)
   public
     destructor Destroy; override;
     procedure Add(const Ext, Desc: string; DescID: integer;

+ 1 - 1
Source/VCL/GLS.BaseClasses.pas

@@ -37,7 +37,7 @@ type
   end;
 
   // An abstract class describing the "update" interface.
-  TGLUpdateAbleObject = class(TInterfacedPersistent, IGLNotifyAble)
+  TGLUpdateAbleObject = class(TGLInterfacedPersistent, IGLNotifyAble)
   private
     FOwner: TPersistent;
     FUpdating: Integer;

+ 0 - 0
Source/GLS.BaseMeshSilhouette.pas → Source/VCL/GLS.BaseMeshSilhouette.pas


+ 0 - 0
Source/GLS.Behaviours.pas → Source/VCL/GLS.Behaviours.pas


+ 4 - 4
Source/GLS.BitmapFont.pas → Source/VCL/GLS.BitmapFont.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.BitmapFont;
 
 (* Bitmap Fonts management classes *)
@@ -19,8 +18,11 @@ uses
   Vcl.StdCtrls,
   
   Scena.OpenGLTokens,
-  GLS.Scene,
+  Scena.TextureFormat,
+  Scena.VectorTypes,
   Scena.VectorGeometry,
+
+  GLS.Scene,
   GLS.Context,
   GLS.Texture,
   GLS.State,
@@ -29,8 +31,6 @@ uses
   GLS.Color,
   GLS.BaseClasses,
   GLS.RenderContextInfo,
-  Scena.TextureFormat,
-  Scena.VectorTypes,
   GLS.PersistentClasses;
 
 type

+ 4 - 4
Source/GLS.FBORenderer.pas → Source/VCL/GLS.FBORenderer.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.FBORenderer;
 
 (* Implements FBO support *)
@@ -15,9 +14,12 @@ uses
   Winapi.OpenGLext,
   System.Classes,
   System.SysUtils,
-  
+
   Scena.OpenGLTokens,
+  Scena.TextureFormat,
+  Scena.VectorTypes,
   Scena.VectorGeometry,
+
   GLS.PersistentClasses,
   Scena.PipelineTransformation,
   GLS.Scene,
@@ -27,8 +29,6 @@ uses
   GLS.Material,
   GLS.RenderContextInfo,
   GLS.State,
-  Scena.TextureFormat,
-  Scena.VectorTypes,
   GLS.MultiSampleImage,
   Scena.Logger;
 

+ 1 - 1
Source/GLS.Feedback.pas → Source/VCL/GLS.Feedback.pas

@@ -27,9 +27,9 @@ uses
   Scena.OpenGLTokens,
   Scena.VectorTypes,
   Scena.VectorGeometry,
+  Scena.PipelineTransformation,
 
   GLS.PersistentClasses,
-  Scena.PipelineTransformation,
   GLS.VectorLists,
   GLS.Scene,
   GLS.VectorFileObjects,

+ 8 - 6
Source/GLS.File3DPDF.pas → Source/VCL/GLS.File3DPDF.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.File3DPDF;
 
 (* 3D PDF converter of GLScene's models *)
@@ -192,7 +191,9 @@ begin
 end;
 
 
-{ TGLIDTFVectorFile }
+//=============================
+//    TGLIDTFVectorFile
+//=============================
 
 class function TGLIDTFVectorFile.Capabilities: TGLDataFileCapabilities;
 begin
@@ -268,8 +269,7 @@ var
 begin
   // ++ todo: save more than one mesh
   Mesh:= Owner.MeshObjects[0];
-//  BuildNormals(Mesh);
-
+  // BuildNormals(Mesh);
 
   // count
   NormalList:= '';
@@ -308,7 +308,7 @@ begin
   // points
 
   // normals
-//  FMeshObject.BuildNormals(FMeshObject.Vertices., momFaceGroups);  ++
+  //  FMeshObject.BuildNormals(FMeshObject.Vertices., momFaceGroups);  ++
   NormalCount:= Mesh.Normals.Count;
   NormalList:= '';
   for I:= 0 to Pred(Mesh.Normals.Count) do
@@ -330,7 +330,9 @@ begin
 end;
 
 
-{ TGLU3DVectorFile }
+//==================================
+//      TGLU3DVectorFile
+//==================================
 
 class function TGLU3DVectorFile.Capabilities: TGLDataFileCapabilities;
 begin

+ 54 - 54
Source/VCL/GLS.File3DS.pas

@@ -49,7 +49,7 @@ type
   end;
 
   // An abstract class that describes how to interpolate animation keys.
-  TGLFile3DSAnimationKeys = class(TPersistentObject)
+  TGLFile3DSAnimationKeys = class(TGLPersistentObject)
   private
     FNumKeys: Integer;
     FKeys: array of TKeyHeader3DS;
@@ -62,8 +62,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); virtual;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); virtual; abstract;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSScaleAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -73,8 +73,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSRotationAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -84,8 +84,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSPositionAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -95,8 +95,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSColorAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -106,8 +106,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TTGLFile3DSPositionAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -117,8 +117,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSSpotLightCutOffAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -128,8 +128,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSLightHotSpotAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -139,8 +139,8 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
   TGLFile3DSRollAnimationKeys = class(TGLFile3DSAnimationKeys)
@@ -150,11 +150,11 @@ type
     procedure LoadData(const ANumKeys: Integer; const Keys: PKeyHeaderList; const AData: Pointer); override;
     procedure Apply(var DataTransf: TGLFile3DSAnimationData; const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
   end;
 
-  TGLFile3DSAnimationKeyList = class(TPersistentObject)
+  TGLFile3DSAnimationKeyList = class(TGLPersistentObject)
   private
     FAnimKeysList: array of TGLFile3DSAnimationKeys;
   protected
@@ -163,8 +163,8 @@ type
     procedure AddKeys(const AItem: TGLFile3DSAnimationKeys);
     procedure ClearKeys;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -188,8 +188,8 @@ type
     procedure GetExtents(out min, max: TAffineVector); override;
     function ExtractTriangles(texCoords: TGLAffineVectorList = nil; normals: TGLAffineVectorList = nil): TGLAffineVectorList;
       override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     procedure Assign(Source: TPersistent); override;
     constructor Create; override;
     destructor Destroy; override;
@@ -216,8 +216,8 @@ type
     procedure LoadAnimation(const AData: Pointer); override;
     procedure SetFrame(const AFrame: real); override;
     procedure Assign(Source: TPersistent); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -240,8 +240,8 @@ type
     procedure LoadData(Owner: TGLBaseMesh; AData: PCamera3DS);
     procedure LoadAnimation(const AData: Pointer); override;
     procedure SetFrame(const AFrame: real); override;
-    procedure WriteToFiler(Writer: TVirtualWriter); override;
-    procedure ReadFromFiler(Reader: TVirtualReader); override;
+    procedure WriteToFiler(Writer: TGLVirtualWriter); override;
+    procedure ReadFromFiler(Reader: TGLVirtualReader); override;
     destructor Destroy; override;
   end;
 
@@ -504,14 +504,14 @@ begin
     inherited Assign(Source);
 end;
 
-procedure TGLFile3DSAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   Writer.WriteInteger(FNumKeys);
   if FNumKeys > 0 then
     Writer.Write(FKeys[0], FNumKeys * SizeOf(TKeyHeader3DS));
 end;
 
-procedure TGLFile3DSAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   FNumKeys := Reader.ReadInteger;
   SetLength(FKeys, FNumKeys);
@@ -567,7 +567,7 @@ begin
     FScale[I] := (Source as TGLFile3DSScaleAnimationKeys).FScale[I];
 end;
 
-procedure TGLFile3DSScaleAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSScaleAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -575,7 +575,7 @@ begin
     Writer.Write(FScale[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TGLFile3DSScaleAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSScaleAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -642,7 +642,7 @@ begin
     FRot[I] := (Source as TGLFile3DSRotationAnimationKeys).FRot[I];
 end;
 
-procedure TGLFile3DSRotationAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSRotationAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -650,7 +650,7 @@ begin
     Writer.Write(FRot[0], FNumKeys * SizeOf(TKFRotKey3DS));
 end;
 
-procedure TGLFile3DSRotationAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSRotationAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -694,7 +694,7 @@ begin
     FPos[I] := (Source as TGLFile3DSPositionAnimationKeys).FPos[I];
 end;
 
-procedure TGLFile3DSPositionAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSPositionAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -702,7 +702,7 @@ begin
     Writer.Write(FPos[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TGLFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -739,7 +739,7 @@ begin
     FCol[I] := (Source as TGLFile3DSColorAnimationKeys).FCol[I];
 end;
 
-procedure TGLFile3DSColorAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSColorAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -747,7 +747,7 @@ begin
     Writer.Write(FCol[0], FNumKeys * SizeOf(TFColor3DS));
 end;
 
-procedure TGLFile3DSColorAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSColorAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -791,7 +791,7 @@ begin
     FTPos[I] := (Source as TTGLFile3DSPositionAnimationKeys).FTPos[I];
 end;
 
-procedure TTGLFile3DSPositionAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TTGLFile3DSPositionAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -799,7 +799,7 @@ begin
     Writer.Write(FTPos[0], FNumKeys * SizeOf(TPoint3DS));
 end;
 
-procedure TTGLFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TTGLFile3DSPositionAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -837,7 +837,7 @@ begin
     FFall[I] := (Source as TGLFile3DSSpotLightCutOffAnimationKeys).FFall[I];
 end;
 
-procedure TGLFile3DSSpotLightCutOffAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSSpotLightCutOffAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -845,7 +845,7 @@ begin
     Writer.Write(FFall[0], FNumKeys * SizeOf(Single));
 end;
 
-procedure TGLFile3DSSpotLightCutOffAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSSpotLightCutOffAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -883,7 +883,7 @@ begin
     FHot[I] := (Source as TGLFile3DSLightHotSpotAnimationKeys).FHot[I];
 end;
 
-procedure TGLFile3DSLightHotSpotAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSLightHotSpotAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -891,7 +891,7 @@ begin
     Writer.Write(FHot[0], FNumKeys * SizeOf(Single));
 end;
 
-procedure TGLFile3DSLightHotSpotAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSLightHotSpotAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -928,7 +928,7 @@ begin
     FRoll[I] := (Source as TGLFile3DSRollAnimationKeys).FRoll[I];
 end;
 
-procedure TGLFile3DSRollAnimationKeys.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSRollAnimationKeys.WriteToFiler(Writer: TGLVirtualWriter);
 begin
   inherited;
 
@@ -936,7 +936,7 @@ begin
     Writer.Write(FRoll[0], FNumKeys * SizeOf(Single));
 end;
 
-procedure TGLFile3DSRollAnimationKeys.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSRollAnimationKeys.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -992,7 +992,7 @@ begin
     inherited Assign(Source);
 end;
 
-procedure TGLFile3DSAnimationKeyList.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSAnimationKeyList.WriteToFiler(Writer: TGLVirtualWriter);
 var
   I: Integer;
   Val: TGLFile3DSAnimKeysClassType;
@@ -1006,7 +1006,7 @@ begin
   end;
 end;
 
-procedure TGLFile3DSAnimationKeyList.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSAnimationKeyList.ReadFromFiler(Reader: TGLVirtualReader);
 var
   I, cnt: Integer;
   Val: TGLFile3DSAnimKeysClassType;
@@ -1117,7 +1117,7 @@ begin
   end;
 end;
 
-procedure TGLFile3DSDummyObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSDummyObject.WriteToFiler(Writer: TGLVirtualWriter);
 var
   str: string;
 begin
@@ -1132,7 +1132,7 @@ begin
   FAnimList.WriteToFiler(Writer);
 end;
 
-procedure TGLFile3DSDummyObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSDummyObject.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -1297,7 +1297,7 @@ begin
     FLightSrc.Assign((Source as TGLFile3DSOmniLightObject).FLightSrc);
 end;
 
-procedure TGLFile3DSOmniLightObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSOmniLightObject.WriteToFiler(Writer: TGLVirtualWriter);
 var
   str: string;
 begin
@@ -1310,7 +1310,7 @@ begin
   Writer.WriteString(str);
 end;
 
-procedure TGLFile3DSOmniLightObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSOmniLightObject.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 
@@ -1449,7 +1449,7 @@ begin
   FTargetObj.Position.SetPoint(FAnimTransf.TargetPos);
 end;
 
-procedure TGLFile3DSCameraObject.WriteToFiler(Writer: TVirtualWriter);
+procedure TGLFile3DSCameraObject.WriteToFiler(Writer: TGLVirtualWriter);
 var
   str: string;
 begin
@@ -1462,7 +1462,7 @@ begin
   Writer.WriteString(str);
 end;
 
-procedure TGLFile3DSCameraObject.ReadFromFiler(Reader: TVirtualReader);
+procedure TGLFile3DSCameraObject.ReadFromFiler(Reader: TGLVirtualReader);
 begin
   inherited;
 

+ 13 - 11
Source/GLS.File3DSSceneObjects.pas → Source/VCL/GLS.File3DSSceneObjects.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.File3DSSceneObjects;
 
 (* 3ds-specific scene objects. *)
@@ -15,14 +14,14 @@ uses
   System.Classes,
   System.SysUtils,
   System.Math,
-  
+
   Scena.OpenGLTokens,
   Scena.OpenGLAdapter,
+  Scena.VectorTypes,
   Scena.VectorGeometry,
   GLS.Context,
   GLS.Scene,
   GLS.VectorFileObjects,
-  Scena.VectorTypes,
   GLS.PersistentClasses,
   GLS.Coordinates,
   GLS.RenderContextInfo,
@@ -329,18 +328,18 @@ end;
 
 procedure TGLFile3DSActor.ReadMesh(Stream: TStream);
 var
-  virt: TBinaryReader;
+  virt: TGLBinaryReader;
 begin
-  virt := TBinaryReader.Create(Stream);
+  virt := TGLBinaryReader.Create(Stream);
   MeshOBjects.ReadFromFiler(virt);
   virt.Free;
 end;
 
 procedure TGLFile3DSActor.WriteMesh(Stream: TStream);
 var
-  virt: TBinaryWriter;
+  virt: TGLBinaryWriter;
 begin
-  virt := TBinaryWriter.Create(Stream);
+  virt := TGLBinaryWriter.Create(Stream);
   MeshOBjects.WriteToFiler(virt);
   virt.Free;
 end;
@@ -376,9 +375,9 @@ end;
 procedure TGLFile3DSFreeForm.ReadMesh(Stream: TStream);
 var
   v: TGLVector;
-  virt: TBinaryReader;
+  virt: TGLBinaryReader;
 begin
-  virt := TBinaryReader.Create(Stream);
+  virt := TGLBinaryReader.Create(Stream);
 
   virt.read(FRefMat, sizeof(FRefMat));
   virt.read(v, sizeof(v));
@@ -394,10 +393,10 @@ end;
 
 procedure TGLFile3DSFreeForm.WriteMesh(Stream: TStream);
 var
-  virt: TBinaryWriter;
+  virt: TGLBinaryWriter;
   v: TGLVector;
 begin
-  virt := TBinaryWriter.Create(Stream);
+  virt := TGLBinaryWriter.Create(Stream);
 
   virt.write(FRefMat, sizeof(FRefMat));
   v := S_Rot3DS.AsVector;
@@ -497,7 +496,10 @@ begin
   Result := LocalToAbsolute(Result);
 end;
 
+//--------------------------------------------
 initialization
+//--------------------------------------------
+
   RegisterClasses([TGLFile3DSLight, TGLFile3DSCamera, TGLFile3DSActor, TGLFile3DSFreeForm]);
 
 end.

+ 0 - 0
Source/GLS.FileASE.pas → Source/VCL/GLS.FileASE.pas


+ 8 - 6
Source/GLS.FileB3D.pas → Source/VCL/GLS.FileB3D.pas

@@ -11,14 +11,16 @@ uses
   System.Classes, 
   System.SysUtils,
    
-  GLS.VectorFileObjects, 
-  GLS.ApplicationFileIO, 
-  GLS.Texture, 
+  Scena.VectorTypes,
+  Scena.VectorGeometry,
   Scena.TextureFormat,
-  GLS.Material, 
-  Scena.VectorTypes, 
-  Scena.VectorGeometry, 
+
+  GLS.VectorFileObjects,
+  GLS.ApplicationFileIO,
+  GLS.Texture,
+  GLS.Material,
   GLS.VectorLists,
+
   Formats.B3D;
 
 type

+ 47 - 48
Source/GLS.FileBMP.pas → Source/VCL/GLS.FileBMP.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.FileBMP;
 
 (* Graphic engine friendly loading of BMP image *)
@@ -17,10 +16,11 @@ uses
   System.SysUtils,
 
   Scena.OpenGLTokens,
+  Scena.TextureFormat,
+
   GLS.Context,
   GLS.Graphics,
-  GLS.ApplicationFileIO,
-  Scena.TextureFormat;
+  GLS.ApplicationFileIO;
 
 type
 
@@ -70,44 +70,44 @@ const
 type
 
   TBitMapFileHeader = packed record
-    {00+02 :File type}
+    // 00+02: File type
     bfType: word;
-    {02+04 :File size in bytes}
+    // 02+04: File size in bytes
     bfSize: longint;
-    {06+04 : Reserved}
+    // 06+04: Reserved
     bfReserved: longint;
-    {10+04 : Offset of image data : size if the file hieder + the info header + palette}
+    // 10+04: Offset of image data: size if the file hieder + the info header + palette
     bfOffset: longint;
   end;
   PBitMapFileHeader = ^TBitMapFileHeader;
 
   TBitMapInfoHeader = packed record
-    {14+04 : Size of the bitmap info header : sould be 40=$28}
+    //14+04: Size of the bitmap info header : sould be 40=$28
     Size: longint;
-    {18+04 : Image width in pixels}
+    //18+04: Image width in pixels
     Width: longint;
-    {22+04 : Image height in pixels}
+    //22+04: Image height in pixels
     Height: longint;
-    {26+02 : Number of image planes : should be 1 always}
+    //26+02: Number of image planes : should be 1 always
     Planes: word;
-    {28+02 : Color resolution : Number of bits per pixel (1,4,8,16,24,32)}
+    //28+02: Color resolution : Number of bits per pixel (1,4,8,16,24,32)
     BitCount: word;
-    {30+04 : Compression Type}
+    //30+04: Compression Type
     Compression: longint;
-    {34+04 : Size of image data (not headers nor palette): can be 0 if no compression}
+    //34+04: Size of image data (not headers nor palette): can be 0 if no compression
     SizeImage: longint;
-    {38+04 : Horizontal resolution in pixel/meter}
+    //38+04: Horizontal resolution in pixel/meter
     XPelsPerMeter: Longint;
-    {42+04 : Vertical resolution in pixel/meter}
+    //42+04: Vertical resolution in pixel/meter
     YPelsPerMeter: Longint;
-    {46+04 : Number of colors used}
+    //46+04: Number of colors used
     ClrUsed: longint;
-    {50+04 : Number of imprtant colors used : usefull for displaying on VGA256}
+    //50+04: Number of imprtant colors used: usefull for displaying on VGA256
     ClrImportant: longint;
   end;
   PBitMapInfoHeader = ^TBitMapInfoHeader;
 
- 
+
 procedure TGLBMPImage.LoadFromFile(const filename: string);
 var
   fs: TStream;
@@ -309,7 +309,7 @@ begin
     else // Seems to me that this is dangerous.
       Stream.Read(LPalette[0], nPalette * SizeOf(TGLPixel32));
   end
-  else if LInfo.ClrUsed > 0 then { Skip palette }
+  else if LInfo.ClrUsed > 0 then // Skip palette
     Stream.Position := Stream.Position + LInfo.ClrUsed * 3;
 
   UnMipmap;
@@ -383,34 +383,34 @@ var
   nibline: PByteArray;
   even: boolean;
 begin
-  tmpsize := FReadSize * 2; { ReadSize is in bytes, while nibline is made of nibbles, so it's 2*readsize long }
-  getmem(nibline, tmpsize);
+  tmpsize := FReadSize * 2; // ReadSize is in bytes, while nibline is made of nibbles, so it's 2*readsize long
+  GetMem(nibline, tmpsize);
   try
     i := 0;
     while true do
     begin
-      { let's see if we must skip pixels because of delta... }
+      // let's see if we must skip pixels because of delta...
       if FDeltaY <> -1 then
       begin
         if Row = FDeltaY then
-          j := FDeltaX { If we are on the same line, skip till DeltaX }
+          j := FDeltaX // If we are on the same line, skip till DeltaX
         else
-          j := tmpsize; { else skip up to the end of this line }
+          j := tmpsize; // else skip up to the end of this line
         while (i < j) do
         begin
           NibLine[i] := 0;
           inc(i);
         end;
 
-        if Row = FDeltaY then { we don't need delta anymore }
+        if Row = FDeltaY then // we don't need delta anymore
           FDeltaY := -1
         else
-          break; { skipping must continue on the next line, we are finished here }
+          break; // skipping must continue on the next line, we are finished here
       end;
 
       Stream.Read(b0, 1);
       Stream.Read(b1, 1);
-      if b0 <> 0 then { number of repetitions }
+      if b0 <> 0 then // number of repetitions
       begin
         if b0 + i > tmpsize then
           raise EInvalidRasterFile.Create('Bad BMP RLE chunk at row ' + inttostr(row) + ', col ' + inttostr(i) + ', file offset $' + inttohex(Stream.Position, 16));
@@ -428,17 +428,17 @@ begin
       end
       else
         case b1 of
-          0: break; { end of line }
-          1: break; { end of file }
+          0: break; // end of line
+          1: break; // end of file
           2:
-            begin { Next pixel position. Skipped pixels should be left untouched, but we set them to zero }
+            begin // Next pixel position. Skipped pixels should be left untouched, but we set them to zero
               Stream.Read(b0, 1);
               Stream.Read(b1, 1);
               FDeltaX := i + b0;
               FDeltaY := Row + b1;
             end
         else
-          begin { absolute mode }
+          begin // absolute mode
             if b1 + i > tmpsize then
               raise EInvalidRasterFile.Create('Bad BMP RLE chunk at row ' + inttostr(row) + ', col ' + inttostr(i) + ', file offset $' + inttohex(Stream.Position, 16));
             j := i + b1;
@@ -455,14 +455,14 @@ begin
               inc(i);
               even := not even;
             end;
-            { aligned on 2 bytes boundary: see rle8 for details  }
+            // aligned on 2 bytes boundary: see rle8 for details
             b1 := b1 + (b1 mod 2);
             if (b1 mod 4) <> 0 then
               Stream.Seek(1, soFromCurrent);
           end;
         end;
     end;
-    { pack the nibline into the linebuf }
+    // pack the nibline into the linebuf
     for i := 0 to FReadSize - 1 do
       FLineBuffer[i] := (NibLine[i * 2] shl 4) or NibLine[i * 2 + 1];
   finally
@@ -478,28 +478,28 @@ begin
   i := 0;
   while true do
   begin
-    { let's see if we must skip pixels because of delta... }
+    // let's see if we must skip pixels because of delta...
     if FDeltaY <> -1 then
     begin
       if Row = FDeltaY then
-        j := FDeltaX { If we are on the same line, skip till DeltaX }
+        j := FDeltaX // If we are on the same line, skip till DeltaX
       else
-        j := FReadSize; { else skip up to the end of this line }
+        j := FReadSize; // else skip up to the end of this line
       while (i < j) do
       begin
         FLineBuffer[i] := 0;
         inc(i);
       end;
 
-      if Row = FDeltaY then { we don't need delta anymore }
+      if Row = FDeltaY then // we don't need delta anymore
         FDeltaY := -1
       else
-        break; { skipping must continue on the next line, we are finished here }
+        break; // skipping must continue on the next line, we are finished here
     end;
 
     Stream.Read(b0, 1);
     Stream.Read(b1, 1);
-    if b0 <> 0 then { number of repetitions }
+    if b0 <> 0 then // number of repetitions
     begin
       if b0 + i > FReadSize then
         raise EInvalidRasterFile.Create('Bad BMP RLE chunk at row ' + inttostr(row) + ', col ' + inttostr(i) + ', file offset $' + inttohex(Stream.Position, 16));
@@ -512,23 +512,23 @@ begin
     end
     else
       case b1 of
-        0: break; { end of line }
-        1: break; { end of file }
+        0: break; // end of line
+        1: break; // end of file
         2:
-          begin { Next pixel position. Skipped pixels should be left untouched, but we set them to zero }
+          begin // Next pixel position. Skipped pixels should be left untouched, but we set them to zero
             Stream.Read(b0, 1);
             Stream.Read(b1, 1);
             FDeltaX := i + b0;
             FDeltaY := Row + b1;
           end
       else
-        begin { absolute mode }
+        begin // absolute mode
           if b1 + i > FReadSize then
             raise EInvalidRasterFile.Create('Bad BMP RLE chunk at row ' + inttostr(row) + ', col ' + inttostr(i) + ', file offset $' + inttohex(Stream.Position, 16));
           Stream.Read(FLineBuffer[i], b1);
           inc(i, b1);
-          { aligned on 2 bytes boundary: every group starts on a 2 bytes boundary, but absolute group
-            could end on odd address if there is a odd number of elements, so we pad it  }
+          // aligned on 2 bytes boundary: every group starts on a 2 bytes boundary, but absolute group
+          // could end on odd address if there is a odd number of elements, so we pad it
           if (b1 mod 2) <> 0 then
             Stream.Seek(1, soFromCurrent);
         end;
@@ -550,14 +550,13 @@ end;
 
 class function TGLBMPImage.Capabilities: TGLDataFileCapabilities;
 begin
-  Result := [dfcRead {, dfcWrite}];
+  Result := [dfcRead (*, dfcWrite*)];
 end;
 
 //=============================================================
 initialization
 //=============================================================
 
-  { Register this Fileformat-Handler with GLScene }
   RegisterRasterFormat('bmp', 'Bitmap Image File', TGLBMPImage);
 
 end.

+ 1 - 1
Source/VCL/GLS.FileDDS.pas

@@ -23,7 +23,7 @@ uses
   Scena.TextureFormat,
   GLS.CompositeImage,
   GLS.MultiSampleImage,
-  GLS.RGBE,
+//  GLS.RGBE,
   GLS.ApplicationFileIO,
   GLS.Material,
   Scena.Strings;

+ 3 - 2
Source/GLS.FileDEL.pas → Source/VCL/GLS.FileDEL.pas

@@ -15,10 +15,11 @@ uses
   System.SysUtils,
 
   Scena.VectorTypes,
+  Scena.VectorTypesExt,
+  Scena.VectorGeometry,
+
   GLS.VectorFileObjects,
   GLS.ApplicationFileIO,
-  Scena.VectorGeometry,
-  Scena.VectorTypesExt,
   GLS.Utils;
 
 

+ 1 - 1
Source/GLS.FileDXF.pas → Source/VCL/GLS.FileDXF.pas

@@ -49,7 +49,7 @@ type
     // procedure DoProgress (Stage: TGLProgressStage; PercentDone: single; RedrawNow: Boolean; const Msg: string);
     function NeedMesh(basemesh: TGLBaseMesh; layer: STRING): TGLMeshObject;
     function NeedFaceGroup(m: TGLMeshObject; fgmode: TGLFaceGroupMeshMode;
-      fgmat: STRING): TFGVertexIndexList;
+      fgmat: String): TFGVertexIndexList;
     procedure NeedMeshAndFaceGroup(basemesh: TGLBaseMesh; layer: STRING;
       fgmode: TGLFaceGroupMeshMode; fgmat: STRING; var m: TGLMeshObject;
       var fg: TFGVertexIndexList);

+ 271 - 0
Source/VCL/GLS.FileGL2.pas

@@ -0,0 +1,271 @@
+//
+// The graphics platform GLScene https://github.com/glscene
+//
+unit GLS.FileGL2;
+
+(* Vector file object loading of Ghoul2 model and animation files *)
+
+interface
+
+uses
+  System.Classes,
+  System.SysUtils,
+
+  Scena.VectorTypes,
+  Scena.VectorGeometry,
+  GLS.PersistentClasses,
+  GLS.VectorFileObjects,
+  GLS.ApplicationFileIO,
+  GLS.Material,
+  GLS.VectorLists,
+
+  Formats.GL2;
+
+type
+
+  TGLMVectorFile = class(TGLVectorFile)
+  public
+    class function Capabilities: TGLDataFileCapabilities; override;
+    procedure LoadFromStream(aStream: TStream); override;
+  end;
+
+  TGLAVectorFile = class(TGLVectorFile)
+  public
+    class function Capabilities: TGLDataFileCapabilities; override;
+    procedure LoadFromStream(aStream: TStream); override;
+  end;
+
+var
+  vGhoul2LevelOfDetail: Integer = 0; // Highest detail level by default
+  vGhoul2MaxBonesPerVertex: Integer = 4; // Ghoul2 supports up to 4 bones
+  // per vertex. Use this global
+  // variable to set a different limit.
+
+// ------------------------------------------------------------------
+implementation
+// ------------------------------------------------------------------
+
+// ------------------
+// ------------------ TGLMVectorFile ------------------
+// ------------------
+
+class function TGLMVectorFile.Capabilities: TGLDataFileCapabilities;
+begin
+  Result := [dfcRead];
+end;
+
+procedure TGLMVectorFile.LoadFromStream(aStream: TStream);
+var
+  GLMFile: TFileGLM;
+  i, j, k, s, c, d: Integer;
+  mesh: TGLSkeletonMeshObject;
+  fg: TFGVertexIndexList;
+  VertOfs: Integer;
+  shader: string;
+  vec2: Tvector2f;
+  numweights, boneref, boneid: Integer;
+  boneweight, weighttot: Single;
+  NumSurfVert: Integer;
+
+  procedure AllocateMaterial(meshname, shader: string);
+  var
+    LibMat: TGLLibMaterial;
+  begin
+    if Assigned(Owner.MaterialLibrary) then
+      with Owner.MaterialLibrary do
+      begin
+        if Assigned(Materials.GetLibMaterialByName(meshname)) then
+          exit;
+        LibMat := Materials.Add;
+        LibMat.name := meshname;
+        LibMat.Material.Texture.Disabled := False;
+      end;
+  end;
+
+begin
+  GLMFile := TFileGLM.Create;
+  GLMFile.LoadFromStream(aStream);
+  try
+    // Need a way to import all levels of detail, but this global
+    // variable will do for now.
+    d := vGhoul2LevelOfDetail;
+    if d >= Length(GLMFile.LODs) then
+      exit;
+    for s := 0 to Length(GLMFile.SurfaceHeirachy) - 1 do
+    begin
+      mesh := TGLSkeletonMeshObject.CreateOwned(Owner.MeshObjects);
+      mesh.Mode := momFaceGroups;
+      mesh.name := trim(GLMFile.SurfaceHeirachy[s].name);
+      shader := trim(GLMFile.SurfaceHeirachy[s].shader);
+      AllocateMaterial(mesh.name, shader);
+
+      // Set size of VerticesBonesWeights
+      NumSurfVert := 0;
+      for c := 0 to GLMFile.SurfaceHeirachy[s].numChildren - 1 do
+      begin
+        i := GLMFile.SurfaceHeirachy[s].childIndices[c] - 1;
+        NumSurfVert := NumSurfVert + GLMFile.LODs[d].Surfaces[i].SurfaceHeader.numVerts;
+      end;
+      mesh.BonesPerVertex := vGhoul2MaxBonesPerVertex;
+      mesh.VerticeBoneWeightCount := NumSurfVert;
+      for c := 0 to GLMFile.SurfaceHeirachy[s].numChildren - 1 do
+      begin
+        i := GLMFile.SurfaceHeirachy[s].childIndices[c] - 1;
+        with GLMFile.LODs[d].Surfaces[i] do
+        begin
+          VertOfs := mesh.Vertices.Count;
+          for j := 0 to Length(Vertices) - 1 do
+          begin
+            // Add vertices and normals
+            mesh.Vertices.Add(Vertices[j].vertex);
+            mesh.Normals.Add(Vertices[j].normal);
+
+            // Fix and then add the Texture coords
+            vec2 := TexCoords[j];
+            vec2.Y := 1 - vec2.Y; // reverse the v coordinate
+            mesh.TexCoords.Add(vec2);
+
+            // Add weighted bones
+            numweights := G2_GetVertWeights(Vertices[j]);
+            weighttot := 0;
+            for k := 0 to mesh.BonesPerVertex - 1 do
+              if k < numweights then
+              begin
+                boneref := G2_GetVertBoneIndex(Vertices[j], k);
+                boneid := BoneReferences[boneref];
+                boneweight := G2_GetVertBoneWeight(Vertices[j], k, weighttot, numweights);
+                mesh.VerticesBonesWeights^[mesh.Vertices.Count - 1]^[k].boneid := boneid;
+                mesh.VerticesBonesWeights^[mesh.Vertices.Count - 1]^[k].Weight := boneweight;
+              end
+              else
+              begin
+                mesh.VerticesBonesWeights^[mesh.Vertices.Count - 1]^[k].boneid := 0;
+                mesh.VerticesBonesWeights^[mesh.Vertices.Count - 1]^[k].Weight := 0;
+              end;
+          end;
+          fg := TFGVertexIndexList.CreateOwned(mesh.FaceGroups);
+          fg.Mode := fgmmTriangles;
+          fg.MaterialName := mesh.name;
+          for j := 0 to Length(Triangles) - 1 do
+          begin
+            // The faces need to be wound in the opposite direction so...
+            fg.VertexIndices.Add(Triangles[j].indices[0] + VertOfs);
+            fg.VertexIndices.Add(Triangles[j].indices[2] + VertOfs);
+            fg.VertexIndices.Add(Triangles[j].indices[1] + VertOfs);
+          end;
+        end;
+      end;
+    end;
+
+  finally
+    GLMFile.Free;
+  end;
+end;
+
+
+// ------------------
+// ------------------ TGLAVectorFile ------------------
+// ------------------
+
+class function TGLAVectorFile.Capabilities: TGLDataFileCapabilities;
+begin
+  Result := [dfcRead];
+end;
+
+procedure TGLAVectorFile.LoadFromStream(aStream: TStream);
+var
+  GLAFile: TFileGLA;
+  i, j: Integer;
+  frame: TGLSkeletonFrame;
+  CompBone: TGLACompQuatBone;
+  quat: TQuaternion;
+  pos: TAffineVector;
+  basepose: TGLSkeletonFrame;
+  bonelist: TGLIntegerList;
+  bone: TGLSkeletonBone;
+
+begin
+  GLAFile := TFileGLA.Create;
+  GLAFile.LoadFromStream(aStream);
+  try
+    if not(Owner is TGLActor) then
+      exit;
+
+    TGLActor(Owner).Reference := aarSkeleton;
+
+    bonelist := TGLIntegerList.Create;
+    for i := 0 to GLAFile.AnimHeader.numBones - 1 do
+      bonelist.Add(i);
+    while bonelist.Count > 0 do
+    begin
+      if GLAFile.Skeleton[bonelist[0]].parent = -1 then
+        bone := TGLSkeletonBone.CreateOwned(Owner.Skeleton.RootBones)
+      else
+      begin
+        bone := Owner.Skeleton.RootBones.BoneByID(GLAFile.Skeleton[bonelist[0]].parent);
+        if Assigned(bone) then
+          bone := TGLSkeletonBone.CreateOwned(bone)
+      end;
+      if Assigned(bone) then
+      begin
+        bone.name := GLAFile.Skeleton[bonelist[0]].name;
+        bone.boneid := bonelist[0];
+      end
+      else
+        bonelist.Add(bonelist[0]);
+      bonelist.Delete(0);
+    end;
+    bonelist.Free;
+
+    // Build the base pose
+    basepose := TGLSkeletonFrame.CreateOwned(TGLActor(Owner).Skeleton.Frames);
+    basepose.name := 'basepose';
+    basepose.TransformMode := sftQuaternion;
+    basepose.Position.AddNulls(GLAFile.AnimHeader.numBones);
+    basepose.Quaternion.AddNulls(GLAFile.AnimHeader.numBones);
+
+    // Load animation data
+    for i := 0 to GLAFile.AnimHeader.numFrames - 1 do
+    begin
+      // Creates the frame
+      frame := TGLSkeletonFrame.CreateOwned(TGLActor(Owner).Skeleton.Frames);
+      frame.name := 'Frame' + IntToStr(i);
+      frame.TransformMode := sftQuaternion;
+
+      for j := 0 to GLAFile.AnimHeader.numBones - 1 do
+      begin
+        // Uncompress bone and add to the frame
+        CompBone := GLAFile.GetCompressedMatrix(i, j);
+        quat := QuaternionMake([CompBone[1] - 32726, CompBone[2] - 32726, CompBone[3] - 32726],
+          CompBone[0] - 32726);
+        pos := AffineVectorMake(CompBone[4] / 64 - 512, CompBone[5] / 64 - 512,
+          CompBone[6] / 64 - 512);
+        frame.Quaternion.Add(quat);
+        frame.Position.Add(pos);
+      end;
+    end;
+
+    Owner.Skeleton.RootBones.PrepareGlobalMatrices;
+
+    for i := 0 to Owner.MeshObjects.Count - 1 do
+      TGLSkeletonMeshObject(Owner.MeshObjects[i]).PrepareBoneMatrixInvertedMeshes;
+
+  finally
+    GLAFile.Free;
+  end;
+end;
+
+// ------------------------------------------------------------------
+// ------------------------------------------------------------------
+// ------------------------------------------------------------------
+initialization
+
+// ------------------------------------------------------------------
+// ------------------------------------------------------------------
+// ------------------------------------------------------------------
+
+RegisterVectorFileFormat('glm', 'Ghoul2 (GLM) model files', TGLMVectorFile);
+RegisterVectorFileFormat('glx', 'Ghoul2 (GLX) model files', TGLMVectorFile);
+RegisterVectorFileFormat('gla', 'Ghoul2 (GLA) animation files', TGLAVectorFile);
+
+end.

+ 0 - 0
Source/GLS.FileGLTF.pas → Source/VCL/GLS.FileGLTF.pas


+ 6 - 6
Source/GLS.FileHDR.pas → Source/VCL/GLS.FileHDR.pas

@@ -1,7 +1,6 @@
 //
 // The graphics platform GLScene https://github.com/glscene
 //
-
 unit GLS.FileHDR;
 
 (* HDR File support *)
@@ -17,13 +16,14 @@ uses
   System.SysUtils,
   
   Scena.OpenGLTokens,
-  GLS.Context,
-  GLS.Graphics,
   Scena.TextureFormat,
-  GLS.ApplicationFileIO,
-  GLS.RGBE,
+  Scena.RGBE,
   Scena.VectorTypes,
-  Scena.VectorGeometry;
+  Scena.VectorGeometry,
+
+  GLS.Context,
+  GLS.ApplicationFileIO,
+  GLS.Graphics;
 
 
 type

+ 1 - 1
Source/GLS.FileTIN.pas → Source/VCL/GLS.FileTIN.pas

@@ -3,7 +3,7 @@
 //
 unit GLS.FileTIN;
 
-(* TIN (Triangular Irregular Network) vector file format implementation *)
+(* Import of TIN (Triangular Irregular Network) vector file format implementation *)
 
 interface
 

+ 2 - 2
Source/GLS.FileVOR.pas → Source/VCL/GLS.FileVOR.pas

@@ -3,8 +3,8 @@
 //
 unit GLS.FileVOR;
 (*
-  Supports to import TetGen files from http://wias-berlin.de/software/tetgen/fformats.html 
-  combined in a VOR ASCII file for Voronoi polyhedralization.
+  Import for VOR ASCII files of TetGen software from http://wias-berlin.de/software/tetgen/fformats.html
+  is supported for Voronoi polyhedralization.
 *)
 interface
 

+ 0 - 0
Source/GLS.GameMenu.pas → Source/VCL/GLS.GameMenu.pas


+ 1 - 1
Source/VCL/GLS.Graphics.pas

@@ -323,7 +323,7 @@ type
   end;
 
   // Stores registered raster file formats.
-  TGLRasterFileFormatsList = class(TPersistentObjectList)
+  TGLRasterFileFormatsList = class(TGLPersistentObjectList)
   public
     destructor Destroy; override;
     procedure Add(const Ext, Desc: string; DescID: Integer; AClass:

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů