2
0
Эх сурвалжийг харах

Tetrahedra meshing added as third-party util

GLScene 2 жил өмнө
parent
commit
7254d4d5c8

+ 39 - 3
Examples/Demos/computing/Computing.groupproj

@@ -12,6 +12,15 @@
         <Projects Include="ScalarProduct\ScalarProductD.dproj">
             <Dependencies/>
         </Projects>
+        <Projects Include="SimpleCUDATexture\SimpleTextureD.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="StableFluids\FluidsD.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="VertexDataGeneration\VertexGeneration.dproj">
+            <Dependencies/>
+        </Projects>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Default.Personality.12</Borland.Personality>
@@ -47,14 +56,41 @@
     <Target Name="ScalarProductD:Make">
         <MSBuild Projects="ScalarProduct\ScalarProductD.dproj" Targets="Make"/>
     </Target>
+    <Target Name="SimpleTextureD">
+        <MSBuild Projects="SimpleCUDATexture\SimpleTextureD.dproj"/>
+    </Target>
+    <Target Name="SimpleTextureD:Clean">
+        <MSBuild Projects="SimpleCUDATexture\SimpleTextureD.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="SimpleTextureD:Make">
+        <MSBuild Projects="SimpleCUDATexture\SimpleTextureD.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="FluidsD">
+        <MSBuild Projects="StableFluids\FluidsD.dproj"/>
+    </Target>
+    <Target Name="FluidsD:Clean">
+        <MSBuild Projects="StableFluids\FluidsD.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="FluidsD:Make">
+        <MSBuild Projects="StableFluids\FluidsD.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="VertexGeneration">
+        <MSBuild Projects="VertexDataGeneration\VertexGeneration.dproj"/>
+    </Target>
+    <Target Name="VertexGeneration:Clean">
+        <MSBuild Projects="VertexDataGeneration\VertexGeneration.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="VertexGeneration:Make">
+        <MSBuild Projects="VertexDataGeneration\VertexGeneration.dproj" Targets="Make"/>
+    </Target>
     <Target Name="Build">
-        <CallTarget Targets="FastFourierD;PostProcessingD;ScalarProductD"/>
+        <CallTarget Targets="FastFourierD;PostProcessingD;ScalarProductD;SimpleTextureD;FluidsD;VertexGeneration"/>
     </Target>
     <Target Name="Clean">
-        <CallTarget Targets="FastFourierD:Clean;PostProcessingD:Clean;ScalarProductD:Clean"/>
+        <CallTarget Targets="FastFourierD:Clean;PostProcessingD:Clean;ScalarProductD:Clean;SimpleTextureD:Clean;FluidsD:Clean;VertexGeneration:Clean"/>
     </Target>
     <Target Name="Make">
-        <CallTarget Targets="FastFourierD:Make;PostProcessingD:Make;ScalarProductD:Make"/>
+        <CallTarget Targets="FastFourierD:Make;PostProcessingD:Make;ScalarProductD:Make;SimpleTextureD:Make;FluidsD:Make;VertexGeneration:Make"/>
     </Target>
     <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
 </Project>

+ 8 - 8
Examples/Demos/computing/FastFourierTransformation/FastFourierD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1246,17 +1246,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 90 - 175
Examples/Demos/computing/FastFourierTransformation/fFourier_D.dfm

@@ -2,138 +2,97 @@ object FormFFT: TFormFFT
   Left = 290
   Top = 245
   Caption = 'Fast FT Computing'
-  ClientHeight = 464
-  ClientWidth = 986
+  ClientHeight = 371
+  ClientWidth = 789
   Color = 2064383
   Font.Charset = DEFAULT_CHARSET
   Font.Color = clWindowText
-  Font.Height = -14
+  Font.Height = -11
   Font.Name = 'MS Sans Serif'
   Font.Style = []
   Position = poScreenCenter
   OnCreate = FormCreate
   OnDestroy = FormDestroy
-  PixelsPerInch = 120
-  TextHeight = 16
+  TextHeight = 13
   object Panel1: TPanel
