private static InvocationTranslator SimpleNameTranslator(string nameTarget) { return((type, method, parameters) => { return $"{nameTarget}({InvocationParameterInfo.GetInvocationParameterList(parameters)})"; }); }
private static string VectorCtor(string typeName, string methodName, InvocationParameterInfo[] parameters) { GetVectorTypeInfo(typeName, out string shaderType, out int elementCount); string paramList; if (parameters.Length == 0) { paramList = string.Join(", ", Enumerable.Repeat("0", elementCount)); } else if (parameters.Length == 1) { paramList = string.Join(", ", Enumerable.Repeat(parameters[0].Identifier, elementCount)); } else { StringBuilder sb = new StringBuilder(); for (int i = 0; i < parameters.Length; i++) { InvocationParameterInfo ipi = parameters[i]; sb.Append(ipi.Identifier); if (i != parameters.Length - 1) { sb.Append(", "); } } paramList = sb.ToString(); } return($"{shaderType}({paramList})"); }
protected virtual string FormatInvocationParameter(ParameterDefinition def, InvocationParameterInfo ipi) { return(CSharpToIdentifierNameCore(ipi.FullTypeName, ipi.Identifier)); }