From b82da95b5181ac8bbae38efb13e950d5e88a4caa Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 23 Oct 2020 13:08:43 +0800 Subject: =?UTF-8?q?*=E7=A7=BB=E5=8A=A8amplify=20shader=20editor=E5=88=B0th?= =?UTF-8?q?ird=20party=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Plugins/Editor/Utils/GenericMessage.cs | 117 +++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs (limited to 'Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs') diff --git a/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs new file mode 100644 index 00000000..3a699c60 --- /dev/null +++ b/Assets/ThirdParty/AmplifyShaderEditor/Plugins/Editor/Utils/GenericMessage.cs @@ -0,0 +1,117 @@ +// Amplify Shader Editor - Visual Shader Editing Tool +// Copyright (c) Amplify Creations, Lda + +using UnityEditor; +using UnityEngine; +using System.Collections.Generic; + +namespace AmplifyShaderEditor +{ + public enum MessageSeverity + { + Normal, + Warning, + Error + } + public class GenericMessageData + { + public string message; + public MessageSeverity severity; + public bool console; + public GenericMessageData( string msg, MessageSeverity svrty, bool csle ) + { + message = msg; + severity = svrty; + console = csle; + } + } + + class GenericMessageUI + { + public delegate void OnMessageDisplay( string message, MessageSeverity severity, bool console ); + public event OnMessageDisplay OnMessageDisplayEvent; + + private const double MESSAGE_TIME = 2; + private double m_currentMessageStartTime; + private Queue m_messageQueue; + private bool m_displayingMessage; + + public GenericMessageUI() + { + m_messageQueue = new Queue(); + m_displayingMessage = false; + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + } + + public void Destroy() + { + m_messageQueue.Clear(); + OnMessageDisplayEvent = null; + } + + public void AddToQueue( string message, MessageSeverity severity, bool console ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, severity, console ) ); + } + + public void Log( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Normal, true ) ); + Debug.Log( message ); + } + + public void LogError( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Error, true ) ); + Debug.LogError( message ); + } + + public void LogWarning( string message ) + { + m_messageQueue.Enqueue( new GenericMessageData( message, MessageSeverity.Warning, true ) ); + Debug.LogWarning( message ); + } + + public void CheckForMessages() + { + if ( m_displayingMessage ) + { + double timeLeft = EditorApplication.timeSinceStartup - m_currentMessageStartTime; + if ( timeLeft > MESSAGE_TIME ) + { + m_displayingMessage = false; + } + } + + if ( !m_displayingMessage ) + { + if ( m_messageQueue.Count > 0 ) + { + m_displayingMessage = true; + GenericMessageData data = m_messageQueue.Dequeue(); + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + + if ( OnMessageDisplayEvent != null ) + OnMessageDisplayEvent( data.message, data.severity, data.console ); + } + } + } + + public void CleanUpMessageStack() + { + m_displayingMessage = false; + m_messageQueue.Clear(); + } + + public void StartMessageCounter() + { + m_displayingMessage = true; + m_currentMessageStartTime = EditorApplication.timeSinceStartup; + } + + public bool DisplayingMessage + { + get { return ( m_displayingMessage || m_messageQueue.Count > 0 ); } + } + } +} -- cgit v1.1-26-g67d0