Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }