ソースを参照

Fixed GLS.PersistentClasses registration

GLScene 2 年 前
コミット
10afa400c5
100 ファイル変更1071 行追加1051 行削除
  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;
     Path: TFileName;
     TestTree: TGLTree;
     TestTree: TGLTree;
     TreesShown: Integer;
     TreesShown: Integer;
-    nearTrees: TPersistentObjectList;
+    nearTrees: TGLPersistentObjectList;
     Imposter: TImposter;
     Imposter: TImposter;
     densityBitmap: TBitmap;
     densityBitmap: TBitmap;
     mirrorTexture: TGLTextureHandle;
     mirrorTexture: TGLTextureHandle;
@@ -217,7 +217,7 @@ begin
   SetCursorPos(lmp.X, lmp.Y);
   SetCursorPos(lmp.X, lmp.Y);
   ShowCursor(False);
   ShowCursor(False);
 
 
-  nearTrees := TPersistentObjectList.Create;
+  nearTrees := TGLPersistentObjectList.Create;
 
 
   camTurn := -60;
   camTurn := -60;
   enableRectReflection := False;
   enableRectReflection := False;

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

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

+ 3 - 3
Packages/GLScene_Cg_RT.dpk

@@ -38,8 +38,8 @@ requires
 contains
 contains
   Cg.GL in '..\Source\Common\Cg.GL.pas',
   Cg.GL in '..\Source\Common\Cg.GL.pas',
   Cg.Import in '..\Source\Common\Cg.Import.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.
 end.

+ 3 - 3
Packages/GLScene_Cg_RT.dproj

@@ -127,9 +127,9 @@
         <DCCReference Include="GLScene_RT.dcp"/>
         <DCCReference Include="GLScene_RT.dcp"/>
         <DCCReference Include="..\Source\Common\Cg.GL.pas"/>
         <DCCReference Include="..\Source\Common\Cg.GL.pas"/>
         <DCCReference Include="..\Source\Common\Cg.Import.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">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>

+ 31 - 31
Packages/GLScene_RT.dpk

@@ -42,19 +42,19 @@ contains
   Formats.DXTC in '..\Source\Common\Formats.DXTC.pas',
   Formats.DXTC in '..\Source\Common\Formats.DXTC.pas',
   Formats.m3DS in '..\Source\Common\Formats.m3DS.pas',
   Formats.m3DS in '..\Source\Common\Formats.m3DS.pas',
   ModuleLoader in '..\Source\Common\ModuleLoader.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.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.GL2 in '..\Source\Common\Formats.GL2.pas',
   Formats.LWO in '..\Source\Common\Formats.LWO.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.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.AVIRecorder in '..\Source\VCL\GLS.AVIRecorder.pas',
   GLS.AnimatedSprite in '..\Source\VCL\GLS.AnimatedSprite.pas',
   GLS.AnimatedSprite in '..\Source\VCL\GLS.AnimatedSprite.pas',
   Scena.AnimationUtils in '..\Source\Common\Scena.AnimationUtils.pas',
   Scena.AnimationUtils in '..\Source\Common\Scena.AnimationUtils.pas',
@@ -64,9 +64,9 @@ contains
   GLS.Atmosphere in '..\Source\VCL\GLS.Atmosphere.pas',
   GLS.Atmosphere in '..\Source\VCL\GLS.Atmosphere.pas',
   GLS.ArchiveManager in '..\Source\VCL\GLS.ArchiveManager.pas',
   GLS.ArchiveManager in '..\Source\VCL\GLS.ArchiveManager.pas',
   GLS.BaseClasses in '..\Source\VCL\GLS.BaseClasses.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.Blur in '..\Source\GLS.Blur.pas',
   GLS.BumpmapHDS in '..\Source\GLS.BumpmapHDS.pas',
   GLS.BumpmapHDS in '..\Source\GLS.BumpmapHDS.pas',
   GLS.Cadencer in '..\Source\VCL\GLS.Cadencer.pas',
   GLS.Cadencer in '..\Source\VCL\GLS.Cadencer.pas',
@@ -85,22 +85,22 @@ contains
   GLS.EllipseCollision in '..\Source\GLS.EllipseCollision.pas',
   GLS.EllipseCollision in '..\Source\GLS.EllipseCollision.pas',
   GLS.ExplosionFx in '..\Source\GLS.ExplosionFx.pas',
   GLS.ExplosionFx in '..\Source\GLS.ExplosionFx.pas',
   GLS.Extrusion in '..\Source\GLS.Extrusion.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.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.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.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.FileGRD in '..\Source\GLS.FileGRD.pas',
   GLS.FileGTS in '..\Source\GLS.FileGTS.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.FileJPEG in '..\Source\GLS.FileJPEG.pas',
   GLS.FileLMTS in '..\Source\GLS.FileLMTS.pas',
   GLS.FileLMTS in '..\Source\GLS.FileLMTS.pas',
   GLS.FileLWO in '..\Source\GLS.FileLWO.pas',
   GLS.FileLWO in '..\Source\GLS.FileLWO.pas',
