public void Dispose() { _cw.DecreaseIndentation(); _cw.Write("}"); if (_trailing != null) { _cw.Write(_trailing); } _cw.WriteLine(); }
private void EmitVertexInputsGetter(ShaderSetProcessorInput input, CsCodeWriter ccw) { using (ccw.PushBlock($"public static VertexInputDescription[] GetVertexInputs()")) { ccw.WriteLine($"return new VertexInputDescription[]"); using (ccw.PushBlock(null, ";")) { ccw.WriteLine("new VertexInputDescription("); ccw.IncreaseIndentation(); ParameterDefinition[] vsParams = input.VertexFunction.Parameters; foreach (ParameterDefinition param in vsParams) { StructureDefinition sd = input.Model.GetStructureDefinition(param.Type); foreach (FieldDefinition fd in sd.Fields) { string name = fd.Name; VertexSemanticType semantic = GetSemantic(fd.SemanticType); VertexElementFormat format = GetFormat(fd.Type); ccw.Write($"new VertexInputElement(\"{name}\", VertexSemanticType.{semantic}, VertexElementFormat.{format})"); if (fd == sd.Fields.Last()) { ccw.WriteLine(")"); } else { ccw.WriteLine(","); } } } ccw.DecreaseIndentation(); } } }