SmashBros.MySystem.ControllerViewManager.Draw C# (CSharp) Method

Draw() public method

public Draw ( GameTime gameTime ) : void
gameTime GameTime
return void
        public void Draw(GameTime gameTime)
        {
            batch.GraphicsDevice.Clear(Color.Black);

            while (!viewQueue.IsEmpty)
            {
                Tuple<IView, QueueState> cont;
                if (viewQueue.TryDequeue(out cont))
                {
                    if (cont.Item2 == QueueState.Add)
                    {
                        if (!views.Contains(cont.Item1))
                        {
                            views.Add(cont.Item1);
                            views = views.OrderBy(a => a.Layer).ToList();
                        }

                    }
                    else
                    {
                        views.Remove(cont.Item1);
                        if (cont.Item2 == QueueState.Dispose)
                        {
                            cont.Item1.Dispose();
                        }
                    }
                }

            }

            if (views.Count() != 0)
            {

                bool staticPosLast = false;
                int viewsCount = views.Count();
                for (var i = 0; i < viewsCount; i++)
                {
                    if (i != 0 && staticPosLast != views[i].StaticPosition)
                    {
                        batch.End();
                    }

                    if (i == 0 || staticPosLast != views[i].StaticPosition)
                    {
                        if (views[i].StaticPosition)
                            batch.Begin();
                        else
                            batch.Begin(0, null, null, null, null, null, camera.View);
                    }

                    views[i].Draw(batch, gameTime);

                    staticPosLast = views[i].StaticPosition;
                }
                batch.End();
            }

            if (Constants.DebugMode)
            {
                Matrix projection = camera.SimProjection;
                Matrix matrixView = camera.SimView;

                debugView.RenderDebugData(ref projection, ref matrixView);
            }
        }

Usage Example

Example #1
0
 public override void Draw(GameTime gameTime)
 {
     ControllerViewManager.Draw(gameTime);
 }