@@ -122,18 +122,18 @@ contains
   GLS.FileSMD in '..\Source\GLS.FileSMD.pas',
   GLS.FileSMD in '..\Source\GLS.FileSMD.pas',
   GLS.FileSTL in '..\Source\GLS.FileSTL.pas',
   GLS.FileSTL in '..\Source\GLS.FileSTL.pas',
   GLS.FileTGA in '..\Source\GLS.FileTGA.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.FileVfsPAK in '..\Source\GLS.FileVfsPAK.pas',
   GLS.FileVRML in '..\Source\GLS.FileVRML.pas',
   GLS.FileVRML in '..\Source\GLS.FileVRML.pas',
   GLS.FileWAV in '..\Source\GLS.FileWAV.pas',
   GLS.FileWAV in '..\Source\GLS.FileWAV.pas',
   GLS.FileX in '..\Source\GLS.FileX.pas',
   GLS.FileX in '..\Source\GLS.FileX.pas',
   GLS.FireFX in '..\Source\GLS.FireFX.pas',
   GLS.FireFX in '..\Source\GLS.FireFX.pas',
   GLS.FileZLIB in '..\Source\GLS.FileZLIB.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',
   GLS.FullScreenViewer in '..\Source\GLS.FullScreenViewer.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.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.GeomObjects in '..\Source\VCL\GLS.GeomObjects.pas',
   GLS.GeometryBB in '..\Source\GLS.GeometryBB.pas',
   GLS.GeometryBB in '..\Source\GLS.GeometryBB.pas',
   Scena.Generics in '..\Source\Common\Scena.Generics.pas',
   Scena.Generics in '..\Source\Common\Scena.Generics.pas',
@@ -185,7 +185,7 @@ contains
   GLS.ProxyObjects in '..\Source\GLS.ProxyObjects.pas',
   GLS.ProxyObjects in '..\Source\GLS.ProxyObjects.pas',
   GLS.Ragdoll in '..\Source\GLS.Ragdoll.pas',
   GLS.Ragdoll in '..\Source\GLS.Ragdoll.pas',
   GLS.RandomHDS in '..\Source\GLS.RandomHDS.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.RenderContextInfo in '..\Source\GLS.RenderContextInfo.pas',
   GLS.ROAMPatch in '..\Source\GLS.ROAMPatch.pas',
   GLS.ROAMPatch in '..\Source\GLS.ROAMPatch.pas',
   GLSL.AsmShader in '..\Source\GLSL.AsmShader.pas',
   GLSL.AsmShader in '..\Source\GLSL.AsmShader.pas',
@@ -206,6 +206,7 @@ contains
   GLS.Language in '..\Source\VCL\GLS.Language.pas',
   GLS.Language in '..\Source\VCL\GLS.Language.pas',
   GLS.Memo in '..\Source\VCL\GLS.Memo.pas',
   GLS.Memo in '..\Source\VCL\GLS.Memo.pas',
   GLS.ProjectedTextures in '..\Source\GLS.ProjectedTextures.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.Scene in '..\Source\VCL\GLS.Scene.pas',
   GLS.SceneForm in '..\Source\VCL\GLS.SceneForm.pas',
   GLS.SceneForm in '..\Source\VCL\GLS.SceneForm.pas',
   GLS.Screen in '..\Source\VCL\GLS.Screen.pas',
   GLS.Screen in '..\Source\VCL\GLS.Screen.pas',
@@ -250,10 +251,10 @@ contains
   GLS.ScriptBase in '..\Source\GLS.ScriptBase.pas',
   GLS.ScriptBase in '..\Source\GLS.ScriptBase.pas',
   GLS.XCollection in '..\Source\GLS.XCollection.pas',
   GLS.XCollection in '..\Source\GLS.XCollection.pas',
   GLS.XOpenGL in '..\Source\GLS.XOpenGL.pas',
   GLS.XOpenGL in '..\Source\GLS.XOpenGL.pas',
+  GLS.InitOpenGL in '..\Source\VCL\GLS.InitOpenGL.pas',
   PasGLTF in '..\Source\Common\PasGLTF.pas',
   PasGLTF in '..\Source\Common\PasGLTF.pas',
   PasJSON in '..\Source\Common\PasJSON.pas',
   PasJSON in '..\Source\Common\PasJSON.pas',
   PasDblStrUtils in '..\Source\Common\PasDblStrUtils.pas',
   PasDblStrUtils in '..\Source\Common\PasDblStrUtils.pas',
-  GLS.PersistentClasses in '..\Source\GLS.PersistentClasses.pas',
   Scena.OpenGLAdapter in '..\Source\Common\Scena.OpenGLAdapter.pas',
   Scena.OpenGLAdapter in '..\Source\Common\Scena.OpenGLAdapter.pas',
   Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
   Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.pas',
   Scena.Polynomials in '..\Source\Common\Scena.Polynomials.pas',
   Scena.Polynomials in '..\Source\Common\Scena.Polynomials.pas',
@@ -265,8 +266,7 @@ contains
   Scena.VectorGeometry in '..\Source\Common\Scena.VectorGeometry.pas',
   Scena.VectorGeometry in '..\Source\Common\Scena.VectorGeometry.pas',
   Scena.VectorTypes in '..\Source\Common\Scena.VectorTypes.pas',
   Scena.VectorTypes in '..\Source\Common\Scena.VectorTypes.pas',
   Scena.VectorTypesExt in '..\Source\Common\Scena.VectorTypesExt.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.
 end.
 
 

+ 30 - 31
Packages/GLScene_RT.dproj

@@ -146,19 +146,19 @@
         <DCCReference Include="..\Source\Common\Formats.DXTC.pas"/>
         <DCCReference Include="..\Source\Common\Formats.DXTC.pas"/>
         <DCCReference Include="..\Source\Common\Formats.m3DS.pas"/>
         <DCCReference Include="..\Source\Common\Formats.m3DS.pas"/>
         <DCCReference Include="..\Source\Common\ModuleLoader.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\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.GL2.pas"/>
         <DCCReference Include="..\Source\Common\Formats.LWO.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\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.AVIRecorder.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.AnimatedSprite.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.AnimatedSprite.pas"/>
         <DCCReference Include="..\Source\Common\Scena.AnimationUtils.pas"/>
         <DCCReference Include="..\Source\Common\Scena.AnimationUtils.pas"/>
