/// <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(); } }
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(); }
public void PreDraw(GraphicsDevice device) { spriteBatch.UIBegin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.SaveState); this.PreDraw(spriteBatch); spriteBatch.End(); }