private void CreateBuffer() { // create new buffer with new size _buffer = new DoubleBuffer(new Size(Size.Width, Size.Height)); _drawingGraphics = DrawingGraphics.FromGraphicsAndRect( _buffer.Graphics, _buffer.Image, new Rectangle(0, 0, _buffer.Image.Width, _buffer.Image.Height)); }
public override void Draw(IDrawingGraphics drawingGraphics) { if (drawingGraphics == null) return; if ((_buffer == null) || (_needRepaint)) { var newbuffer = new DoubleBuffer(Size); PaintBuffer(newbuffer.Graphics, new Rectangle(0, 0, Size.Width, Size.Height)); _buffer = newbuffer; _needRepaint = false; } drawingGraphics.DrawImage(_buffer.Image, 0, 0); // draw direct to graphic for speed //drawingGraphics.Graphics.DrawImage(_buffer.Image, drawingGraphics.CalculateX(0), drawingGraphics.CalculateY(0)); }
public override void Draw(Fleux.Core.GraphicsHelpers.IDrawingGraphics drawingGraphics) { if ((_buffer == null) || (_needRepaint)) { var newbuffer = new DoubleBuffer(new Size(Size.Width, (_needAnimateTile) ? Size.Height + NameRectHeight() : Size.Height)); PaintBuffer(newbuffer.Graphics, new Rectangle(0, 0, Size.Width, Size.Height)); _buffer = newbuffer; _offsetY = 0; _needRepaint = false; } drawingGraphics.DrawImage(_buffer.Image, new Rectangle(0, 0, Size.Width, Size.Height), new Rectangle(0, _offsetY, Size.Width, Size.Height)); }