@@ -168,9 +168,9 @@
         <DCCReference Include="..\Source\VCL\GLS.Atmosphere.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Atmosphere.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.ArchiveManager.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.ArchiveManager.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.BaseClasses.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.Blur.pas"/>
         <DCCReference Include="..\Source\GLS.BumpmapHDS.pas"/>
         <DCCReference Include="..\Source\GLS.BumpmapHDS.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Cadencer.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Cadencer.pas"/>
@@ -189,22 +189,22 @@
         <DCCReference Include="..\Source\GLS.EllipseCollision.pas"/>
         <DCCReference Include="..\Source\GLS.EllipseCollision.pas"/>
         <DCCReference Include="..\Source\GLS.ExplosionFx.pas"/>
         <DCCReference Include="..\Source\GLS.ExplosionFx.pas"/>
         <DCCReference Include="..\Source\GLS.Extrusion.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.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\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\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.FileGRD.pas"/>
         <DCCReference Include="..\Source\GLS.FileGTS.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.FileJPEG.pas"/>
         <DCCReference Include="..\Source\GLS.FileLMTS.pas"/>
         <DCCReference Include="..\Source\GLS.FileLMTS.pas"/>
         <DCCReference Include="..\Source\GLS.FileLWO.pas"/>
         <DCCReference Include="..\Source\GLS.FileLWO.pas"/>
@@ -226,18 +226,18 @@
         <DCCReference Include="..\Source\GLS.FileSMD.pas"/>
         <DCCReference Include="..\Source\GLS.FileSMD.pas"/>
         <DCCReference Include="..\Source\GLS.FileSTL.pas"/>
         <DCCReference Include="..\Source\GLS.FileSTL.pas"/>
         <DCCReference Include="..\Source\GLS.FileTGA.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.FileVfsPAK.pas"/>
         <DCCReference Include="..\Source\GLS.FileVRML.pas"/>
         <DCCReference Include="..\Source\GLS.FileVRML.pas"/>
         <DCCReference Include="..\Source\GLS.FileWAV.pas"/>
         <DCCReference Include="..\Source\GLS.FileWAV.pas"/>
         <DCCReference Include="..\Source\GLS.FileX.pas"/>
         <DCCReference Include="..\Source\GLS.FileX.pas"/>
         <DCCReference Include="..\Source\GLS.FireFX.pas"/>
         <DCCReference Include="..\Source\GLS.FireFX.pas"/>
         <DCCReference Include="..\Source\GLS.FileZLIB.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\GLS.FullScreenViewer.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Keyboard.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\VCL\GLS.GeomObjects.pas"/>
         <DCCReference Include="..\Source\GLS.GeometryBB.pas"/>
         <DCCReference Include="..\Source\GLS.GeometryBB.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.pas"/>
@@ -289,7 +289,7 @@
         <DCCReference Include="..\Source\GLS.ProxyObjects.pas"/>
         <DCCReference Include="..\Source\GLS.ProxyObjects.pas"/>
         <DCCReference Include="..\Source\GLS.Ragdoll.pas"/>
         <DCCReference Include="..\Source\GLS.Ragdoll.pas"/>
         <DCCReference Include="..\Source\GLS.RandomHDS.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.RenderContextInfo.pas"/>
         <DCCReference Include="..\Source\GLS.ROAMPatch.pas"/>
         <DCCReference Include="..\Source\GLS.ROAMPatch.pas"/>
         <DCCReference Include="..\Source\GLSL.AsmShader.pas"/>
         <DCCReference Include="..\Source\GLSL.AsmShader.pas"/>
@@ -310,6 +310,7 @@
         <DCCReference Include="..\Source\VCL\GLS.Language.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Language.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Memo.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Memo.pas"/>
         <DCCReference Include="..\Source\GLS.ProjectedTextures.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.Scene.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.SceneForm.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.SceneForm.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Screen.pas"/>
         <DCCReference Include="..\Source\VCL\GLS.Screen.pas"/>
@@ -354,10 +355,10 @@
         <DCCReference Include="..\Source\GLS.ScriptBase.pas"/>
         <DCCReference Include="..\Source\GLS.ScriptBase.pas"/>
         <DCCReference Include="..\Source\GLS.XCollection.pas"/>
         <DCCReference Include="..\Source\GLS.XCollection.pas"/>
         <DCCReference Include="..\Source\GLS.XOpenGL.pas"/>
         <DCCReference Include="..\Source\GLS.XOpenGL.pas"/>
+        <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
         <DCCReference Include="..\Source\Common\PasGLTF.pas"/>
         <DCCReference Include="..\Source\Common\PasGLTF.pas"/>
         <DCCReference Include="..\Source\Common\PasJSON.pas"/>
         <DCCReference Include="..\Source\Common\PasJSON.pas"/>
         <DCCReference Include="..\Source\Common\PasDblStrUtils.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.OpenGLAdapter.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Polynomials.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Polynomials.pas"/>
@@ -370,8 +371,6 @@
         <DCCReference Include="..\Source\Common\Scena.VectorTypes.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypes.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypesExt.pas"/>
         <DCCReference Include="..\Source\Common\Scena.VectorTypesExt.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Logger.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Logger.pas"/>
-        <DCCReference Include="..\Source\VCL\GLS.InitOpenGL.pas"/>
-        <None Include="..\Source\Common\Scena.inc"/>
         <BuildConfiguration Include="Base">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>

+ 3 - 3
Packagex/GLArena_RT.dpk

