Tastudio - refactor screenshot code to use a required dependency on VideoProvider instead of using Global.Emulator, also put it on the load event instead of the constructor
This commit is contained in:
parent
45a96920b3
commit
2f375388b5
|
@ -14,6 +14,9 @@ namespace BizHawk.Client.EmuHawk
|
||||||
[RequiredService]
|
[RequiredService]
|
||||||
public IStatable StatableEmulator { get; private set; }
|
public IStatable StatableEmulator { get; private set; }
|
||||||
|
|
||||||
|
[RequiredService]
|
||||||
|
public IVideoProvider VideoProvider { get; private set; }
|
||||||
|
|
||||||
[OptionalService]
|
[OptionalService]
|
||||||
public ISaveRam SaveRamEmulator { get; private set; }
|
public ISaveRam SaveRamEmulator { get; private set; }
|
||||||
|
|
||||||
|
|
|
@ -129,26 +129,6 @@ namespace BizHawk.Client.EmuHawk
|
||||||
Settings = new TAStudioSettings();
|
Settings = new TAStudioSettings();
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
if (Global.Emulator != null)
|
|
||||||
{
|
|
||||||
// Set the screenshot to "1x" resolution of the core
|
|
||||||
// cores like n64 and psx are going to still have sizes too big for the control, so cap them
|
|
||||||
int width = Global.Emulator.VideoProvider().BufferWidth;
|
|
||||||
int height = Global.Emulator.VideoProvider().BufferHeight;
|
|
||||||
if (width > 320)
|
|
||||||
{
|
|
||||||
double ratio = 320.0 / (double)width;
|
|
||||||
width = 320;
|
|
||||||
height = (int)((double)(height) * ratio);
|
|
||||||
}
|
|
||||||
ScreenshotControl.DrawingHeight = height;
|
|
||||||
ScreenshotControl.Size = new Size(width, ScreenshotControl.DrawingHeight + ScreenshotControl.UserPadding);
|
|
||||||
}
|
|
||||||
|
|
||||||
ScreenshotControl.Visible = false;
|
|
||||||
Controls.Add(ScreenshotControl);
|
|
||||||
ScreenshotControl.BringToFront();
|
|
||||||
|
|
||||||
// TODO: show this at all times or hide it when saving is done?
|
// TODO: show this at all times or hide it when saving is done?
|
||||||
this.SavingProgressBar.Visible = false;
|
this.SavingProgressBar.Visible = false;
|
||||||
|
|
||||||
|
@ -291,6 +271,24 @@ namespace BizHawk.Client.EmuHawk
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set the screenshot to "1x" resolution of the core
|
||||||
|
// cores like n64 and psx are going to still have sizes too big for the control, so cap them
|
||||||
|
int width = VideoProvider.BufferWidth;
|
||||||
|
int height = VideoProvider.BufferHeight;
|
||||||
|
if (width > 320)
|
||||||
|
{
|
||||||
|
double ratio = 320.0 / (double)width;
|
||||||
|
width = 320;
|
||||||
|
height = (int)((double)(height) * ratio);
|
||||||
|
}
|
||||||
|
ScreenshotControl.DrawingHeight = height;
|
||||||
|
ScreenshotControl.Size = new Size(width, ScreenshotControl.DrawingHeight + ScreenshotControl.UserPadding);
|
||||||
|
|
||||||
|
|
||||||
|
ScreenshotControl.Visible = false;
|
||||||
|
Controls.Add(ScreenshotControl);
|
||||||
|
ScreenshotControl.BringToFront();
|
||||||
|
|
||||||
SetColumnsFromCurrentStickies();
|
SetColumnsFromCurrentStickies();
|
||||||
|
|
||||||
if (VersionInfo.DeveloperBuild)
|
if (VersionInfo.DeveloperBuild)
|
||||||
|
|
Loading…
Reference in New Issue