private void RefreshEffectInstances() { if (m_effectInstances.Count != System.Effects.Count) { var newList = new List<EffectInstance>(System.Effects.Count); for (int i = 0; i < System.Effects.Count; ++i) { newList.Add(i < m_effectInstances.Count ? m_effectInstances[i] : null); } m_effectInstances = newList; EffectInstances = m_effectInstances.ToIndexable(); } for (int i = 0; i < m_effectInstances.Count; ++i) { if (m_effectInstances[i] == null || m_effectInstances[i].Effect != System.Effects[i]) { m_effectInstances[i] = new EffectInstance(System.Effects[i], this); } } }
internal void InternalProcess(float deltaTime, EffectInstance instance, Particle[] particles, int begin, int end) { Process(deltaTime, instance, particles, begin, end); }
protected virtual void Process(float deltaTime, EffectInstance instance, Particle[] particles, int begin, int end) { }