@@ -45,11 +45,9 @@ contains
   Formatx.B3D in '..\Source\FMX\Formatx.B3D.pas',
   Formatx.B3D in '..\Source\FMX\Formatx.B3D.pas',
   Formatx.DDSImage in '..\Source\FMX\Formatx.DDSImage.pas',
   Formatx.DDSImage in '..\Source\FMX\Formatx.DDSImage.pas',
   Formatx.HDRImage in '..\Source\FMX\Formatx.HDRImage.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.Q3MD3 in '..\Source\FMX\Formatx.Q3MD3.pas',
   Formatx.OCT in '..\Source\FMX\Formatx.OCT.pas',
   Formatx.OCT in '..\Source\FMX\Formatx.OCT.pas',
   Formatx.X in '..\Source\FMX\Formatx.X.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.TGA in '..\Source\FMX\Formatx.TGA.pas',
   Formatx.VRML in '..\Source\FMX\Formatx.VRML.pas',
   Formatx.VRML in '..\Source\FMX\Formatx.VRML.pas',
   Formatx.VfsPAK in '..\Source\FMX\Formatx.VfsPAK.pas',
   Formatx.VfsPAK in '..\Source\FMX\Formatx.VfsPAK.pas',
@@ -257,6 +255,8 @@ contains
   Formats.Q3BSP in '..\Source\Common\Formats.Q3BSP.pas',
   Formats.Q3BSP in '..\Source\Common\Formats.Q3BSP.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
   Scena.Keyboard in '..\Source\Common\Scena.Keyboard.pas',
   Scena.PipelineTransformation in '..\Source\Common\Scena.PipelineTransformation.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.
 end.

+ 4 - 4
Packagex/GLArena_RT.dproj

@@ -165,11 +165,9 @@
         <DCCReference Include="..\Source\FMX\Formatx.B3D.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.B3D.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.DDSImage.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.DDSImage.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.HDRImage.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.Q3MD3.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.OCT.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.OCT.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.X.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.TGA.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VRML.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VRML.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VfsPAK.pas"/>
         <DCCReference Include="..\Source\FMX\Formatx.VfsPAK.pas"/>
@@ -378,6 +376,8 @@
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Keyboard.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.PipelineTransformation.pas"/>
         <DCCReference Include="..\Source\Common\Scena.Generics.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">
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
             <Key>Base</Key>
         </BuildConfiguration>
         </BuildConfiguration>
@@ -416,12 +416,12 @@
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </Platform>
                 </DeployFile>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                         <Overwrite>true</Overwrite>
                     </Platform>
                     </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
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit Formats.MD3;
 unit Formats.MD3;
 
 
 (* File loading methods for the MD3 file format *)
 (* File loading methods for the MD3 file format *)
@@ -130,7 +129,7 @@ begin
 
 
   // Read in the Tags
   // Read in the Tags
   SetLength(Tags,ModelHeader.numFrames*ModelHeader.numTags);
   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);
      aStream.Read(Tags[0],sizeof(TMD3Tag)*ModelHeader.numFrames*ModelHeader.numTags);
 
 
   // Read in the Mesh data
   // 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
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-unit GLS.RGBE;
+unit Scena.RGBE;
 
 
 (* GLScene RGBE utils *)
 (* GLScene RGBE utils *)
 
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@@ -23,8 +23,8 @@ type
   private
   private
     FGeom: PdxGeom;
     FGeom: PdxGeom;
   public
   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 AddToSpace(Space: PdxSpace); virtual;
     procedure AlignCollider; override;
     procedure AlignCollider; override;
     // The geoms are created through the AddToSpace procedure
     // The geoms are created through the AddToSpace procedure
@@ -39,8 +39,8 @@ type
     procedure SetRadius(const val: TdReal);
     procedure SetRadius(const val: TdReal);
   public
   public
     constructor Create; override;
     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;
     procedure AddToSpace(Space: PdxSpace); override;
     property Radius: TdReal read FRadius write SetRadius;
     property Radius: TdReal read FRadius write SetRadius;
   end;
   end;
@@ -54,8 +54,8 @@ type
     procedure SetLength(const val: Single);
     procedure SetLength(const val: Single);
   public
   public
     constructor Create; override;
     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;
     procedure AddToSpace(Space: PdxSpace); override;
     property Radius: Single read FRadius write SetRadius;
     property Radius: Single read FRadius write SetRadius;
     property Length: Single read FLength write SetLength;
     property Length: Single read FLength write SetLength;
@@ -71,8 +71,8 @@ type
     procedure SetBoxDepth(const val: TdReal);
     procedure SetBoxDepth(const val: TdReal);
   public
   public
     constructor Create; override;
     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;
     procedure AddToSpace(Space: PdxSpace); override;
     property BoxWidth: TdReal read FBoxWidth write SetBoxWidth;
     property BoxWidth: TdReal read FBoxWidth write SetBoxWidth;
     property BoxHeight: TdReal read FBoxHeight write SetBoxHeight;
     property BoxHeight: TdReal read FBoxHeight write SetBoxHeight;
@@ -107,7 +107,7 @@ end;
 // ------------------ TSCODEBase ------------------
 // ------------------ TSCODEBase ------------------
 // ------------------
 // ------------------
 
 
-procedure TSCODEBase.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBase.WriteToFiler(writer: TgxVirtualWriter);
 begin
 begin
   inherited WriteToFiler(writer);
   inherited WriteToFiler(writer);
   with writer do
   with writer do
@@ -116,7 +116,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TSCODEBase.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBase.ReadFromFiler(reader: TgxVirtualReader);
 var
 var
   archiveVersion: Integer;
   archiveVersion: Integer;
 begin
 begin
@@ -172,7 +172,7 @@ begin
   AlignCollider;
   AlignCollider;
 end;
 end;
 
 
-procedure TSCODESphere.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODESphere.WriteToFiler(writer: TgxVirtualWriter);
 begin
 begin
   inherited WriteToFiler(writer);
   inherited WriteToFiler(writer);
   with writer do
   with writer do
