PageRenderTime 39ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Rendering/EffectTests/Program.cs

#
C# | 109 lines | 59 code | 12 blank | 38 comment | 1 complexity | 390d9f828f0256904ccaffb80b6d2244 MD5 | raw file
Possible License(s): Apache-2.0
  1. using System.IO;
  2. using Delta.ContentSystem.Rendering;
  3. using Delta.ContentSystem.Rendering.Helpers;
  4. using Delta.Engine;
  5. using Delta.InputSystem;
  6. using Delta.Rendering.Effects;
  7. using Delta.Rendering.Effects.Modifiers;
  8. using Delta.Utilities.Datatypes;
  9. using NUnit.Framework;
  10. namespace Delta.Rendering.EffectTests
  11. {
  12. /// <summary>
  13. /// Effect system tests
  14. /// </summary>
  15. public class Program
  16. {
  17. #region Main (Static)
  18. /// <summary>
  19. /// Main
  20. /// </summary>
  21. public static void Main()
  22. {
  23. #region Tests
  24. // 2D Effects
  25. //Effect2DTests.SimpleEffect();
  26. //Effect2DTests.MultiEmitterEffect();
  27. //Effect2DTests.CollisionEffect();
  28. //Effect2DTests.SimpleEffectWithAnimatedMaterial();
  29. //Effect2DTests.OnceEffect();
  30. //Effect2DTests.SimpleElapsingEffect();
  31. //Effect2DTests.AdvancedElapsingEffect();
  32. //Effect2DTests.SimpleEffectPerformance();
  33. //Effect2DTests.TestMultiEffectPerformance();
  34. //Effect2DTests.MassiveEffectPerformance();
  35. // 3D Effects
  36. //Effect3DTests.SimpleEffect3D();
  37. //Effect3DTests.ElapsingEffect3D();
  38. //Effect3DTests.BillboardModeTest();
  39. //Effect3DTests.BillboardModeTestDirect();
  40. //Effect3DTests.SwordClashEffect3D();
  41. //Effect3DTests.BloodSplatterEffect3D();
  42. //Effect3DTests.SmokeEffect3D();
  43. //Effect3DTests.GroundMistEffect3D();
  44. //Effect3DTests.FireEffect3D();
  45. //Effect3DTests.FountainEffect3D();
  46. // Functional
  47. //SaveAndLoadEffect();
  48. #endregion
  49. #region Tutorials
  50. Tutorials.SparksEffect();
  51. //Tutorials.RocketEffect();
  52. //Tutorials.FireEffect();
  53. //Tutorials.SmokeEffect();
  54. //Tutorials.LensFlareEffect();
  55. //Tutorials.BillboardTest();
  56. #endregion
  57. }
  58. #endregion
  59. #region SaveAndLoadEffect (Static)
  60. /// <summary>
  61. /// Test the saving and loading logic of the effects.
  62. /// </summary>
  63. [Test, Category("Visual")]
  64. public static void SaveAndLoadEffect()
  65. {
  66. EffectData saveEffectData = EffectData.Get("<TestSaveLoadEffect>");
  67. EmitterData emitter = new EmitterData();
  68. emitter.Modifiers.Add(new AlwaysSpawnModifier());
  69. emitter.Modifiers.Add(new VelocityModifier
  70. {
  71. Velocity = new Vector(0f, 0.1f, 0f)
  72. });
  73. emitter.Modifiers.Add(Effect2DTests.Default2DMaterialModifier);
  74. saveEffectData.Emitters.Add(emitter);
  75. EffectData loadedEffectData = null;
  76. using (MemoryStream saveStream = new MemoryStream())
  77. {
  78. BinaryWriter writer = new BinaryWriter(saveStream);
  79. saveEffectData.Save(writer);
  80. saveEffectData = null;
  81. emitter = null;
  82. saveStream.Position = 0;
  83. loadedEffectData = EffectData.Get("<>");
  84. BinaryReader reader = new BinaryReader(saveStream);
  85. loadedEffectData.Load(reader);
  86. }
  87. Application.Start(delegate
  88. {
  89. if (Input.Keyboard.EnterReleased)
  90. {
  91. Effect.Spawn(loadedEffectData, ScreenSpace.DrawArea.Center);
  92. }
  93. });
  94. }
  95. #endregion
  96. }
  97. }