예제 #1
0
파일: Window.cs 프로젝트: lukastk/TakaGUI
        /// <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();
            }
        }
예제 #2
0
파일: SlotBox.cs 프로젝트: lukastk/TakaGUI
        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);
                }
            }
        }