@@ -182,7 +182,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TSCODESphere.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODESphere.ReadFromFiler(reader: TgxVirtualReader);
 var
 var
   archiveVersion: Integer;
   archiveVersion: Integer;
 begin
 begin
@@ -224,7 +224,7 @@ begin
   AlignCollider;
   AlignCollider;
 end;
 end;
 
 
-procedure TSCODECCylinder.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODECCylinder.WriteToFiler(writer: TgxVirtualWriter);
 begin
 begin
   inherited WriteToFiler(writer);
   inherited WriteToFiler(writer);
   with writer do
   with writer do
@@ -235,7 +235,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TSCODECCylinder.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODECCylinder.ReadFromFiler(reader: TgxVirtualReader);
 var
 var
   archiveVersion: Integer;
   archiveVersion: Integer;
 begin
 begin
@@ -290,7 +290,7 @@ begin
   AlignCollider;
   AlignCollider;
 end;
 end;
 
 
-procedure TSCODEBox.WriteToFiler(writer: TVirtualWriter);
+procedure TSCODEBox.WriteToFiler(writer: TgxVirtualWriter);
 begin
 begin
   inherited WriteToFiler(writer);
   inherited WriteToFiler(writer);
   with writer do
   with writer do
@@ -302,7 +302,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-procedure TSCODEBox.ReadFromFiler(reader: TVirtualReader);
+procedure TSCODEBox.ReadFromFiler(reader: TgxVirtualReader);
 var
 var
   archiveVersion: Integer;
   archiveVersion: Integer;
 begin
 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;
     procedure Assign(Source: TPersistent); override;
     constructor CreateOwned(aOwner: TglFaceGroups); override;
     constructor CreateOwned(aOwner: TglFaceGroups); override;
     destructor Destroy; 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 Add(VertexIdx, NormalIdx, TexCoordIdx: Integer);
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure BuildList(var mrci: TGLRenderContextInfo); override;
     procedure AddToTriangles(aList: TGLAffineVectorList;
     procedure AddToTriangles(aList: TGLAffineVectorList;
@@ -1398,7 +1398,7 @@ begin
 end;
 end;
 
 
 procedure TOBJFGVertexNormalTexIndexList.ReadFromFiler(
 procedure TOBJFGVertexNormalTexIndexList.ReadFromFiler(
-  reader: TVirtualReader);
+  reader: TGLVirtualReader);
 var
 var
   archiveVersion: Integer;
   archiveVersion: Integer;
 begin
 begin
@@ -1422,7 +1422,7 @@ begin
 end;
 end;
 
 
 procedure TOBJFGVertexNormalTexIndexList.WriteToFiler(
 procedure TOBJFGVertexNormalTexIndexList.WriteToFiler(
-  writer: TVirtualWriter);
+  writer: TGLVirtualWriter);
 begin
 begin
   inherited WriteToFiler(writer);
   inherited WriteToFiler(writer);
   with writer do
   with writer do

+ 3 - 3
Source/GLS.Imposter.pas

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

+ 4 - 4
Source/GLS.LinePFX.pas

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

+ 8 - 8
Source/GLS.Material.pas

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

+ 11 - 11
Source/GLS.MaterialEx.pas

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

+ 1 - 1
Source/GLS.MaterialMultiProxy.pas

@@ -48,7 +48,7 @@ type
   TGLMaterialMultiProxy = class;
   TGLMaterialMultiProxy = class;
 
 
   {MasterObject description for a MultiProxy object. }
   {MasterObject description for a MultiProxy object. }
-  TGLMaterialMultiProxyMaster = class(TInterfacedCollectionItem, IGLMaterialLibrarySupported)
+  TGLMaterialMultiProxyMaster = class(TGLInterfacedCollectionItem, IGLMaterialLibrarySupported)
   private
   private
     FMasterObject: TGLBaseSceneObject;
     FMasterObject: TGLBaseSceneObject;
     FMasterLibMaterial: TGLLibMaterial;
     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. 
   the agglomerated list of the triangles that couldn't be stripified. 
 *)
 *)
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
-  agglomerateLoneTriangles: Boolean = False): TPersistentObjectList;
+  agglomerateLoneTriangles: Boolean = False): TGLPersistentObjectList;
 (* 
 (* 
   Increases indices coherency wrt vertex caches.
   Increases indices coherency wrt vertex caches.
   The indices parameters is understood as vertex indices of a triangles set,
   The indices parameters is understood as vertex indices of a triangles set,
@@ -1033,7 +1033,7 @@ begin
 end;
 end;
 
 
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
 function StripifyMesh(indices: TGLIntegerList; maxVertexIndex: Integer;
-  agglomerateLoneTriangles: Boolean = False): TPersistentObjectList;
+  agglomerateLoneTriangles: Boolean = False): TGLPersistentObjectList;
 var
 var
   accountedTriangles: array of ByteBool;
   accountedTriangles: array of ByteBool;
   vertexTris: array of TGLIntegerList;
   vertexTris: array of TGLIntegerList;
@@ -1105,7 +1105,7 @@ var
   loneTriangles: TGLIntegerList;
   loneTriangles: TGLIntegerList;
 begin
 begin
   Assert((indices.Count mod 3) = 0, 'indices count is not a multiple of 3!');
   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
   // direct access and cache vars
   indicesList := indices.list;
   indicesList := indices.list;
   indicesCount := indices.Count;
   indicesCount := indices.Count;

+ 1 - 1
Source/GLS.MultiPolygon.pas

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

+ 8 - 8
Source/GLS.ParametricSurfaces.pas

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

+ 12 - 12
Source/GLS.ParticleFX.pas

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

+ 0 - 1
Source/GLS.PerlinPFX.pas

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

+ 6 - 6
Source/GLS.PolygonTesselation.pas

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

+ 14 - 14
Source/GLS.Ragdoll.pas

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

+ 2 - 2
Source/GLS.RenderContextInfo.pas

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

+ 1 - 1
Source/GLS.Selection.pas

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

+ 2 - 2
Source/GLS.ShadowVolume.pas

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

+ 3 - 3
Source/GLS.SpacePartition.pas

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

+ 11 - 11
Source/GLS.VectorLists.pas

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

+ 12 - 12
Source/GLS.VerletTypes.pas

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

+ 2 - 2
Source/GLS.WaterPlane.pas

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

+ 1 - 1
Source/GLS.XCollection.pas

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

+ 1 - 1
Source/GLSL.TextureShaders.pas

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

+ 2 - 2
Source/Physics.ODEManager.pas

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

+ 16 - 16
Source/Physics.ODESkeletonColliders.pas

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

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

@@ -56,7 +56,7 @@ type
   TCUDAComponent = class(TCUDAHandlesMaster)
   TCUDAComponent = class(TCUDAHandlesMaster)
   private
   private
     FMaster: TCUDAComponent;
     FMaster: TCUDAComponent;
-    FItems: TPersistentObjectList;
+    FItems: TGLPersistentObjectList;
     procedure SetMaster(AMaster: TCUDAComponent);
     procedure SetMaster(AMaster: TCUDAComponent);
     function GetItem(const i: Integer): TCUDAComponent;
     function GetItem(const i: Integer): TCUDAComponent;
     function GetItemsCount: Integer;
     function GetItemsCount: Integer;
@@ -1062,7 +1062,7 @@ end;
 procedure TCUDAComponent.AddItem(AItem: TCUDAComponent);
 procedure TCUDAComponent.AddItem(AItem: TCUDAComponent);
 begin
 begin
   if not Assigned(FItems) then
   if not Assigned(FItems) then
-    FItems := TPersistentObjectList.Create;
+    FItems := TGLPersistentObjectList.Create;
   FItems.Add(AItem);
   FItems.Add(AItem);
 end;
 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.VectorTypes,
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
   Scena.VectorGeometry,
   Scena.VectorGeometry,
+  Scena.TextureFormat,
   GLS.Graphics;
   GLS.Graphics;
 
 
 type
 type
@@ -37,8 +38,7 @@ implementation
 //--------------------------------------------------------------------
 //--------------------------------------------------------------------
 
 
 uses
 uses
-  GLS.FileHDR,
-  Scena.TextureFormat;
+  GLS.FileHDR;
 
 
 // ------------------
 // ------------------
 // ------------------ THDRImage ------------------
 // ------------------ 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;
 unit Formats.TGA;
 
 
-(* Graphic engine friendly loading of TGA image. *)
+(* Graphic engine friendly loading of TGA image *)
 
 
 interface
 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;
 unit Formats.X;
 
 
-(* Simple X format support for Microsoft's favorite format *)
+(* Loading simple X format files for Microsoft's favorite format *)
 
 
 interface
 interface
 
 
@@ -47,7 +47,7 @@ type
 
 
   TDXMaterialList = class;
   TDXMaterialList = class;
 
 
-  TDXMaterial = class(TPersistentObject)
+  TDXMaterial = class(TGLPersistentObject)
   private
   private
     FDiffuse: TVector4f;
     FDiffuse: TVector4f;
     FSpecPower: Single;
     FSpecPower: Single;

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

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

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

@@ -37,7 +37,7 @@ type
   end;
   end;
 
 
   // An abstract class describing the "update" interface.
   // An abstract class describing the "update" interface.
-  TGLUpdateAbleObject = class(TInterfacedPersistent, IGLNotifyAble)
+  TGLUpdateAbleObject = class(TGLInterfacedPersistent, IGLNotifyAble)
   private
   private
     FOwner: TPersistent;
     FOwner: TPersistent;
     FUpdating: Integer;
     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
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.BitmapFont;
 unit GLS.BitmapFont;
 
 
 (* Bitmap Fonts management classes *)
 (* Bitmap Fonts management classes *)
@@ -19,8 +18,11 @@ uses
   Vcl.StdCtrls,
   Vcl.StdCtrls,
   
   
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
-  GLS.Scene,
+  Scena.TextureFormat,
+  Scena.VectorTypes,
   Scena.VectorGeometry,
   Scena.VectorGeometry,
+
+  GLS.Scene,
   GLS.Context,
   GLS.Context,
   GLS.Texture,
   GLS.Texture,
   GLS.State,
   GLS.State,
@@ -29,8 +31,6 @@ uses
   GLS.Color,
   GLS.Color,
   GLS.BaseClasses,
   GLS.BaseClasses,
   GLS.RenderContextInfo,
   GLS.RenderContextInfo,
-  Scena.TextureFormat,
-  Scena.VectorTypes,
   GLS.PersistentClasses;
   GLS.PersistentClasses;
 
 
 type
 type

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

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

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

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

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

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

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

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

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

@@ -1,7 +1,6 @@
 //
 //
 // The graphics platform GLScene https://github.com/glscene
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.FileBMP;
 unit GLS.FileBMP;
 
 
 (* Graphic engine friendly loading of BMP image *)
 (* Graphic engine friendly loading of BMP image *)
@@ -17,10 +16,11 @@ uses
   System.SysUtils,
   System.SysUtils,
 
 
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
+  Scena.TextureFormat,
+
   GLS.Context,
   GLS.Context,
   GLS.Graphics,
   GLS.Graphics,
-  GLS.ApplicationFileIO,
-  Scena.TextureFormat;
+  GLS.ApplicationFileIO;
 
 
 type
 type
 
 
@@ -70,44 +70,44 @@ const
 type
 type
 
 
   TBitMapFileHeader = packed record
   TBitMapFileHeader = packed record
-    {00+02 :File type}
+    // 00+02: File type
     bfType: word;
     bfType: word;
-    {02+04 :File size in bytes}
+    // 02+04: File size in bytes
     bfSize: longint;
     bfSize: longint;
-    {06+04 : Reserved}
+    // 06+04: Reserved
     bfReserved: longint;
     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;
     bfOffset: longint;
   end;
   end;
   PBitMapFileHeader = ^TBitMapFileHeader;
   PBitMapFileHeader = ^TBitMapFileHeader;
 
 
   TBitMapInfoHeader = packed record
   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;
     Size: longint;
-    {18+04 : Image width in pixels}
+    //18+04: Image width in pixels
     Width: longint;
     Width: longint;
-    {22+04 : Image height in pixels}
+    //22+04: Image height in pixels
     Height: longint;
     Height: longint;
-    {26+02 : Number of image planes : should be 1 always}
+    //26+02: Number of image planes : should be 1 always
     Planes: word;
     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;
     BitCount: word;
-    {30+04 : Compression Type}
+    //30+04: Compression Type
     Compression: longint;
     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;
     SizeImage: longint;
-    {38+04 : Horizontal resolution in pixel/meter}
+    //38+04: Horizontal resolution in pixel/meter
     XPelsPerMeter: Longint;
     XPelsPerMeter: Longint;
-    {42+04 : Vertical resolution in pixel/meter}
+    //42+04: Vertical resolution in pixel/meter
     YPelsPerMeter: Longint;
     YPelsPerMeter: Longint;
-    {46+04 : Number of colors used}
+    //46+04: Number of colors used
     ClrUsed: longint;
     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;
     ClrImportant: longint;
   end;
   end;
   PBitMapInfoHeader = ^TBitMapInfoHeader;
   PBitMapInfoHeader = ^TBitMapInfoHeader;
 
 
- 
+
 procedure TGLBMPImage.LoadFromFile(const filename: string);
 procedure TGLBMPImage.LoadFromFile(const filename: string);
 var
 var
   fs: TStream;
   fs: TStream;
@@ -309,7 +309,7 @@ begin
     else // Seems to me that this is dangerous.
     else // Seems to me that this is dangerous.
       Stream.Read(LPalette[0], nPalette * SizeOf(TGLPixel32));
       Stream.Read(LPalette[0], nPalette * SizeOf(TGLPixel32));
   end
   end
-  else if LInfo.ClrUsed > 0 then { Skip palette }
+  else if LInfo.ClrUsed > 0 then // Skip palette
     Stream.Position := Stream.Position + LInfo.ClrUsed * 3;
     Stream.Position := Stream.Position + LInfo.ClrUsed * 3;
 
 
   UnMipmap;
   UnMipmap;
@@ -383,34 +383,34 @@ var
   nibline: PByteArray;
   nibline: PByteArray;
   even: boolean;
   even: boolean;
 begin
 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
   try
     i := 0;
     i := 0;
     while true do
     while true do
     begin
     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
       if FDeltaY <> -1 then
       begin
       begin
         if Row = FDeltaY then
         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
         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
         while (i < j) do
         begin
         begin
           NibLine[i] := 0;
           NibLine[i] := 0;
           inc(i);
           inc(i);
         end;
         end;
 
 
-        if Row = FDeltaY then { we don't need delta anymore }
+        if Row = FDeltaY then // we don't need delta anymore
           FDeltaY := -1
           FDeltaY := -1
         else
         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;
       end;
 
 
       Stream.Read(b0, 1);
       Stream.Read(b0, 1);
       Stream.Read(b1, 1);
       Stream.Read(b1, 1);
-      if b0 <> 0 then { number of repetitions }
+      if b0 <> 0 then // number of repetitions
       begin
       begin
         if b0 + i > tmpsize then
         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));
           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
       end
       else
       else
         case b1 of
         case b1 of
-          0: break; { end of line }
-          1: break; { end of file }
+          0: break; // end of line
+          1: break; // end of file
           2:
           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(b0, 1);
               Stream.Read(b1, 1);
               Stream.Read(b1, 1);
               FDeltaX := i + b0;
               FDeltaX := i + b0;
               FDeltaY := Row + b1;
               FDeltaY := Row + b1;
             end
             end
         else
         else
-          begin { absolute mode }
+          begin // absolute mode
             if b1 + i > tmpsize then
             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));
               raise EInvalidRasterFile.Create('Bad BMP RLE chunk at row ' + inttostr(row) + ', col ' + inttostr(i) + ', file offset $' + inttohex(Stream.Position, 16));
             j := i + b1;
             j := i + b1;
