Esempio n. 1
0
        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);
     }
 }
Esempio n. 3
0
 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");
     }
 }
Esempio n. 4
0
        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);
        }