123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- //------------------------------------------------------------
- // Game Framework v3.x
- // Copyright © 2013-2017 Jiang Yin. All rights reserved.
- // Homepage: http://gameframework.cn/
- // Feedback: mailto:jiangyin@gameframework.cn
- //------------------------------------------------------------
- using System;
- namespace GameFramework.Debugger
- {
- /// <summary>
- /// 调试管理器。
- /// </summary>
- internal sealed partial class DebuggerManager : IDebuggerManager
- {
- private readonly DebuggerWindowGroup m_DebuggerWindowRoot;
- private bool m_ActiveWindow;
- /// <summary>
- /// 初始化调试管理器的新实例。
- /// </summary>
- public DebuggerManager()
- {
- m_DebuggerWindowRoot = new DebuggerWindowGroup();
- m_ActiveWindow = false;
- }
- /// <summary>
- /// 获取或设置调试窗口是否激活。
- /// </summary>
- public bool ActiveWindow
- {
- get
- {
- return m_ActiveWindow;
- }
- set
- {
- m_ActiveWindow = value;
- }
- }
- /// <summary>
- /// 调试窗口根节点。
- /// </summary>
- public IDebuggerWindowGroup DebuggerWindowRoot
- {
- get
- {
- return m_DebuggerWindowRoot;
- }
- }
- /// <summary>
- /// 调试管理器轮询。
- /// </summary>
- /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
- /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
- internal void Update(float elapseSeconds, float realElapseSeconds)
- {
- if (!m_ActiveWindow)
- {
- return;
- }
- m_DebuggerWindowRoot.OnUpdate(elapseSeconds, realElapseSeconds);
- }
- /// <summary>
- /// 关闭并清理调试管理器。
- /// </summary>
- internal void Shutdown()
- {
- m_ActiveWindow = false;
- m_DebuggerWindowRoot.Shutdown();
- }
- /// <summary>
- /// 注册调试窗口。
- /// </summary>
- /// <param name="path">调试窗口路径。</param>
- /// <param name="debuggerWindow">要注册的调试窗口。</param>
- /// <param name="args">初始化调试窗口参数。</param>
- public void RegisterDebuggerWindow(string path, IDebuggerWindow debuggerWindow, params object[] args)
- {
- if (string.IsNullOrEmpty(path))
- {
- throw new ArgumentNullException("Path is invalid.");
- }
- if (debuggerWindow == null)
- {
- throw new ArgumentNullException("Debugger window is invalid.");
- }
- m_DebuggerWindowRoot.RegisterDebuggerWindow(path, debuggerWindow);
- debuggerWindow.Initialize(args);
- }
- /// <summary>
- /// 获取调试窗口。
- /// </summary>
- /// <param name="path">调试窗口路径。</param>
- /// <returns>要获取的调试窗口。</returns>
- public IDebuggerWindow GetDebuggerWindow(string path)
- {
- return m_DebuggerWindowRoot.GetDebuggerWindow(path);
- }
- }
- }
|