-    Left = 777
+    Left = 622
     Top = 0
-    Width = 209
-    Height = 464
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 167
+    Height = 371
     Align = alRight
     ParentColor = True
     TabOrder = 0
     object Label4: TLabel
-      Left = 8
-      Top = 146
-      Width = 65
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 117
+      Width = 52
+      Height = 13
       Caption = 'Quadrants:'
     end
     object Label5: TLabel
-      Left = 8
-      Top = 206
-      Width = 76
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 165
+      Width = 62
+      Height = 13
       Caption = 'Restore with:'
     end
     object Label3: TLabel
-      Left = 8
-      Top = 266
-      Width = 77
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 213
+      Width = 65
+      Height = 13
       Caption = 'Show Output:'
     end
     object But1DFFT: TButton
-      Left = 8
-      Top = 79
-      Width = 113
-      Height = 26
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 63
+      Width = 91
+      Height = 21
       Caption = '1D FFT'
       TabOrder = 0
       OnClick = But1DFFTClick
     end
     object But2DFFT: TButton
-      Left = 8
-      Top = 113
-      Width = 53
-      Height = 26
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 90
+      Width = 43
+      Height = 21
       Caption = '2D FFT'
       TabOrder = 1
       OnClick = But2DFFTClick
     end
     object BLenna: TButton
-      Left = 68
-      Top = 113
-      Width = 53
-      Height = 26
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 54
+      Top = 90
+      Width = 43
+      Height = 21
       Caption = 'Lenna'
       TabOrder = 2
       OnClick = But2DFFTClick
     end
     object CBReorder: TCheckBox
-      Left = 8
-      Top = 170
-      Width = 73
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 136
+      Width = 59
+      Height = 17
       Caption = 'Reorder'
       TabOrder = 3
       OnClick = ExecDemo
     end
     object CBInvFFT: TCheckBox
-      Left = 8
-      Top = 230
-      Width = 73
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 184
+      Width = 59
+      Height = 17
       Caption = 'InvFFT'
       TabOrder = 4
       OnClick = ExecDemo
     end
     object RBModule: TRadioButton
-      Left = 8
-      Top = 290
-      Width = 72
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 232
+      Width = 58
+      Height = 17
       Caption = 'Module'
       Checked = True
       TabOrder = 5
@@ -141,55 +100,39 @@ object FormFFT: TFormFFT
       OnClick = ExecDemo
     end
     object RBPhase: TRadioButton
-      Left = 8
-      Top = 310
-      Width = 72
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 248
+      Width = 58
+      Height = 17
       Caption = 'Phase'
       TabOrder = 6
       OnClick = ExecDemo
     end
     object RBReal: TRadioButton
-      Left = 8
-      Top = 330
-      Width = 72
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 264
+      Width = 58
+      Height = 17
       Caption = 'Real'
       TabOrder = 7
       OnClick = ExecDemo
     end
     object RBImag: TRadioButton
-      Left = 8
-      Top = 350
-      Width = 72
-      Height = 21
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 280
+      Width = 58
+      Height = 17
       Caption = 'Imag'
       TabOrder = 8
       OnClick = ExecDemo
     end
     object ESize: TLabeledEdit
-      Left = 78
-      Top = 49
-      Width = 43
-      Height = 24
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
-      EditLabel.Width = 64
-      EditLabel.Height = 16
+      Left = 62
+      Top = 39
+      Width = 35
+      Height = 21
+      EditLabel.Width = 50
+      EditLabel.Height = 13
       EditLabel.Margins.Left = 4
       EditLabel.Margins.Top = 4
       EditLabel.Margins.Right = 4
@@ -202,14 +145,10 @@ object FormFFT: TFormFFT
       Text = '8'
     end
     object DeviceBox: TComboBox
-      Left = 8
-      Top = 8
-      Width = 113
-      Height = 24
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 6
+      Top = 6
+      Width = 91
+      Height = 21
       Style = csDropDownList
       ItemIndex = 0
       TabOrder = 10
