static PragmaCollection ModifyVertexEntry(PragmaCollection pragmas) { // Replace the default vertex shader entry with one defined by VFX. // NOTE: Assumes they are named "Vert" for all shader passes, which they are. const string k_CoreBasicVertex = "#pragma vertex Vert"; var pragmaVFX = new PragmaCollection(); foreach (var pragma in pragmas) { if (pragma.value != k_CoreBasicVertex) { pragmaVFX.Add(pragma.descriptor); } else { pragmaVFX.Add(Pragma.Vertex("VertVFX")); } } return(pragmaVFX); }
static PragmaCollection ApplyPragmaReplacement(PragmaCollection pragmas, VFXSRPBinder.ShaderGraphBinder shaderGraphSRPInfo) { if (shaderGraphSRPInfo.pragmasReplacement != null) { var overridenPragmas = new PragmaCollection(); foreach (var pragma in pragmas) { var currentPragma = pragma; var replacement = shaderGraphSRPInfo.pragmasReplacement.FirstOrDefault(o => o.oldDesc.value == pragma.descriptor.value); if (!string.IsNullOrEmpty(replacement.newDesc.value)) { currentPragma = new PragmaCollection.Item(replacement.newDesc, pragma.fieldConditions); } overridenPragmas.Add(currentPragma.descriptor, currentPragma.fieldConditions); } return(overridenPragmas); } return(pragmas); }