static void WriteLayout(StringBuilder builder, CHullShader shader, object param) { builder.AppendLine(string.Format("layout ( vertices = {0} ) out;", shader.OutputControlPoints.ToString(CultureInfo.InvariantCulture))); builder.AppendLine(); }
static void WriteIOAndCode(StringBuilder builder, CHullShader shader, object param) { var reflection = shader.Reflection; WriteCodeLines(builder, reflection.CodeGlobalLines); builder.AppendLine(); WriteInputArrayBlock(builder, reflection.Input, OutputPrefixForStage(ShaderStage.Vertex)); WriteInputExtraBlock(builder, reflection.InputPatchExtra, "INPUT_PATCH_EXTRA", "InputPatchExtra", "bs_input_patch_extra_"); WritePatchBlock(builder, reflection.OutputPatch, "OUTPUT_PATCH", "bs_patch_", "patch out"); WriteFunction(builder, "BS_Patch_Function", null, reflection.CodePatchLines, null); WriteInputExtraBlock(builder, reflection.InputExtra, "INPUT_EXTRA", "InputExtra", "bs_input_extra_"); WriteOutputBlock(builder, reflection.Output); WriteFunction(builder, "main", "BS_Patch_Function();", reflection.CodeMainLines, null); }