@@ -223,76 +162,52 @@ object FormFFT: TFormFFT
   object Panel2: TPanel
     Left = 0
     Top = 0
-    Width = 777
-    Height = 464
-    Margins.Left = 4
-    Margins.Top = 4
-    Margins.Right = 4
-    Margins.Bottom = 4
+    Width = 622
+    Height = 371
     Align = alClient
-    Constraints.MinHeight = 375
-    Constraints.MinWidth = 675
+    Constraints.MinHeight = 300
+    Constraints.MinWidth = 540
     ParentColor = True
     TabOrder = 1
     object Label1: TLabel
-      Left = 140
-      Top = 30
-      Width = 69
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 112
+      Top = 24
+      Width = 56
+      Height = 13
       Caption = 'Input Signal'
     end
     object LDemoMode: TLabel
-      Left = 10
-      Top = 11
-      Width = 85
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 8
+      Top = 9
+      Width = 67
+      Height = 13
       Alignment = taCenter
       Caption = 'Demo mode'
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clWhite
-      Font.Height = -14
+      Font.Height = -11
       Font.Name = 'MS Sans Serif'
       Font.Style = [fsBold]
       ParentFont = False
     end
     object Label2: TLabel
-      Left = 460
-      Top = 30
-      Width = 79
-      Height = 16
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 368
+      Top = 24
+      Width = 64
+      Height = 13
       Caption = 'Output Signal'
     end
     object Image2: TImage
-      Left = 340
-      Top = 50
-      Width = 321
-      Height = 321
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 272
+      Top = 40
+      Width = 257
+      Height = 257
     end
     object Image1: TImage
-      Left = 10
-      Top = 50
-      Width = 321
-      Height = 321
-      Margins.Left = 4
-      Margins.Top = 4
-      Margins.Right = 4
-      Margins.Bottom = 4
+      Left = 8
+      Top = 40
+      Width = 257
+      Height = 257
     end
   end
   object GLCUDA1: TGLCUDA

+ 42 - 35
Examples/Demos/computing/FastFourierTransformation/fFourier_D.pas

@@ -69,6 +69,7 @@ type
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
   private
+    Path: TFileName;
     DemoMode: TDemoMode;
     FTimer: Cardinal;
     procedure Load1DBmp(out buf: TByteDynArray);
@@ -86,6 +87,47 @@ var
 implementation
 
 {$R *.dfm}
+
+procedure TFormFFT.FormCreate(Sender: TObject);
+var
+  bmp: TBitmap;
+  pPal: PLogPalette;
+begin
+  Path := GetCurrentAssetPath();
+  // Load lena image as texture
+  SetCurrentDir(Path  + '\texture');
+
+  if not InitCUTIL then
+  begin
+    MessageDlg('Can''t load cutil32.dll', mtError, [mbOk], 0);
+    Application.Terminate;
+  end;
+
+  cutCreateTimer( FTimer );
+
+  DemoMode := dmNone;
+  GetMem(pPal, 1028);
+  // create a gray custom bitmap and assign it to both images
+  bmp := TBitmap.Create;
+  bmp.PixelFormat := pf8bit;
+  /// ? Make8BitPal(pPal);
+  bmp.Palette := CreatePalette(pPal^);
+  bmp.Height := 256;
+  bmp.Width := 256;
+  Image1.Picture.Bitmap := bmp;
+  Image2.Picture.Bitmap := bmp;
+  bmp.Free;
+  FreeMem(pPal);
+  Image1.Picture.Bitmap.Canvas.Brush.Color := clBlack;
+  Image1.Picture.Bitmap.Canvas.Pen.Color := clWhite;
+  Image2.Picture.Bitmap.Canvas.Brush.Color := clBlack;
+  Image2.Picture.Bitmap.Canvas.Pen.Color := clWhite;
+
+  // Force CUFFT initialization
+  FFTPlan1D.Execute(Signal1D, Signal1D);
+end;
+
+
 // ============================== 1D CASE ===========================
 
 procedure TFormFFT.But1DFFTClick(Sender: TObject);