@@ -455,14 +455,14 @@ begin
               inc(i);
               inc(i);
               even := not even;
               even := not even;
             end;
             end;
-            { aligned on 2 bytes boundary: see rle8 for details  }
+            // aligned on 2 bytes boundary: see rle8 for details
             b1 := b1 + (b1 mod 2);
             b1 := b1 + (b1 mod 2);
             if (b1 mod 4) <> 0 then
             if (b1 mod 4) <> 0 then
               Stream.Seek(1, soFromCurrent);
               Stream.Seek(1, soFromCurrent);
           end;
           end;
         end;
         end;
     end;
     end;
-    { pack the nibline into the linebuf }
+    // pack the nibline into the linebuf
     for i := 0 to FReadSize - 1 do
     for i := 0 to FReadSize - 1 do
       FLineBuffer[i] := (NibLine[i * 2] shl 4) or NibLine[i * 2 + 1];
       FLineBuffer[i] := (NibLine[i * 2] shl 4) or NibLine[i * 2 + 1];
   finally
   finally
@@ -478,28 +478,28 @@ begin
   i := 0;
   i := 0;
   while true do
   while true do
   begin
   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
     if FDeltaY <> -1 then
     begin
     begin
       if Row = FDeltaY then
       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
       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
       while (i < j) do
       begin
       begin
         FLineBuffer[i] := 0;
         FLineBuffer[i] := 0;
         inc(i);
         inc(i);
       end;
       end;
 
 
