public void ApplyPass(IRenderer renderer, int index) { if (renderer == null) { return; } IEffectPass pass = _currentTechnique.Passes[index]; pass.Apply(); _renderStateMap.ApplyRenderStates(renderer, index); }
/// <summary> /// Gets the pass specified by its index. /// </summary> /// <returns>The pass, if it exists</returns> public IEffectPass this[String name] { get { for (int i = 0; i < _passes.Count; i++) { IEffectPass pass = _passes[i]; if (pass.Name.Equals(name)) { return(pass); } } return(null); } }
public void SetRenderState(RenderState rs, String techniqueName, String passName) { if (IsValid) { IEffectTechnique technique = _effect.Techniques[techniqueName]; if (technique != null) { for (int i = 0; i < technique.Passes.Count; i++) { IEffectPass pass = technique.Passes[i]; if (pass.Name.Equals(passName)) { _renderStateMap.SetRenderState(technique, i, rs); return; } } } } else { throw new ArgumentNullException("Material does not have a valid effect loaded, cannot set RenderState. Call LoadEffect() first"); } }
public RenderState GetRenderState(RenderStateType type, int techniqueIndex, String passName) { if (IsValid) { IEffectTechnique technique = _effect.Techniques[techniqueIndex]; if (technique != null) { for (int i = 0; i < technique.Passes.Count; i++) { IEffectPass pass = technique.Passes[i]; if (pass.Name.Equals(passName)) { return(_renderStateMap.GetRenderState(type, technique.Name, i)); } } } } else { throw new ArgumentNullException("Material does not have a valid effect loaded, cannot set RenderState. Call LoadEffect() first"); } return(null); }