/Rendering/EffectTests/Program.cs
# · C# · 109 lines · 59 code · 12 blank · 38 comment · 1 complexity · 390d9f828f0256904ccaffb80b6d2244 MD5 · raw file
- using System.IO;
- using Delta.ContentSystem.Rendering;
- using Delta.ContentSystem.Rendering.Helpers;
- using Delta.Engine;
- using Delta.InputSystem;
- using Delta.Rendering.Effects;
- using Delta.Rendering.Effects.Modifiers;
- using Delta.Utilities.Datatypes;
- using NUnit.Framework;
-
- namespace Delta.Rendering.EffectTests
- {
- /// <summary>
- /// Effect system tests
- /// </summary>
- public class Program
- {
- #region Main (Static)
- /// <summary>
- /// Main
- /// </summary>
- public static void Main()
- {
- #region Tests
- // 2D Effects
- //Effect2DTests.SimpleEffect();
- //Effect2DTests.MultiEmitterEffect();
- //Effect2DTests.CollisionEffect();
-
- //Effect2DTests.SimpleEffectWithAnimatedMaterial();
-
- //Effect2DTests.OnceEffect();
- //Effect2DTests.SimpleElapsingEffect();
- //Effect2DTests.AdvancedElapsingEffect();
- //Effect2DTests.SimpleEffectPerformance();
- //Effect2DTests.TestMultiEffectPerformance();
- //Effect2DTests.MassiveEffectPerformance();
-
- // 3D Effects
- //Effect3DTests.SimpleEffect3D();
- //Effect3DTests.ElapsingEffect3D();
- //Effect3DTests.BillboardModeTest();
- //Effect3DTests.BillboardModeTestDirect();
- //Effect3DTests.SwordClashEffect3D();
- //Effect3DTests.BloodSplatterEffect3D();
- //Effect3DTests.SmokeEffect3D();
- //Effect3DTests.GroundMistEffect3D();
- //Effect3DTests.FireEffect3D();
-
- //Effect3DTests.FountainEffect3D();
-
-
- // Functional
- //SaveAndLoadEffect();
- #endregion
-
- #region Tutorials
- Tutorials.SparksEffect();
- //Tutorials.RocketEffect();
- //Tutorials.FireEffect();
- //Tutorials.SmokeEffect();
- //Tutorials.LensFlareEffect();
- //Tutorials.BillboardTest();
- #endregion
- }
- #endregion
-
- #region SaveAndLoadEffect (Static)
- /// <summary>
- /// Test the saving and loading logic of the effects.
- /// </summary>
- [Test, Category("Visual")]
- public static void SaveAndLoadEffect()
- {
- EffectData saveEffectData = EffectData.Get("<TestSaveLoadEffect>");
- EmitterData emitter = new EmitterData();
- emitter.Modifiers.Add(new AlwaysSpawnModifier());
- emitter.Modifiers.Add(new VelocityModifier
- {
- Velocity = new Vector(0f, 0.1f, 0f)
- });
- emitter.Modifiers.Add(Effect2DTests.Default2DMaterialModifier);
- saveEffectData.Emitters.Add(emitter);
-
- EffectData loadedEffectData = null;
- using (MemoryStream saveStream = new MemoryStream())
- {
- BinaryWriter writer = new BinaryWriter(saveStream);
- saveEffectData.Save(writer);
- saveEffectData = null;
- emitter = null;
-
- saveStream.Position = 0;
- loadedEffectData = EffectData.Get("<>");
- BinaryReader reader = new BinaryReader(saveStream);
- loadedEffectData.Load(reader);
- }
-
- Application.Start(delegate
- {
- if (Input.Keyboard.EnterReleased)
- {
- Effect.Spawn(loadedEffectData, ScreenSpace.DrawArea.Center);
- }
- });
- }
- #endregion
- }
- }