SaveStateManager - simplify video buffer loading and don't use Global.Emulator
This commit is contained in:
parent
7a374f0013
commit
5b7d612238
|
@ -132,7 +132,10 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
}
|
||||
|
||||
bl.GetLump(BinaryStateLump.Framebuffer, false, PopulateFramebuffer);
|
||||
if (emulator.HasVideoProvider())
|
||||
{
|
||||
bl.GetLump(BinaryStateLump.Framebuffer, false, br => PopulateFramebuffer(br, emulator.AsVideoProvider()));
|
||||
}
|
||||
|
||||
string userData = "";
|
||||
bl.GetLump(BinaryStateLump.UserData, false, delegate(TextReader tr)
|
||||
|
@ -171,23 +174,18 @@ namespace BizHawk.Client.Common
|
|||
return false;
|
||||
}
|
||||
|
||||
private static void PopulateFramebuffer(BinaryReader br)
|
||||
private static void PopulateFramebuffer(BinaryReader br, IVideoProvider videoProvider)
|
||||
{
|
||||
if (!Global.Emulator.HasVideoProvider())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
using (new SimpleTime("Load Framebuffer"))
|
||||
{
|
||||
QuickBmpFile.Load(Global.Emulator.AsVideoProvider(), br.BaseStream);
|
||||
QuickBmpFile.Load(videoProvider, br.BaseStream);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
var buff = Global.Emulator.AsVideoProvider().GetVideoBuffer();
|
||||
var buff = videoProvider.GetVideoBuffer();
|
||||
try
|
||||
{
|
||||
for (int i = 0; i < buff.Length; i++)
|
||||
|
|
Loading…
Reference in New Issue