示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
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));
        }