fBlurAdvancedC.cpp 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "fBlurAdvancedC.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "GLS.BaseClasses"
  8. #pragma link "GLS.Blur"
  9. #pragma link "GLS.Cadencer"
  10. #pragma link "GLS.Coordinates"
  11. #pragma link "GLS.GeomObjects"
  12. #pragma link "GLS.HUDObjects"
  13. #pragma link "GLS.Material"
  14. #pragma link "GLS.Objects"
  15. #pragma link "GLS.Scene"
  16. #pragma link "GLS.SceneViewer"
  17. #pragma resource "*.dfm"
  18. TForm1 *Form1;
  19. //---------------------------------------------------------------------------
  20. __fastcall TForm1::TForm1(TComponent* Owner)
  21. : TForm(Owner)
  22. {
  23. }
  24. //---------------------------------------------------------------------------
  25. void __fastcall TForm1::FormCreate(TObject *Sender)
  26. {
  27. // TFileName AssetsPath = TFileName Path = GetCurrentAssetPath();
  28. // SetCurrentDir(AssetsPath);
  29. String AssetsPath = ExtractFilePath(ParamStr(0));
  30. int I = AssetsPath.Pos("Demos");
  31. if (I != 0) {
  32. AssetsPath.Delete(I+7, AssetsPath.Length() - (I+5));
  33. AssetsPath += "Assets\\";
  34. SetCurrentDir(AssetsPath);
  35. }
  36. // Blur GLDummyCube1 and it's children
  37. GLBlur1->TargetObject = GLDummyCube1;
  38. // point to GLDummyCube1
  39. GLCamera1->TargetObject = GLDummyCube1;
  40. // load materials
  41. GLMaterialLibrary1->Materials->Items[0]->Material->Texture->Image->LoadFromFile("beigemarble.jpg");
  42. GLMaterialLibrary1->Materials->Items[1]->Material->Texture->Image->LoadFromFile("moon.bmp");
  43. }
  44. //---------------------------------------------------------------------------
  45. void __fastcall TForm1::GLBlur1BeforeTargetRender(TObject *Sender)
  46. {
  47. TorusImpostor->Visible = true; // GLBlur1 must render the Torusimpostor
  48. }
  49. //---------------------------------------------------------------------------
  50. void __fastcall TForm1::GLBlur1AfterTargetRender(TObject *Sender)
  51. {
  52. TorusImpostor->Visible = false; // GLSCeneViewer1 must NOT render the Torusimpostor
  53. }
  54. //---------------------------------------------------------------------------
  55. void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
  56. const double newTime)
  57. {
  58. GLSceneViewer1->Invalidate();
  59. }
  60. //---------------------------------------------------------------------------
  61. void __fastcall TForm1::GLSceneViewer1MouseMove(TObject *Sender, TShiftState Shift,
  62. int X, int Y)
  63. {
  64. if (Shift.Contains(ssRight) && (Y > 10))
  65. GLCamera1->AdjustDistanceToTarget(my/Y);
  66. if (Shift.Contains(ssLeft))
  67. GLCamera1->MoveAroundTarget(my-Y,mx-X);
  68. mx = X;
  69. my = Y;
  70. }
  71. //---------------------------------------------------------------------------
  72. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  73. {
  74. LabelFPS->Caption = GLSceneViewer1->FramesPerSecondText(0);
  75. GLSceneViewer1->ResetPerformanceMonitor();
  76. }
  77. //---------------------------------------------------------------------------
  78. void __fastcall TForm1::trkAdvancedBlurHiClampChange(TObject *Sender)
  79. {
  80. GLBlur1->AdvancedBlurHiClamp = trkAdvancedBlurHiClamp->Position;
  81. }
  82. //---------------------------------------------------------------------------
  83. void __fastcall TForm1::trkAdvancedBlurLoClampChange(TObject *Sender)
  84. {
  85. GLBlur1->AdvancedBlurLowClamp = trkAdvancedBlurLoClamp->Position;
  86. }
  87. //---------------------------------------------------------------------------
  88. void __fastcall TForm1::edtAdvancedBlurAmpChange(TObject *Sender)
  89. {
  90. GLBlur1->AdvancedBlurAmp = StrToFloat(edtAdvancedBlurAmp->Text);
  91. }
  92. //---------------------------------------------------------------------------
  93. void __fastcall TForm1::edtAdvancedBlurPassesChange(TObject *Sender)
  94. {
  95. GLBlur1->AdvancedBlurPasses = StrToInt(edtAdvancedBlurPasses->Text);
  96. }
  97. //---------------------------------------------------------------------------