public override void Draw(Renderer renderer) { /* #region ScissorInit * bool scaled = Main.renderer.IsScaeld; * Main.renderer.End(); * Rectangle curST = Main.graphics.GraphicsDevice.ScissorRectangle; * Vector2 p = new Vector2((int)position.X, (int)position.Y); * Vector2 s = new Vector2((int)size.X, (int)size.Y); * if (s.X + p.X > Main.graphics.PreferredBackBufferWidth) * { * s.X = Main.graphics.PreferredBackBufferWidth - p.X; * } * if (s.Y + p.Y > Main.graphics.PreferredBackBufferHeight) * { * s.Y = Main.graphics.PreferredBackBufferHeight - p.Y; * } * Main.graphics.GraphicsDevice.ScissorRectangle = new Rectangle((int)p.X, (int)p.Y, (int)s.X, (int)s.Y); * Main.renderer.BeginUnscaled(SpriteSortMode.Immediate, BlendState.AlphaBlend, null, * null, Graphics.GraphicsEngine.s_ScissorsOn); #endregion * //*/ Main.renderer.Draw(Graphics.GraphicsEngine.pixel, position.X, position.Y, size.X, size.Y, background); if (SelectedIndex != -1) { Main.renderer.Draw(Graphics.GraphicsEngine.pixel, position.X, position.Y + (SelectedIndex - Scrolled) * ItemHeight, size.X, ItemHeight, selectedColor); } for (int i = Scrolled; i < Items.Count && i < size.Y / ItemHeight + Scrolled; i++) { Main.renderer.DrawStringLeft(font, Items[i], new Vector2(position.X, position.Y + (i - Scrolled) * ItemHeight - 3), foreground); } scrollbar.Draw(renderer); /* #region ScissorEnd * Main.renderer.End(); * Main.graphics.GraphicsDevice.ScissorRectangle = curST; * Main.renderer.Begin(scaled); #endregion * //*/ }
public override void Draw(Renderer renderer) { renderer.End(); renderer.BeginUnscaled(SpriteSortMode.Immediate, null, SamplerState.PointWrap, null, null, null, Matrix.CreateTranslation(Scene.MainMenu.FrameOffset, 0, 0)); scrollbar.Draw(renderer); renderer.End(); renderer.SetScissorRectangle(position.X, position.Y + 96, size.X, size.Y - 96, false); renderer.BeginUnscaled(SpriteSortMode.Immediate, null, null, null, Graphics.GraphicsEngine.s_ScissorsOn, null, Matrix.CreateTranslation(Scene.MainMenu.FrameOffset, 0, 0)); for (int i = 0; i < elements.Count; i++) { elements[i].Draw(renderer); } renderer.End(); renderer.ResetScissorRectangle(); renderer.SetScissorRectangle(GUIEngine.s_mainMenu.line3p1.X, GUIEngine.s_mainMenu.line3p1.Y, Main.WindowWidth, Main.WindowHeight, false); renderer.BeginUnscaled(SpriteSortMode.Immediate, null, null, null, Graphics.GraphicsEngine.s_ScissorsOn, null, Matrix.CreateTranslation(Scene.MainMenu.FrameOffset, 0, 0)); }