@@ -439,41 +481,6 @@ begin
   end;
 end;
 
-procedure TFormFFT.FormCreate(Sender: TObject);
-var
-  bmp: TBitmap;
-  pPal: PLogPalette;
-begin
-  if not InitCUTIL then
-  begin
-    MessageDlg('Can''t load cutil32.dll', mtError, [mbOk], 0);
-    Application.Terminate;
-  end;
-
-  cutCreateTimer( FTimer );
-
-  DemoMode := dmNone;
-  GetMem(pPal, 1028);
-  // create a gray custom bitmap and assign it to both images
-  bmp := TBitmap.Create;
-  bmp.PixelFormat := pf8bit;
-  Make8BitPal(pPal);
-  bmp.Palette := CreatePalette(pPal^);
-  bmp.Height := 256;
-  bmp.Width := 256;
-  Image1.Picture.Bitmap := bmp;
-  Image2.Picture.Bitmap := bmp;
-  bmp.Free;
-  FreeMem(pPal);
-  Image1.Picture.Bitmap.Canvas.Brush.Color := clBlack;
-  Image1.Picture.Bitmap.Canvas.Pen.Color := clWhite;
-  Image2.Picture.Bitmap.Canvas.Brush.Color := clBlack;
-  Image2.Picture.Bitmap.Canvas.Pen.Color := clWhite;
-
-  // Force CUFFT initialization
-  FFTPlan1D.Execute(Signal1D, Signal1D);
-end;
-
 procedure TFormFFT.FormDestroy(Sender: TObject);
 begin
   cutDeleteTimer( FTimer );

+ 1 - 2
Examples/Demos/computing/PostProcessing/PostProcessingD.dpr

@@ -2,7 +2,7 @@ program PostProcessingD;
 
 uses
   Vcl.Forms,
-  fPostProcessingD in 'fPostProcessingD.pas' {FormPP};
+  fPostProcessingD in 'fPostProcessingD.pas';
 
 {$R *.res}
 
@@ -10,6 +10,5 @@ begin
   //ReportMemoryLeaksOnShutdown := True;
   Application.Initialize;
   Application.MainFormOnTaskbar := True;
-  Application.CreateForm(TFormPP, FormPP);
   Application.Run;
 end.

+ 9 - 12
Examples/Demos/computing/PostProcessing/PostProcessingD.dproj

@@ -1,7 +1,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <PropertyGroup>
         <ProjectGuid>{29B62F2B-239B-4342-B528-EF2D208E291C}</ProjectGuid>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <FrameworkType>VCL</FrameworkType>
         <Base>True</Base>
         <Config Condition="'$(Config)'==''">Debug</Config>
@@ -100,10 +100,7 @@
         <DelphiCompile Include="$(MainSource)">
             <MainSource>MainSource</MainSource>
         </DelphiCompile>
-        <DCCReference Include="fPostProcessingD.pas">
-            <Form>FormPP</Form>
-            <FormType>dfm</FormType>
-        </DCCReference>
+        <DCCReference Include="fPostProcessingD.pas"/>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -931,17 +928,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
             <Platforms>
                 <Platform value="Win32">True</Platform>

+ 3 - 5
Examples/Demos/computing/PostProcessing/fPostProcessingD.dfm

