예제 #1
0
 public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
 {
     if (_current != null)
     {
         _current.Draw(gameTime, spriteBatch);
     }
     _gameStateManager.Draw(gameTime, spriteBatch);
 }
예제 #2
0
        public void Draw()
        {
            // Clear all targets to white for depth and shadow buffers
            GraphicsDevice.SetRenderTargets(OutputRT, BorderRT, DepthRT);
            GraphicsDevice.Viewport = outputViewport;
            GraphicsDevice.Clear(
                ClearOptions.Target | ClearOptions.DepthBuffer | ClearOptions.Stencil,
                Color.White, 1.0f, 0);
            GraphicsDevice.RasterizerState = ccwCull;

            // Run rendering systems
            World.Draw();

#if false
            // Draw G-Buffer
            var w = displayViewport.Width;
            var h = displayViewport.Height;

            effect.Texture          = OutputRT;
            GraphicsDevice.Viewport = new Viewport(0, 0, w / 2, h / 2);
            DrawFullscreen(effect);

            effect.Texture          = BorderRT;
            GraphicsDevice.Viewport = new Viewport(w / 2, 0, w / 2, h / 2);
            DrawFullscreen(effect);

            effect.Texture          = DepthRT;
            GraphicsDevice.Viewport = new Viewport(0, h / 2, w / 2, h / 2);
            DrawFullscreen(effect);

            //effect.Texture = ShadowRT;
            //g.Viewport = new Viewport(w / 2, h / 2, w / 2, h / 2);
            //DrawFullscreen(effect);
#endif

            // Output to screen
            GraphicsDevice.SetRenderTarget(null);
            GraphicsDevice.Viewport = displayViewport;
            DrawFullscreen(effect);
        }