fMatScript.pas 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. unit fMatScript;
  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. GLS.Utils;
  24. type
  25. TFormMatScript = class(TForm)
  26. Panel1: TPanel;
  27. Label1: TLabel;
  28. Label2: TLabel;
  29. Label3: TLabel;
  30. Label4: TLabel;
  31. Memo1: TMemo;
  32. ButtonLoadScript: TButton;
  33. ButtonExecuteScript: TButton;
  34. Memo2: TMemo;
  35. GLSceneViewer1: TGLSceneViewer;
  36. GLScene1: TGLScene;
  37. GLLightSource1: TGLLightSource;
  38. GLDummyCube1: TGLDummyCube;
  39. GLCube1: TGLCube;
  40. GLCamera1: TGLCamera;
  41. GLMaterialLibrary1: TGLMaterialLibrary;
  42. OpenDialog1: TOpenDialog;
  43. GLMaterialScripter1: TGLMaterialScripter;
  44. GLCadencer1: TGLCadencer;
  45. procedure ButtonLoadScriptClick(Sender: TObject);
  46. procedure ButtonExecuteScriptClick(Sender: TObject);
  47. procedure FormCreate(Sender: TObject);
  48. private
  49. public
  50. end;
  51. var
  52. FormMatScript: TFormMatScript;
  53. //---------------------------------
  54. implementation
  55. //---------------------------------
  56. {$R *.dfm}
  57. procedure TFormMatScript.FormCreate(Sender: TObject);
  58. begin
  59. SetCurrentDir(ExtractFilePath(ParamStr(0)));
  60. GLMaterialScripter1.DebugMemo := Memo2;
  61. GLCube1.Material.MaterialLibrary := GLMaterialLibrary1;
  62. end;
  63. procedure TFormMatScript.ButtonLoadScriptClick(Sender: TObject);
  64. var
  65. Path: TFileName;
  66. begin
  67. SetGLSceneMediaDir();
  68. Path := GetCurrentDir + '\Scripts';
  69. OpenDialog1.InitialDir := Path;
  70. if OpenDialog1.Execute then
  71. if FileExists(Opendialog1.FileName) then
  72. Memo1.Lines.LoadFromFile(Opendialog1.FileName);
  73. SetCurrentDir(ExtractFilePath(ParamStr(0)));
  74. end;
  75. procedure TFormMatScript.ButtonExecuteScriptClick(Sender: TObject);
  76. begin
  77. GLMaterialLibrary1.Materials.Clear;
  78. GLCube1.Material.MaterialLibrary := GLMaterialLibrary1;
  79. GLMaterialScripter1.Script := Memo1.Lines;
  80. GLMaterialScripter1.CompileScript;
  81. GLCube1.Material.LibMaterialName := 'TestMat';
  82. end;
  83. end.