/// <summary> /// 使用NUICanvas类绘图回调接口 /// </summary> /// <param name="canvas"></param> public void DrawHud(NUICanvas canvas) { if (DamageListener != null) { DamageListener.DrawElement(canvas); } }
/// <summary> /// 使用<see cref="NUICanvas"/>渲染2D界面 /// </summary> /// <param name="Canvas"></param> override public void DrawWidgets(NUICanvas Canvas) { base.DrawWidgets(Canvas); Canvas.DrawString(m_defaultFont, m_debugString, 100, 100, new Color4f(1.0f, 0.5f, 1.0f, 0.7f)); Canvas.DrawTexture(m_defaultTexture, new Rect(0, 0, 32 / 1024, 32 / 1024), new Rect(300, 300, 400, 400), new ColorRect(-1)); }
public void DrawElement(NUICanvas canvas) { if (font == null) { return; } foreach (var item in damageInfos) { Rect targetRC = new Rect( item.ScreenPosition.x - item.InitSize.x * 0.5f, item.ScreenPosition.y - item.InitSize.y * 0.5f, item.ScreenPosition.x + item.InitSize.x * 0.5f, item.ScreenPosition.y + item.InitSize.y * 0.5f); font.DrawString(item.DamageMessage, targetRC, item.ScreenPosition.z, item.Scale * (1.0f - item.ScreenPosition.w) * (1.0f - item.ScreenPosition.w), DrawTextFormat.Center, DefaultTextColor, DefaultShadowColor); } }
/// <summary> /// 使用<see cref="NUICanvas"/>渲染2D界面 /// </summary> /// <param name="Canvas"></param> virtual public void DrawWidgets(NUICanvas Canvas) { DrawDebugInfo(Canvas); // 渲染GUI GUISystem.Instance.RenderGUI(); // 绘制当前选中控件的边框 foreach (Window wnd in m_owner.CurrentSelectWindows) { Rect drawRect = wnd.Rect; Color4f selectColor = new Color4f(System.Drawing.Color.Red); Canvas.DrawLine(drawRect.left, drawRect.top, drawRect.right, drawRect.top, selectColor); Canvas.DrawLine(drawRect.left, drawRect.top, drawRect.left, drawRect.bottom, selectColor); Canvas.DrawLine(drawRect.right, drawRect.bottom, drawRect.right, drawRect.top, selectColor); Canvas.DrawLine(drawRect.right, drawRect.bottom, drawRect.left, drawRect.bottom, selectColor); } }
public GUISystem(NUICanvas renderer) { if (instance == null) { instance = this; // 初始化界面系统 this.renderer = renderer; // 创建单件实例 new WindowManager(); new MouseCursor(); ReloadStringDictionary(); // 记录日志 NLogger.Instance.WriteString(LogType.Info, "****** Nexus GUI System initialization. ******"); } }
/// <summary> /// 初始化GUI系统,在InitModules时调用 /// </summary> private void InitGuiSystem() { NRenderResourceManager renderResMgr = NEngine.Instance().RenderResManager; guiCanvas = renderResMgr.NewUICanvas(); // 创建UI系统 new GUISystem(guiCanvas); //加载程序集,注册内置窗口类型 Assembly executingAssembly = Assembly.GetExecutingAssembly(); WindowManager.Instance.LoadAssembly(Path.GetDirectoryName(executingAssembly.Location) + System.IO.Path.DirectorySeparatorChar + @"Nexus.GUI.dll"); // 加载当前执行文件中窗口类型 WindowManager.Instance.AttachAssembly(executingAssembly); WindowManager.Instance.AttachAssembly(Assembly.GetEntryAssembly()); // 创建一个缺省的唯一父窗口 GUISystem.Instance.RootWindow = WindowManager.Instance.CreateWindow("Nexus.GUI.Widgets.GUISheet", GUISystem.DefaultRootWindowName, null); }
public override void Draw(NRenderPrimitiveDrawInterface PDI) { foreach (GameViewportControl control in renderControls) { if (!control.Visible) { continue; } NUICanvas guiCanvas = GameEngine.EngineInstance.GuiCanvas; if (guiCanvas != null) { guiCanvas.Begin(); GameHud.Instance.DrawHud(guiCanvas); control.DrawWidgets(guiCanvas); guiCanvas.End(); } GameHud.Instance.DrawHud(PDI); control.DrawWidgets(PDI); } }
/// <summary> /// 使用<see cref="NUICanvas"/>渲染2D界面 /// </summary> /// <param name="Canvas"></param> public virtual void DrawWidgets(NUICanvas canvas) { GUISystem.Instance.RenderGUI(); }
private void DrawDebugInfo(NUICanvas Canvas) { }
public NGUIWidgetsRender() { NRenderResourceManager renderResMgr = NEngine.Instance().RenderResManager; m_uiCanvas = renderResMgr.NewUICanvas(); }