2
0

fMatScriptD.pas 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. unit fMatScriptD;
  2. interface
  3. uses
  4. Winapi.OpenGL,
  5. System.SysUtils,
  6. System.Classes,
  7. Vcl.Graphics,
  8. Vcl.Controls,
  9. Vcl.Forms,
  10. Vcl.Dialogs,
  11. Vcl.StdCtrls,
  12. Vcl.ExtCtrls,
  13. Vcl.Imaging.Jpeg,
  14. GLS.Texture,
  15. GLS.Scene,
  16. GLS.Objects,
  17. GLS.SceneViewer,
  18. GLS.MaterialScript,
  19. GLS.Cadencer,
  20. GLS.Material,
  21. GLS.Coordinates,
  22. GLS.BaseClasses,
  23. GLScene.Utils,
  24. GLS.SimpleNavigation;
  25. type
  26. TFormMatScript = class(TForm)
  27. Panel1: TPanel;
  28. Label1: TLabel;
  29. Label2: TLabel;
  30. Label3: TLabel;
  31. Label4: TLabel;
  32. Memo1: TMemo;
  33. ButtonLoadScript: TButton;
  34. ButtonExecuteScript: TButton;
  35. Memo2: TMemo;
  36. GLSceneViewer1: TGLSceneViewer;
  37. GLScene1: TGLScene;
  38. GLLightSource1: TGLLightSource;
  39. GLDummyCube1: TGLDummyCube;
  40. GLCube1: TGLCube;
  41. GLCamera1: TGLCamera;
  42. GLMaterialLibrary1: TGLMaterialLibrary;
  43. OpenDialog1: TOpenDialog;
  44. GLMaterialScripter1: TGLMaterialScripter;
  45. GLCadencer1: TGLCadencer;
  46. GLSimpleNavigation1: TGLSimpleNavigation;
  47. procedure ButtonLoadScriptClick(Sender: TObject);
  48. procedure ButtonExecuteScriptClick(Sender: TObject);
  49. procedure FormCreate(Sender: TObject);
  50. private
  51. PathToData: TFileName;
  52. public
  53. end;
  54. var
  55. FormMatScript: TFormMatScript;
  56. //---------------------------------
  57. implementation
  58. //---------------------------------
  59. {$R *.dfm}
  60. procedure TFormMatScript.FormCreate(Sender: TObject);
  61. begin
  62. PathToData := GetCurrentAssetPath();
  63. SetCurrentDir(PathToData); // ..glscene\assets
  64. GLMaterialLibrary1.TexturePaths := PathToData;
  65. GLMaterialScripter1.DebugMemo := Memo2;
  66. GLCube1.Material.MaterialLibrary := GLMaterialLibrary1;
  67. end;
  68. procedure TFormMatScript.ButtonLoadScriptClick(Sender: TObject);
  69. begin
  70. OpenDialog1.InitialDir := PathToData + '\script';
  71. if OpenDialog1.Execute then
  72. if FileExists(Opendialog1.FileName) then
  73. Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  74. SetCurrentDir(PathToData);
  75. end;
  76. procedure TFormMatScript.ButtonExecuteScriptClick(Sender: TObject);
  77. begin
  78. GLMaterialLibrary1.Materials.Clear;
  79. GLCube1.Material.MaterialLibrary := GLMaterialLibrary1;
  80. GLMaterialScripter1.Script := Memo1.Lines;
  81. GLMaterialScripter1.CompileScript;
  82. GLCube1.Material.LibMaterialName := 'TestMat';
  83. end;
  84. end.