public void AddOrAppendError(object errorProvider, Identifier nodeId, ShaderMessage error)
        {
            Dictionary <Identifier, List <ShaderMessage> > messages;

            if (!m_Messages.TryGetValue(errorProvider, out messages))
            {
                messages = new Dictionary <Identifier, List <ShaderMessage> >();
                m_Messages[errorProvider] = messages;
            }

            List <ShaderMessage> messageList;

            if (messages.TryGetValue(nodeId, out messageList))
            {
                messageList.Add(error);
            }
            else
            {
                messages[nodeId] = new List <ShaderMessage>()
                {
                    error
                };
            }

            nodeMessagesChanged = true;
        }
 public static void Log(AbstractMaterialNode node, string path, ShaderMessage message, Object context)
 {
     var errString = $"{message.severity} in Graph at {path} at node {node.name}: {message.message}";
     if (message.severity == ShaderCompilerMessageSeverity.Error)
     {
         Debug.LogError(errString, context);
     }
     else
     {
         Debug.LogWarning(errString, context);
     }
 }
        public static void Log(string path, ShaderMessage message, Object context)
        {
            var errString = $"{message.severity} in Graph at {path} on line {message.line}: {message.message}";

            if (message.severity == ShaderCompilerMessageSeverity.Error)
            {
                Debug.LogError(errString, context);
            }
            else
            {
                Debug.LogWarning(errString, context);
            }
        }
 // Sort messages so errors come before warnings in the list
 static int CompareMessages(ShaderMessage m1, ShaderMessage m2)
 {
     return(m1.severity > m2.severity ? 1 : m2.severity > m1.severity ? -1 : 0);
 }