Esempio n. 1
0
        /// <summary>
        /// This is called when the game should draw itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Draw(GameTime gameTime)
        {
            base.Draw(gameTime);

            /** Any pre-draw work **/
            lock (GraphicsDevice)
            {
                spriteBatch.UIBegin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
                ScreenMgr.PreDraw(spriteBatch);
                spriteBatch.End();
            }

            GraphicsDevice.Clear(new Color(23, 23, 23));
            GraphicsDevice.RenderState.AlphaBlendEnable  = true;
            GraphicsDevice.RenderState.DepthBufferEnable = true;

            //Deferred sorting seems to just work...
            //NOTE: Using SaveStateMode.SaveState is IMPORTANT to make 3D rendering work properly!
            lock (GraphicsDevice)
            {
                spriteBatch.UIBegin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
                ScreenMgr.Draw(spriteBatch, m_FPS);
                spriteBatch.End();
                SceneMgr.Draw();
            }
        }
Esempio n. 2
0
        public void PreDraw(GraphicsDevice device)
        {
            lock (m_ExtContainers)
            {
                foreach (var ext in m_ExtContainers)
                {
                    lock (ext)
                    {
                        if (!ext.HasUpdated)
                        {
                            ext.Update(null);
                        }
                        ext.PreDraw(SpriteBatch);
                        ext.Draw(SpriteBatch);
                    }
                }
            }

            SpriteBatch.UIBegin(BlendState.AlphaBlend, SpriteSortMode.Immediate);
            this.PreDraw(SpriteBatch);
            SpriteBatch.End();
        }
Esempio n. 3
0
 public void PreDraw(GraphicsDevice device)
 {
     spriteBatch.UIBegin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState);
     this.PreDraw(spriteBatch);
     spriteBatch.End();
 }