@@ -196,8 +196,7 @@ object FormPP: TFormPP
       Code.Strings = (
         #9'.version 1.4'
         #9'.target sm_13'
-        
-          #9'// compiled with C:\Program Files\NVIDIA GPU Computing Toolkit\' +
+        #9'// compiled with C:\Program Files\NVIDIA GPU Computing Toolkit\' +
           'CUDA\v3.2\\bin/../open64/lib//be.exe'
         #9'// nvopencc 3.2 built on 2010-11-06'
         ''
@@ -217,8 +216,7 @@ object FormPP: TFormPP
         #9'//  -m2'#9'(Report advisories)'
         #9'//-----------------------------------------------------------'
         ''
-        
-          #9'.file'#9'1'#9'"C:/Users/YARUNA~1/AppData/Local/Temp/tmpxft_00000994_0' +
+        #9'.file'#9'1'#9'"C:/Users/YARUNA~1/AppData/Local/Temp/tmpxft_00000994_0' +
           '0000000-10_temp.cudafe2.gpu"'
         
           #9'.file'#9'2'#9'"C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUD' +
@@ -559,7 +557,7 @@ object FormPP: TFormPP
         ' //<loop> Part of loop body line 112, head labeled $Lt_0_7682'
         #9'mov.s32 '#9'%r168, %r160;'
         '$Lt_0_8450:'
-        
+
           ' //<loop> Loop body line 113, nesting depth: 2, estimated iterat' +
           'ions: unknown'
         #9'.loc'#9'16'#9'114'#9'0'

+ 6 - 1
Examples/Demos/computing/PostProcessing/fPostProcessingD.pas

@@ -38,6 +38,7 @@ uses
   GLS.Context,
   GLSL.CustomShader,
   GLSL.Shader,
+  GLS.Utils,
   GLS.Texture;
 
 type
@@ -90,7 +91,7 @@ type
     procedure TrackBar1Change(Sender: TObject);
     procedure GLCUDA1OpenGLInteropInit(out Context: TGLContext);
   private
-
+    Path: TFileName;
   public
     Radius: Integer;
     Threshold: Single;
@@ -106,6 +107,10 @@ implementation
 
 procedure TFormPP.FormCreate(Sender: TObject);
 begin
+  Path := GetCurrentAssetPath();
+  // Load lena image as texture
+  SetCurrentDir(Path  + '\texture');
+
   Radius := 8;
   Threshold := 0.8;
   Highlight := 0.4;

+ 8 - 8
Examples/Demos/computing/ScalarProduct/ScalarProductD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1209,17 +1209,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 12 - 2
Examples/Demos/computing/ScalarProduct/fScalarProductD.pas

@@ -41,10 +41,11 @@ type
     _Z13scalarProdGPUPfS_S_ii_elementN: TCUDAFuncParam;
     procedure Button1Click(Sender: TObject);
     procedure scalarProdGPUParameterSetup(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
   private
-     
+    Path: TFileName;
   public
-     
+
   end;
 
 var
@@ -62,6 +63,15 @@ const
      to meet memory coalescing constraints *)
   ELEMENT_N = 4096;
 
+
+procedure TFormSP.FormCreate(Sender: TObject);
+begin
+  Path := GetCurrentAssetPath();
+  SetCurrentDir(Path + '\texture');
+  pgm := TGLPGMImage.Create;
+end;
+
+
 procedure scalarProdCPU(hC, hA, hB: TCUDAMemData; vectorN, elementN: Integer);
 var
   vec, pos, vectorBase, vectorEnd: Integer;

+ 8 - 8
Examples/Demos/computing/SimpleCUDATexture/SimpleTextureD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -932,17 +932,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 9 - 6
Examples/Demos/computing/SimpleCUDATexture/fSimpleTexD.pas

@@ -42,6 +42,7 @@ type
     TextureArray: TCUDAMemData;
     ResultData: TCUDAMemData;
     pgm: TGLPGMImage;
+    Path: TFileName;
     procedure TurnPictureParameterSetup(Sender: TObject);
   end;
 
@@ -62,6 +63,14 @@ const
   TestFileName = 'lena_bw.pgm';
   OutFileName  = 'lena_bw_out.pgm';
 
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  Path := GetCurrentAssetPath();
+  SetCurrentDir(Path + '\texture');
+  pgm := TGLPGMImage.Create;
+end;
+
 procedure TForm1.Button1Click(Sender: TObject);
 var
   timer: Cardinal;
@@ -97,12 +106,6 @@ begin
   bmp32.Free;
 end;
 
-procedure TForm1.FormCreate(Sender: TObject);
-begin
-  SetCurrentDirToAsset();
-  pgm := TGLPGMImage.Create;
-end;
-
 procedure TForm1.FormDestroy(Sender: TObject);
 begin
    pgm.Destroy;

+ 8 - 8
Examples/Demos/computing/StableFluids/FluidsD.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -1208,17 +1208,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 2 - 0
Examples/Demos/computing/StableFluids/fFluidsD.pas

@@ -56,6 +56,7 @@ type
     procedure GLCadencer1Progress(Sender: TObject; const deltaTime,
       newTime: Double);
   private
+    Path: TFileName;
     clicked: Boolean;
     lastx: Integer;
     lasty: Integer;
@@ -162,6 +163,7 @@ var
   i, j: Integer;
   pos: FloatElement.TVector2;
 begin
+
   ParticlesDim := 512;
   ComplexPadWidth := ParticlesDim div 2 + 1;
   RealPadWidth := 2 * ComplexPadWidth;

+ 1 - 1
Examples/Demos/computing/VertexDataGeneration/VertexGeneration.dproj

@@ -7,7 +7,7 @@
         <TargetedPlatforms>1</TargetedPlatforms>
         <AppType>Application</AppType>
         <FrameworkType>VCL</FrameworkType>
-        <ProjectVersion>19.3</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">

+ 3 - 27
Packages/GLScene.groupproj

@@ -27,12 +27,6 @@
         <Projects Include="GLScene_Cg_DT.dproj">
             <Dependencies/>
         </Projects>
-        <Projects Include="GLScene_GPU_RT.dproj">
-            <Dependencies/>
-        </Projects>
-        <Projects Include="GLScene_GPU_DT.dproj">
-            <Dependencies/>
-        </Projects>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Default.Personality.12</Borland.Personality>
@@ -113,32 +107,14 @@
     <Target Name="GLScene_Cg_DT:Make">
         <MSBuild Projects="GLScene_Cg_DT.dproj" Targets="Make"/>
     </Target>
-    <Target Name="GLScene_GPU_RT">
-        <MSBuild Projects="GLScene_GPU_RT.dproj"/>
-    </Target>
-    <Target Name="GLScene_GPU_RT:Clean">
-        <MSBuild Projects="GLScene_GPU_RT.dproj" Targets="Clean"/>
-    </Target>
-    <Target Name="GLScene_GPU_RT:Make">
-        <MSBuild Projects="GLScene_GPU_RT.dproj" Targets="Make"/>
-    </Target>
-    <Target Name="GLScene_GPU_DT">
-        <MSBuild Projects="GLScene_GPU_DT.dproj"/>
-    </Target>
-    <Target Name="GLScene_GPU_DT:Clean">
-        <MSBuild Projects="GLScene_GPU_DT.dproj" Targets="Clean"/>
-    </Target>
-    <Target Name="GLScene_GPU_DT:Make">
-        <MSBuild Projects="GLScene_GPU_DT.dproj" Targets="Make"/>
-    </Target>
     <Target Name="Build">
-        <CallTarget Targets="GLScene_RT;GLScene_DT;GLScene_Sounds_RT;GLScene_Sounds_DT;GLScene_Physics_RT;GLScene_Physics_DT;GLScene_Cg_RT;GLScene_Cg_DT;GLScene_GPU_RT;GLScene_GPU_DT"/>
+        <CallTarget Targets="GLScene_RT;GLScene_DT;GLScene_Sounds_RT;GLScene_Sounds_DT;GLScene_Physics_RT;GLScene_Physics_DT;GLScene_Cg_RT;GLScene_Cg_DT"/>
     </Target>
     <Target Name="Clean">
-        <CallTarget Targets="GLScene_RT:Clean;GLScene_DT:Clean;GLScene_Sounds_RT:Clean;GLScene_Sounds_DT:Clean;GLScene_Physics_RT:Clean;GLScene_Physics_DT:Clean;GLScene_Cg_RT:Clean;GLScene_Cg_DT:Clean;GLScene_GPU_RT:Clean;GLScene_GPU_DT:Clean"/>
+        <CallTarget Targets="GLScene_RT:Clean;GLScene_DT:Clean;GLScene_Sounds_RT:Clean;GLScene_Sounds_DT:Clean;GLScene_Physics_RT:Clean;GLScene_Physics_DT:Clean;GLScene_Cg_RT:Clean;GLScene_Cg_DT:Clean"/>
     </Target>
     <Target Name="Make">
-        <CallTarget Targets="GLScene_RT:Make;GLScene_DT:Make;GLScene_Sounds_RT:Make;GLScene_Sounds_DT:Make;GLScene_Physics_RT:Make;GLScene_Physics_DT:Make;GLScene_Cg_RT:Make;GLScene_Cg_DT:Make;GLScene_GPU_RT:Make;GLScene_GPU_DT:Make"/>
+        <CallTarget Targets="GLScene_RT:Make;GLScene_DT:Make;GLScene_Sounds_RT:Make;GLScene_Sounds_DT:Make;GLScene_Physics_RT:Make;GLScene_Physics_DT:Make;GLScene_Cg_RT:Make;GLScene_Cg_DT:Make"/>
     </Target>
     <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
 </Project>

+ 2 - 2
Packages/GLScene_Cg_DT.dproj

@@ -165,12 +165,12 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libPCRE.dylib" Class="DependencyModule">
+                <DeployFile LocalName="$(BDS)\Redist\iossimulator\libpcre.dylib" Class="DependencyModule">
                     <Platform Name="iOSSimulator">
                         <Overwrite>true</Overwrite>
                     </Platform>

+ 1 - 1
Packages/GLScene_Cg_RT.dproj

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

+ 7 - 5
README.md

@@ -1,6 +1,8 @@
 # GLScene
-GLScene is a multimedia graphics platform for creating geometric objects and virtual characters with AI.
-GLScene is based on OpenGL and VCL components for Delphi & C++ Builder allowing rendering 3D scenes for Win32/Win64 applications.
-Provides support for sound FMOD, BASS, WAVE and physical ODE, NGD libraries. 
-Integration with external libraries such as Graphics32 image processing, SDL2 multimedia content, 
-as well as for generation of tetrahedral meshes using TetGen, CGAL based on GPU parallel computing with CUDA/OpenCL components continues. 
+GLScene is a graphics planform based on OpenGL and VCL components for Delphi & C++ Builder. 
+It provides the class library and tools allowing rendering 3D scenes with spatial objects 
+and smart virtual actors for Win32/Win64 applications. 
+Additional support of CG, FMOD, BASS, ODE, NGD, CUDA/OpenCL, GR32, SDL2 
+TensorFlow Lite and Tetgen is included.
+Supported GPU parallel computing using CUDA/OpenCL components. 
+GLS Team

+ 1 - 1
Readme.txt

@@ -1,7 +1,7 @@
 The release of GLScene v.2023 for Delphi & C++Builder
 using Delphi Community Edition of Embarcadero RAD Studio.
 
-The version includes bug fixes, nentralized access to assets for examples.
+The version includes bug fixes, centralized access to assets for examples.
 Support for sound OpenAL, FMOD, BASS, WAVE and physical ODE, NGD libraries is provided
 as well as extended interaction with third-party software like image processing Graphics32, 
 direct media layer SDL2,  tetrahedral meshing generator TetGen, open-source TensorFlow for machine learning and AI on neural networks,  and computer geometry algorithms library CGAL. 

+ 2 - 2
Source/GLS.Scene.pas

@@ -55,8 +55,8 @@ type
 
 const
   cDefaultProxyOptions = [pooEffects, pooObjects, pooTransformation];
-  GLSCENE_REVISION = '$Revision: 2023$';
-  GLSCENE_VERSION = 'v2.3 %s';
+  GLSCENE_REVISION = '$Revision: 1$';
+  GLSCENE_VERSION = 'v2023 %s';
 
 type