-      if Row = FDeltaY then { we don't need delta anymore }
+      if Row = FDeltaY then // we don't need delta anymore
         FDeltaY := -1
         FDeltaY := -1
       else
       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;
     end;
 
 
     Stream.Read(b0, 1);
     Stream.Read(b0, 1);
     Stream.Read(b1, 1);
     Stream.Read(b1, 1);
-    if b0 <> 0 then { number of repetitions }
+    if b0 <> 0 then // number of repetitions
     begin
     begin
       if b0 + i > FReadSize then
       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));
         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
     end
     else
     else
       case b1 of
       case b1 of
-        0: break; { end of line }
-        1: break; { end of file }
+        0: break; // end of line
+        1: break; // end of file
         2:
         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(b0, 1);
             Stream.Read(b1, 1);
             Stream.Read(b1, 1);
             FDeltaX := i + b0;
             FDeltaX := i + b0;
             FDeltaY := Row + b1;
             FDeltaY := Row + b1;
           end
           end
       else
       else
-        begin { absolute mode }
+        begin // absolute mode
           if b1 + i > FReadSize then
           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));
             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);
           Stream.Read(FLineBuffer[i], b1);
           inc(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
           if (b1 mod 2) <> 0 then
             Stream.Seek(1, soFromCurrent);
             Stream.Seek(1, soFromCurrent);
         end;
         end;
@@ -550,14 +550,13 @@ end;
 
 
 class function TGLBMPImage.Capabilities: TGLDataFileCapabilities;
 class function TGLBMPImage.Capabilities: TGLDataFileCapabilities;
 begin
 begin
-  Result := [dfcRead {, dfcWrite}];
+  Result := [dfcRead (*, dfcWrite*)];
 end;
 end;
 
 
 //=============================================================
 //=============================================================
 initialization
 initialization
 //=============================================================
 //=============================================================
 
 
-  { Register this Fileformat-Handler with GLScene }
   RegisterRasterFormat('bmp', 'Bitmap Image File', TGLBMPImage);
   RegisterRasterFormat('bmp', 'Bitmap Image File', TGLBMPImage);
 
 
 end.
 end.

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

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

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

@@ -15,10 +15,11 @@ uses
   System.SysUtils,
   System.SysUtils,
 
 
   Scena.VectorTypes,
   Scena.VectorTypes,
+  Scena.VectorTypesExt,
+  Scena.VectorGeometry,
+
   GLS.VectorFileObjects,
   GLS.VectorFileObjects,
   GLS.ApplicationFileIO,
   GLS.ApplicationFileIO,
-  Scena.VectorGeometry,
-  Scena.VectorTypesExt,
   GLS.Utils;
   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);
     // procedure DoProgress (Stage: TGLProgressStage; PercentDone: single; RedrawNow: Boolean; const Msg: string);
     function NeedMesh(basemesh: TGLBaseMesh; layer: STRING): TGLMeshObject;
     function NeedMesh(basemesh: TGLBaseMesh; layer: STRING): TGLMeshObject;
     function NeedFaceGroup(m: TGLMeshObject; fgmode: TGLFaceGroupMeshMode;
     function NeedFaceGroup(m: TGLMeshObject; fgmode: TGLFaceGroupMeshMode;
-      fgmat: STRING): TFGVertexIndexList;
+      fgmat: String): TFGVertexIndexList;
     procedure NeedMeshAndFaceGroup(basemesh: TGLBaseMesh; layer: STRING;
     procedure NeedMeshAndFaceGroup(basemesh: TGLBaseMesh; layer: STRING;
       fgmode: TGLFaceGroupMeshMode; fgmat: STRING; var m: TGLMeshObject;
       fgmode: TGLFaceGroupMeshMode; fgmat: STRING; var m: TGLMeshObject;
       var fg: TFGVertexIndexList);
       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
 // The graphics platform GLScene https://github.com/glscene
 //
 //
-
 unit GLS.FileHDR;
 unit GLS.FileHDR;
 
 
 (* HDR File support *)
 (* HDR File support *)
@@ -17,13 +16,14 @@ uses
   System.SysUtils,
   System.SysUtils,
   
   
   Scena.OpenGLTokens,
   Scena.OpenGLTokens,
-  GLS.Context,
-  GLS.Graphics,
   Scena.TextureFormat,
   Scena.TextureFormat,
-  GLS.ApplicationFileIO,
-  GLS.RGBE,
+  Scena.RGBE,
   Scena.VectorTypes,
   Scena.VectorTypes,
-  Scena.VectorGeometry;
+  Scena.VectorGeometry,
+
+  GLS.Context,
+  GLS.ApplicationFileIO,
+  GLS.Graphics;
 
 
 
 
 type
 type

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

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

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

@@ -3,8 +3,8 @@
 //
 //
 unit GLS.FileVOR;
 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
 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;
   end;
 
 
   // Stores registered raster file formats.
   // Stores registered raster file formats.
-  TGLRasterFileFormatsList = class(TPersistentObjectList)
+  TGLRasterFileFormatsList = class(TGLPersistentObjectList)
   public
   public
     destructor Destroy; override;
     destructor Destroy; override;
     procedure Add(const Ext, Desc: string; DescID: Integer; AClass:
     procedure Add(const Ext, Desc: string; DescID: Integer; AClass:

この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません