Exemple #1
0
        private void WriteCombinerString <T>(PICATextureCombinerMode mode, PICATextureCombinerSource[] sources, T[] ops)
        {
            switch (mode)
            {
            case PICATextureCombinerMode.Replace:
                text.Append($"{sources[0]}({ops[0]})");
                break;

            case PICATextureCombinerMode.Add:
                text.Append($"{sources[0]}({ops[0]}) + {sources[1]}({ops[1]})");
                break;

            case PICATextureCombinerMode.AddSigned:
                text.Append($"{sources[0]}({ops[0]}) + {sources[1]}({ops[1]})  (signed)");
                break;

            case PICATextureCombinerMode.Subtract:
                text.Append($"{sources[0]}({ops[0]}) - {sources[1]}({ops[1]})");
                break;

            case PICATextureCombinerMode.Modulate:
                text.Append($"{sources[0]}({ops[0]}) * {sources[1]}({ops[1]})");
                break;

            case PICATextureCombinerMode.AddMult:
                text.Append($"( {sources[0]}({ops[0]}) + {sources[1]}({ops[1]}) ) * {sources[2]}({ops[2]})");
                break;

            case PICATextureCombinerMode.MultAdd:
                text.Append($"{sources[0]}({ops[0]}) * {sources[1]}({ops[1]}) + {sources[2]}({ops[2]})");
                break;

            //TODO: print details for these
            case PICATextureCombinerMode.Interpolate:
            case PICATextureCombinerMode.DotProduct3Rgb:
            case PICATextureCombinerMode.DotProduct3Rgba:
            default:
                text.Append($"{mode}(");
                for (int i = 0; i < 3; i++)
                {
                    text.Append($"{sources[i]}({ops[i]}), ");
                }
                text.Append(')');
                break;
            }
        }
Exemple #2
0
 public PICATexEnvCombiner(uint Param)
 {
     Color = (PICATextureCombinerMode)((Param >> 0) & 0xf);
     Alpha = (PICATextureCombinerMode)((Param >> 16) & 0xf);
 }