示例#1
0
 private void FillTechniqueIndices()
 {
     this.passTechniqueIndex = -1;
     this.failTechniqueIndex = -1;
     for (int i = 0; i < effect.Techniques.Count; i++)
     {
         if (effect.IsTechniqueValid(i))
         {
             if (effect.Techniques[i].Annotations.ContainsKey("StencilMethod"))
             {
                 string methodString = (string)effect.Techniques[i].Annotations["StencilMethod"];
                 if (methodString == StencilMethod.ZFail.ToString() && failTechniqueIndex == -1)
                 {
                     failTechniqueIndex = i;
                 }
                 else if (methodString == StencilMethod.ZPass.ToString() && passTechniqueIndex == -1)
                 {
                     passTechniqueIndex = i;
                 }
             }
         }
     }
     if (failTechniqueIndex == -1 || passTechniqueIndex == -1)
     {
         Purple.Log.Warning("Couldn't set ShadowVolume technique");
     }
 }