public void Paint()
{
lock (SyncLock)
{
if (IsLocked)
{
return;
}
if(lastBufferWidth != this.Console.BufferWidth)
{
lastBufferWidth = this.Console.BufferWidth;
Invalidate();
this.Console.Clear();
}
for (int y = scope.Y; y < scope.Y + scope.Height; y++)
{
for (int x = scope.X; x < scope.X + scope.Width; x++)
{
var pixel = pixels[x][y];
if (pixel.HasChanged)
{
if (pixel.Value.HasValue)
{
DrawPixel(x, y, pixel, pixel.Value.Value);
}
else
{
DrawPixel(x, y, null, Background);
}
}
}
}
}
}