fRenderToTextureC.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "fRenderToTextureC.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "GLS.BaseClasses"
  8. #pragma link "GLS.Cadencer"
  9. #pragma link "GLS.Coordinates"
  10. #pragma link "GLS.FBORenderer"
  11. #pragma link "GLS.Material"
  12. #pragma link "GLS.Objects"
  13. #pragma link "GLS.Scene"
  14. #pragma link "GLS.SimpleNavigation"
  15. #pragma link "GLS.SceneViewer"
  16. #pragma resource "*.dfm"
  17. TForm1 *Form1;
  18. //---------------------------------------------------------------------------
  19. __fastcall TForm1::TForm1(TComponent* Owner)
  20. : TForm(Owner)
  21. {
  22. }
  23. //---------------------------------------------------------------------------
  24. void __fastcall TForm1::FormCreate(TObject *Sender)
  25. {
  26. Triger = false;
  27. FramerateRatio = 1;
  28. N = 0;
  29. GLCube1->Material->LibMaterialName = GLFBORenderer2->ColorTextureName;
  30. }
  31. //---------------------------------------------------------------------------
  32. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  33. {
  34. GLSceneViewer1->ResetPerformanceMonitor();
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TForm1::CheckBox1Click(TObject *Sender)
  38. {
  39. if (CheckBox1->Checked)
  40. GLSceneViewer1->VSync = vsmSync;
  41. else
  42. GLSceneViewer1->VSync = vsmNoSync;
  43. }
  44. //---------------------------------------------------------------------------
  45. void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
  46. const double newTime)
  47. {
  48. GLSceneViewer1->Invalidate();
  49. GLCube1->Turn(60*deltaTime);
  50. }
  51. //---------------------------------------------------------------------------
  52. void __fastcall TForm1::GLDirectOpenGL1Render(TObject *Sender, TGLRenderContextInfo &rci)
  53. {
  54. N++;
  55. if (N >= FramerateRatio)
  56. {
  57. GLFBORenderer2->Active = Triger;
  58. Triger =!Triger;
  59. GLFBORenderer1->Active = Triger;
  60. N = 0;
  61. }
  62. }
  63. //---------------------------------------------------------------------------
  64. void __fastcall TForm1::GLFBORenderer1AfterRender(TObject *Sender, TGLRenderContextInfo &rci)
  65. {
  66. GLCube1->Material->LibMaterialName = GLFBORenderer1->ColorTextureName;
  67. GLFBORenderer1->Active = false;
  68. }
  69. //---------------------------------------------------------------------------
  70. void __fastcall TForm1::GLFBORenderer2AfterRender(TObject *Sender, TGLRenderContextInfo &rci)
  71. {
  72. GLCube1->Material->LibMaterialName = GLFBORenderer2->ColorTextureName;
  73. GLFBORenderer2->Active = false;
  74. }
  75. //---------------------------------------------------------------------------
  76. void __fastcall TForm1::SBClick(TObject *Sender)
  77. {
  78. int Size;
  79. switch (SB->ItemIndex) {
  80. case 0: Size = 256; break;
  81. case 1: Size = 512; break;
  82. case 2: Size = 2048; break;
  83. default:
  84. ;
  85. }
  86. GLFBORenderer1->Width = Size;
  87. GLFBORenderer1->Height = Size;
  88. GLFBORenderer2->Width = Size;
  89. GLFBORenderer2->Height = Size;
  90. }
  91. //---------------------------------------------------------------------------
  92. void __fastcall TForm1::RBClick(TObject *Sender)
  93. {
  94. switch (RB->ItemIndex) {
  95. case 0: FramerateRatio = 1; break;
  96. case 1: FramerateRatio = 2; break;
  97. case 2: FramerateRatio = 10; break;
  98. default:
  99. ;
  100. }
  101. }
  102. //---------------------------------------------------------------------------