|
@@ -367,32 +367,24 @@ namespace Ryujinx.Ava
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var colorType = e.IsBgra ? SKColorType.Bgra8888 : SKColorType.Rgba8888;
|
|
var colorType = e.IsBgra ? SKColorType.Bgra8888 : SKColorType.Rgba8888;
|
|
|
- using var bitmap = new SKBitmap(new SKImageInfo(e.Width, e.Height, colorType, SKAlphaType.Premul));
|
|
|
|
|
|
|
+ using SKBitmap bitmap = new SKBitmap(new SKImageInfo(e.Width, e.Height, colorType, SKAlphaType.Premul));
|
|
|
|
|
|
|
|
Marshal.Copy(e.Data, 0, bitmap.GetPixels(), e.Data.Length);
|
|
Marshal.Copy(e.Data, 0, bitmap.GetPixels(), e.Data.Length);
|
|
|
|
|
|
|
|
- SKBitmap bitmapToSave = null;
|
|
|
|
|
|
|
+ using SKBitmap bitmapToSave = new SKBitmap(bitmap.Width, bitmap.Height);
|
|
|
|
|
+ using SKCanvas canvas = new SKCanvas(bitmapToSave);
|
|
|
|
|
|
|
|
- if (e.FlipX || e.FlipY)
|
|
|
|
|
- {
|
|
|
|
|
- bitmapToSave = new SKBitmap(bitmap.Width, bitmap.Height);
|
|
|
|
|
-
|
|
|
|
|
- using var canvas = new SKCanvas(bitmapToSave);
|
|
|
|
|
-
|
|
|
|
|
- canvas.Clear(SKColors.Transparent);
|
|
|
|
|
|
|
+ canvas.Clear(SKColors.Black);
|
|
|
|
|
|
|
|
- float scaleX = e.FlipX ? -1 : 1;
|
|
|
|
|
- float scaleY = e.FlipY ? -1 : 1;
|
|
|
|
|
|
|
+ float scaleX = e.FlipX ? -1 : 1;
|
|
|
|
|
+ float scaleY = e.FlipY ? -1 : 1;
|
|
|
|
|
|
|
|
- var matrix = SKMatrix.CreateScale(scaleX, scaleY, bitmap.Width / 2f, bitmap.Height / 2f);
|
|
|
|
|
|
|
+ var matrix = SKMatrix.CreateScale(scaleX, scaleY, bitmap.Width / 2f, bitmap.Height / 2f);
|
|
|
|
|
|
|
|
- canvas.SetMatrix(matrix);
|
|
|
|
|
-
|
|
|
|
|
- canvas.DrawBitmap(bitmap, new SKPoint(e.FlipX ? -bitmap.Width : 0, e.FlipY ? -bitmap.Height : 0));
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ canvas.SetMatrix(matrix);
|
|
|
|
|
+ canvas.DrawBitmap(bitmap, SKPoint.Empty);
|
|
|
|
|
|
|
|
- SaveBitmapAsPng(bitmapToSave ?? bitmap, path);
|
|
|
|
|
- bitmapToSave?.Dispose();
|
|
|
|
|
|
|
+ SaveBitmapAsPng(bitmapToSave, path);
|
|
|
|
|
|
|
|
Logger.Notice.Print(LogClass.Application, $"Screenshot saved to {path}", "Screenshot");
|
|
Logger.Notice.Print(LogClass.Application, $"Screenshot saved to {path}", "Screenshot");
|
|
|
}
|
|
}
|