Explicitly dispose ImageSharp images.

This commit is contained in:
Pieter-Jan Briers
2019-08-28 12:08:10 +02:00
parent 0f0a3eb822
commit ffc9f10399
2 changed files with 26 additions and 23 deletions

View File

@@ -320,33 +320,34 @@ namespace Content.Client.Parallax
public override void Apply(Image<Rgba32> bitmap)
{
// Temporary buffer so we don't mess up blending.
var buffer = new Image<Rgba32>(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black);
if (Masked)
using (var buffer = new Image<Rgba32>(Configuration.Default, bitmap.Width, bitmap.Height, Rgba32.Black))
{
GenPointsMasked(buffer);
}
else
{
GenPoints(buffer);
}
var srcSpan = buffer.GetPixelSpan();
var dstSpan = bitmap.GetPixelSpan();
var width = bitmap.Width;
var height = bitmap.Height;
for (var y = 0; y < height; y++)
{
for (var x = 0; x < width; x++)
if (Masked)
{
var i = y * width + x;
GenPointsMasked(buffer);
}
else
{
GenPoints(buffer);
}
var dstColor = dstSpan[i].ConvertImgSharp();
var srcColor = srcSpan[i].ConvertImgSharp();
var srcSpan = buffer.GetPixelSpan();
var dstSpan = bitmap.GetPixelSpan();
dstSpan[i] = Color.Blend(dstColor, srcColor, DstFactor, SrcFactor).ConvertImgSharp();
var width = bitmap.Width;
var height = bitmap.Height;
for (var y = 0; y < height; y++)
{
for (var x = 0; x < width; x++)
{
var i = y * width + x;
var dstColor = dstSpan[i].ConvertImgSharp();
var srcColor = srcSpan[i].ConvertImgSharp();
dstSpan[i] = Color.Blend(dstColor, srcColor, DstFactor, SrcFactor).ConvertImgSharp();
}
}
}
}