您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
74 行
1.8 KiB
74 行
1.8 KiB
using System;
|
|
using System.Text;
|
|
|
|
namespace UnityEngine.Experimental.Rendering.RenderGraphModule
|
|
{
|
|
struct RenderGraphLogIndent : IDisposable
|
|
{
|
|
int m_Indentation;
|
|
RenderGraphLogger m_Logger;
|
|
bool m_Disposed;
|
|
|
|
public RenderGraphLogIndent(RenderGraphLogger logger, int indentation = 1)
|
|
{
|
|
m_Disposed = false;
|
|
m_Indentation = indentation;
|
|
m_Logger = logger;
|
|
|
|
m_Logger.IncrementIndentation(m_Indentation);
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
Dispose(true);
|
|
}
|
|
|
|
void Dispose(bool disposing)
|
|
{
|
|
if (m_Disposed)
|
|
return;
|
|
|
|
if (disposing)
|
|
{
|
|
m_Logger.DecrementIndentation(m_Indentation);
|
|
}
|
|
|
|
m_Disposed = true;
|
|
}
|
|
}
|
|
|
|
class RenderGraphLogger
|
|
{
|
|
StringBuilder m_Builder = new StringBuilder();
|
|
int m_CurrentIndentation;
|
|
|
|
public void Initialize()
|
|
{
|
|
m_Builder.Clear();
|
|
m_CurrentIndentation = 0;
|
|
}
|
|
|
|
public void IncrementIndentation(int value)
|
|
{
|
|
m_CurrentIndentation += Math.Abs(value);
|
|
}
|
|
|
|
public void DecrementIndentation(int value)
|
|
{
|
|
m_CurrentIndentation = Math.Max(0, m_CurrentIndentation - Math.Abs(value));
|
|
}
|
|
|
|
public void LogLine(string format, params object[] args)
|
|
{
|
|
for (int i = 0; i < m_CurrentIndentation; ++i)
|
|
m_Builder.Append('\t');
|
|
m_Builder.AppendFormat(format, args);
|
|
m_Builder.AppendLine();
|
|
}
|
|
|
|
public string GetLog()
|
|
{
|
|
return m_Builder.ToString();
|
|
}
|
|
}
|
|
}
|