/// <summary> /// Draws the window. /// </summary> /// <param name="gameTime"></param> /// <param name="viewRect"></param> public override void Draw(GameTime gameTime, ViewRect viewRect) { if (IsClosed || !IsInitialized || !Activated) { return; } if (!Hidden) { ViewRect windowRect = viewRect.AddGet(new ViewRect(RealX, RealY, Width, Height)); windowRect.Add(GetDefaultBoundaries()); IRender render = GraphicsManager.GetRender(); render.SetViewRect(windowRect); Project(gameTime, RealX, RealY, render); if (!DialoguesAreHidden && DarkenWhenDialogueExists && GetCurrentDialogue() != null) { DrawBox currentDialogue = GetCurrentDialogue(); foreach (DrawBox d in DrawBoxList) { if (currentDialogue != d) { d.Draw(gameTime, viewRect); } } var r = GraphicsManager.GetRender(); r.Begin(); r.Clear(DarkeningMask); r.End(); currentDialogue.Draw(gameTime, viewRect); } else { foreach (DrawBox d in DrawBoxList) { if (DialoguesAreHidden && dialogues.Contains(d)) { continue; } d.Draw(gameTime, viewRect); } } foreach (var f in drawDelegates) { f(gameTime, viewRect); } drawDelegates.Clear(); } }
public override void Draw(GameTime gameTime, ViewRect viewRect) { base.Draw(gameTime, viewRect); if (!IsInitialized || !Activated || Hidden) { return; } viewRect.Add(Boundaries); viewRect.Add(GetMasterBoundaries()); if (!DialoguesAreHidden && DarkenWhenDialogueExists && GetCurrentDialogue() != null) { DrawBox currentDialogue = GetCurrentDialogue(); foreach (DrawBox d in DrawBoxList) { if (currentDialogue != d) { d.Draw(gameTime, viewRect); } } var render = GraphicsManager.GetRender(); render.Begin(); render.Clear(DarkeningMask); render.End(); currentDialogue.Draw(gameTime, viewRect); } else { foreach (DrawBox d in DrawBoxList) { if (DialoguesAreHidden && dialogues.Contains(d)) { continue; } d.Draw(gameTime, viewRect); } } }