public override string GenerateShaderForOutput(int outputId, ref MasterNodeDataCollector dataCollector, bool ignoreLocalvar) { m_functionBodyStruct = string.Empty; if (!dataCollector.IsSRP) { GradientNode.GenerateGradientStruct(ref m_functionBodyStruct); dataCollector.AddFunctions(m_functionHeaderStruct, m_functionBodyStruct, "0"); } else { dataCollector.AddToIncludes(UniqueId, "Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl"); } GenerateGradientSampler(dataCollector.IsSRP); string gradient = "(Gradient)0"; if (m_inputPorts[0].IsConnected && m_gradientNode != null) { gradient = m_inputPorts[0].GeneratePortInstructions(ref dataCollector); } string time = m_inputPorts[1].GeneratePortInstructions(ref dataCollector); string functionResult = dataCollector.AddFunctions(m_functionHeader, m_functionBody, gradient, time); return(GetOutputVectorItem(0, outputId, functionResult)); }
public override void OnNodeLogicUpdate(DrawInfo drawInfo) { base.OnNodeLogicUpdate(drawInfo); if (m_gradPort.IsConnected) { m_gradientNode = RecursiveBackCheck(m_gradPort.GetOutputNode(0)); } else { m_gradientNode = null; } }