public void WrongParameters() { var ps = new ParticleSystem(); ps.Parameters.AddUniform <Vector3>("D"); ps.Parameters.AddUniform <float>("L"); ps.Parameters.AddUniform <Vector3>("A"); var e = new LinearAccelerationEffector { ParticleSystem = ps }; var dt = new TimeSpan(0, 0, 0, 1); // There should be no exception. e.RequeryParameters(); e.Initialize(); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); e.Uninitialize(); }
public void Uninitialize() { var ps = new ParticleSystem(); var wp0 = new WeakReference(ps.Parameters.AddVarying <Vector3>(ParticleParameterNames.Direction)); var wp1 = new WeakReference(ps.Parameters.AddVarying <float>(ParticleParameterNames.LinearSpeed)); var wp2 = new WeakReference(ps.Parameters.AddVarying <Vector3>(ParticleParameterNames.LinearAcceleration)); var e = new LinearAccelerationEffector { ParticleSystem = ps }; e.RequeryParameters(); e.Uninitialize(); e.ParticleSystem = null; ps = null; GC.Collect(); GC.WaitForFullGCComplete(); Assert.IsFalse(wp0.IsAlive); Assert.IsFalse(wp1.IsAlive); Assert.IsFalse(wp2.IsAlive); }