Add "Auto Aspect Ratio" to both graphics plugins. It's the new default, so you can forget about switching aspect manually from now on. In the Auto mode, aspect ratio is automatically set depending on whether it's a Wii or GC game, and whether the global Wii Widescreen setting has been set. There is still the possibility to override, which can be useful for the very few GC games that do support widescreen.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4828 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
dd01e0d417
commit
2db709aeb6
|
@ -324,6 +324,7 @@ THREAD_RETURN EmuThread(void *pArg)
|
||||||
VideoInitialize.Fifo_CPUBase = &ProcessorInterface::Fifo_CPUBase;
|
VideoInitialize.Fifo_CPUBase = &ProcessorInterface::Fifo_CPUBase;
|
||||||
VideoInitialize.Fifo_CPUEnd = &ProcessorInterface::Fifo_CPUEnd;
|
VideoInitialize.Fifo_CPUEnd = &ProcessorInterface::Fifo_CPUEnd;
|
||||||
VideoInitialize.Fifo_CPUWritePointer = &ProcessorInterface::Fifo_CPUWritePointer;
|
VideoInitialize.Fifo_CPUWritePointer = &ProcessorInterface::Fifo_CPUWritePointer;
|
||||||
|
VideoInitialize.bAutoAspectIs16_9 = _CoreParameter.bWii ? SConfig::GetInstance().m_SYSCONF->GetData<u8>("IPL.AR") : false;
|
||||||
|
|
||||||
Plugins.GetVideo()->Initialize(&VideoInitialize); // Call the dll
|
Plugins.GetVideo()->Initialize(&VideoInitialize); // Call the dll
|
||||||
|
|
||||||
|
|
|
@ -54,8 +54,7 @@ void VideoConfig::Load(const char *ini_file)
|
||||||
iniFile.Get("Settings", "StretchToFit", &bNativeResolution, true);
|
iniFile.Get("Settings", "StretchToFit", &bNativeResolution, true);
|
||||||
iniFile.Get("Settings", "2xResolution", &b2xResolution, false);
|
iniFile.Get("Settings", "2xResolution", &b2xResolution, false);
|
||||||
iniFile.Get("Settings", "wideScreenHack", &bWidescreenHack, false);
|
iniFile.Get("Settings", "wideScreenHack", &bWidescreenHack, false);
|
||||||
iniFile.Get("Settings", "KeepAR_4_3", &bKeepAR43, true);
|
iniFile.Get("Settings", "AspectRatio", &iAspectRatio, (int)ASPECT_AUTO);
|
||||||
iniFile.Get("Settings", "KeepAR_16_9", &bKeepAR169, false);
|
|
||||||
iniFile.Get("Settings", "Crop", &bCrop, false);
|
iniFile.Get("Settings", "Crop", &bCrop, false);
|
||||||
iniFile.Get("Settings", "HideCursor", &bHideCursor, false);
|
iniFile.Get("Settings", "HideCursor", &bHideCursor, false);
|
||||||
iniFile.Get("Settings", "UseXFB", &bUseXFB, 0);
|
iniFile.Get("Settings", "UseXFB", &bUseXFB, 0);
|
||||||
|
@ -149,8 +148,7 @@ void VideoConfig::Save(const char *ini_file)
|
||||||
iniFile.Set("Hardware", "RenderToMainframe", RenderToMainframe);
|
iniFile.Set("Hardware", "RenderToMainframe", RenderToMainframe);
|
||||||
iniFile.Set("Settings", "StretchToFit", bNativeResolution);
|
iniFile.Set("Settings", "StretchToFit", bNativeResolution);
|
||||||
iniFile.Set("Settings", "2xResolution", b2xResolution);
|
iniFile.Set("Settings", "2xResolution", b2xResolution);
|
||||||
iniFile.Set("Settings", "KeepAR_4_3", bKeepAR43);
|
iniFile.Set("Settings", "AspectRatio", iAspectRatio);
|
||||||
iniFile.Set("Settings", "KeepAR_16_9", bKeepAR169);
|
|
||||||
iniFile.Set("Settings", "Crop", bCrop);
|
iniFile.Set("Settings", "Crop", bCrop);
|
||||||
iniFile.Set("Settings", "wideScreenHack", bWidescreenHack);
|
iniFile.Set("Settings", "wideScreenHack", bWidescreenHack);
|
||||||
iniFile.Set("Settings", "HideCursor", bHideCursor);
|
iniFile.Set("Settings", "HideCursor", bHideCursor);
|
||||||
|
@ -210,10 +208,19 @@ void ComputeDrawRectangle(int backbuffer_width, int backbuffer_height, bool flip
|
||||||
const float WinHeight = FloatGLHeight;
|
const float WinHeight = FloatGLHeight;
|
||||||
|
|
||||||
// Handle aspect ratio.
|
// Handle aspect ratio.
|
||||||
if (g_ActiveConfig.bKeepAR43 || g_ActiveConfig.bKeepAR169)
|
// Default to auto.
|
||||||
|
bool use16_9 = g_VideoInitialize.bAutoAspectIs16_9;
|
||||||
|
|
||||||
|
// Check for force-settings and override.
|
||||||
|
if (g_ActiveConfig.iAspectRatio == ASPECT_FORCE_16_9)
|
||||||
|
use16_9 = true;
|
||||||
|
else if (g_ActiveConfig.iAspectRatio == ASPECT_FORCE_4_3)
|
||||||
|
use16_9 = false;
|
||||||
|
|
||||||
|
if (g_ActiveConfig.iAspectRatio != ASPECT_STRETCH)
|
||||||
{
|
{
|
||||||
// The rendering window aspect ratio as a proportion of the 4:3 or 16:9 ratio
|
// The rendering window aspect ratio as a proportion of the 4:3 or 16:9 ratio
|
||||||
float Ratio = (WinWidth / WinHeight) / (g_Config.bKeepAR43 ? (4.0f / 3.0f) : (16.0f / 9.0f));
|
float Ratio = (WinWidth / WinHeight) / (!use16_9 ? (4.0f / 3.0f) : (16.0f / 9.0f));
|
||||||
// Check if height or width is the limiting factor. If ratio > 1 the picture is too wide and have to limit the width.
|
// Check if height or width is the limiting factor. If ratio > 1 the picture is too wide and have to limit the width.
|
||||||
if (Ratio > 1.0f)
|
if (Ratio > 1.0f)
|
||||||
{
|
{
|
||||||
|
@ -234,9 +241,9 @@ void ComputeDrawRectangle(int backbuffer_width, int backbuffer_height, bool flip
|
||||||
// Crop the picture from 4:3 to 5:4 or from 16:9 to 16:10.
|
// Crop the picture from 4:3 to 5:4 or from 16:9 to 16:10.
|
||||||
// Output: FloatGLWidth, FloatGLHeight, FloatXOffset, FloatYOffset
|
// Output: FloatGLWidth, FloatGLHeight, FloatXOffset, FloatYOffset
|
||||||
// ------------------
|
// ------------------
|
||||||
if ((g_ActiveConfig.bKeepAR43 || g_ActiveConfig.bKeepAR169) && g_ActiveConfig.bCrop)
|
if (g_ActiveConfig.iAspectRatio != ASPECT_STRETCH && g_ActiveConfig.bCrop)
|
||||||
{
|
{
|
||||||
float Ratio = g_Config.bKeepAR43 ? ((4.0f / 3.0f) / (5.0f / 4.0f)) : (((16.0f / 9.0f) / (16.0f / 10.0f)));
|
float Ratio = !use16_9 ? ((4.0f / 3.0f) / (5.0f / 4.0f)) : (((16.0f / 9.0f) / (16.0f / 10.0f)));
|
||||||
// The width and height we will add (calculate this before FloatGLWidth and FloatGLHeight is adjusted)
|
// The width and height we will add (calculate this before FloatGLWidth and FloatGLHeight is adjusted)
|
||||||
float IncreasedWidth = (Ratio - 1.0f) * FloatGLWidth;
|
float IncreasedWidth = (Ratio - 1.0f) * FloatGLWidth;
|
||||||
float IncreasedHeight = (Ratio - 1.0f) * FloatGLHeight;
|
float IncreasedHeight = (Ratio - 1.0f) * FloatGLHeight;
|
||||||
|
|
|
@ -48,6 +48,13 @@ enum MultisampleMode {
|
||||||
MULTISAMPLE_CSAA_16XQ,
|
MULTISAMPLE_CSAA_16XQ,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum AspectMode {
|
||||||
|
ASPECT_AUTO = 0,
|
||||||
|
ASPECT_FORCE_16_9 = 1,
|
||||||
|
ASPECT_FORCE_4_3 = 2,
|
||||||
|
ASPECT_STRETCH = 3,
|
||||||
|
};
|
||||||
|
|
||||||
class IniFile;
|
class IniFile;
|
||||||
|
|
||||||
// NEVER inherit from this class.
|
// NEVER inherit from this class.
|
||||||
|
@ -71,7 +78,8 @@ struct VideoConfig
|
||||||
|
|
||||||
bool bNativeResolution, b2xResolution, bRunning; // Should possibly be augmented with 2x, 4x native.
|
bool bNativeResolution, b2xResolution, bRunning; // Should possibly be augmented with 2x, 4x native.
|
||||||
bool bWidescreenHack;
|
bool bWidescreenHack;
|
||||||
bool bKeepAR43, bKeepAR169, bCrop; // Aspect ratio controls.
|
int iAspectRatio;
|
||||||
|
bool bCrop; // Aspect ratio controls.
|
||||||
bool bUseXFB;
|
bool bUseXFB;
|
||||||
bool bAutoScale; // Removes annoying borders without using XFB. Doesn't always work perfectly.
|
bool bAutoScale; // Removes annoying borders without using XFB. Doesn't always work perfectly.
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ typedef struct
|
||||||
u32 *Fifo_CPUBase;
|
u32 *Fifo_CPUBase;
|
||||||
u32 *Fifo_CPUEnd;
|
u32 *Fifo_CPUEnd;
|
||||||
u32 *Fifo_CPUWritePointer;
|
u32 *Fifo_CPUWritePointer;
|
||||||
|
bool bAutoAspectIs16_9;
|
||||||
} SVideoInitialize;
|
} SVideoInitialize;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,13 @@
|
||||||
// TODO: remove if/when ini files use unicode
|
// TODO: remove if/when ini files use unicode
|
||||||
#define ComboBox_GetTextA(hwndCtl, lpch, cchMax) GetWindowTextA((hwndCtl), (lpch), (cchMax))
|
#define ComboBox_GetTextA(hwndCtl, lpch, cchMax) GetWindowTextA((hwndCtl), (lpch), (cchMax))
|
||||||
|
|
||||||
|
const char *aspect_ratio_names[4] = {
|
||||||
|
"Auto",
|
||||||
|
"Force 16:9 Widescreen",
|
||||||
|
"Force 4:3 Standard",
|
||||||
|
"Stretch to Window",
|
||||||
|
};
|
||||||
|
|
||||||
struct TabDirect3D : public W32Util::Tab
|
struct TabDirect3D : public W32Util::Tab
|
||||||
{
|
{
|
||||||
void Init(HWND hDlg)
|
void Init(HWND hDlg)
|
||||||
|
@ -39,7 +46,7 @@ struct TabDirect3D : public W32Util::Tab
|
||||||
{
|
{
|
||||||
const D3D::Adapter &adapter = D3D::GetAdapter(i);
|
const D3D::Adapter &adapter = D3D::GetAdapter(i);
|
||||||
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, adapter.ident.Description, -1, tempwstr, 2000);
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, adapter.ident.Description, -1, tempwstr, 2000);
|
||||||
ComboBox_AddString(GetDlgItem(hDlg,IDC_ADAPTER),tempwstr);
|
ComboBox_AddString(GetDlgItem(hDlg, IDC_ADAPTER),tempwstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
const D3D::Adapter &adapter = D3D::GetAdapter(g_Config.iAdapter);
|
const D3D::Adapter &adapter = D3D::GetAdapter(g_Config.iAdapter);
|
||||||
|
@ -57,25 +64,34 @@ struct TabDirect3D : public W32Util::Tab
|
||||||
ComboBox_Enable(GetDlgItem(hDlg, IDC_ANTIALIASMODE), FALSE);
|
ComboBox_Enable(GetDlgItem(hDlg, IDC_ANTIALIASMODE), FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; i++)
|
||||||
|
{
|
||||||
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, aspect_ratio_names[i], -1, tempwstr, 2000);
|
||||||
|
ComboBox_AddString(GetDlgItem(hDlg, IDC_ASPECTRATIO), tempwstr);
|
||||||
|
}
|
||||||
|
ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_ASPECTRATIO), g_Config.iAspectRatio);
|
||||||
|
|
||||||
for (int i = 0; i < (int)adapter.resolutions.size(); i++)
|
for (int i = 0; i < (int)adapter.resolutions.size(); i++)
|
||||||
{
|
{
|
||||||
const D3D::Resolution &r = adapter.resolutions[i];
|
const D3D::Resolution &r = adapter.resolutions[i];
|
||||||
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, r.name, -1, tempwstr, 2000);
|
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, r.name, -1, tempwstr, 2000);
|
||||||
ComboBox_AddString(GetDlgItem(hDlg,IDC_RESOLUTION), tempwstr);
|
ComboBox_AddString(GetDlgItem(hDlg, IDC_RESOLUTION), tempwstr);
|
||||||
ComboBox_AddString(GetDlgItem(hDlg,IDC_RESOLUTIONWINDOWED),tempwstr);
|
ComboBox_AddString(GetDlgItem(hDlg, IDC_RESOLUTIONWINDOWED),tempwstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i <16; i++) tempwstr[i] = g_Config.cFSResolution[i];
|
for (int i = 0; i < 16; i++) {
|
||||||
|
tempwstr[i] = g_Config.cFSResolution[i];
|
||||||
|
}
|
||||||
ComboBox_SelectString(GetDlgItem(hDlg,IDC_RESOLUTION), -1, tempwstr);
|
ComboBox_SelectString(GetDlgItem(hDlg,IDC_RESOLUTION), -1, tempwstr);
|
||||||
|
|
||||||
for (int i = 0; i < 16; i++) tempwstr[i] = g_Config.cInternalRes[i];
|
for (int i = 0; i < 16; i++) {
|
||||||
|
tempwstr[i] = g_Config.cInternalRes[i];
|
||||||
|
}
|
||||||
ComboBox_SelectString(GetDlgItem(hDlg,IDC_RESOLUTIONWINDOWED), -1, tempwstr);
|
ComboBox_SelectString(GetDlgItem(hDlg,IDC_RESOLUTIONWINDOWED), -1, tempwstr);
|
||||||
|
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_FULLSCREENENABLE), g_Config.bFullscreen);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_FULLSCREENENABLE), g_Config.bFullscreen);
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_VSYNC), g_Config.bVSync);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_VSYNC), g_Config.bVSync);
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_RENDER_TO_MAINWINDOW), g_Config.RenderToMainframe);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_RENDER_TO_MAINWINDOW), g_Config.RenderToMainframe);
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_ASPECT_16_9), g_Config.bKeepAR169);
|
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_ASPECT_4_3), g_Config.bKeepAR43);
|
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK), g_Config.bWidescreenHack);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK), g_Config.bWidescreenHack);
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE), g_Config.bSafeTextureCache);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_SAFE_TEXTURE_CACHE), g_Config.bSafeTextureCache);
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_EFB_ACCESS_ENABLE), g_Config.bEFBAccessEnable);
|
Button_SetCheck(GetDlgItem(hDlg, IDC_EFB_ACCESS_ENABLE), g_Config.bEFBAccessEnable);
|
||||||
|
@ -86,15 +102,8 @@ struct TabDirect3D : public W32Util::Tab
|
||||||
{
|
{
|
||||||
switch (LOWORD(wParam))
|
switch (LOWORD(wParam))
|
||||||
{
|
{
|
||||||
case IDC_ASPECT_4_3:
|
case IDC_ASPECTRATIO:
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_ASPECT_16_9), FALSE);
|
g_Config.iAspectRatio = ComboBox_GetCurSel(GetDlgItem(hDlg, IDC_ASPECTRATIO));
|
||||||
g_Config.bKeepAR43 = Button_GetCheck(GetDlgItem(hDlg, IDC_ASPECT_4_3)) ? true : false;
|
|
||||||
g_Config.bKeepAR169 = false;
|
|
||||||
break;
|
|
||||||
case IDC_ASPECT_16_9:
|
|
||||||
Button_SetCheck(GetDlgItem(hDlg, IDC_ASPECT_4_3), FALSE);
|
|
||||||
g_Config.bKeepAR169 = Button_GetCheck(GetDlgItem(hDlg, IDC_ASPECT_16_9)) ? true : false;
|
|
||||||
g_Config.bKeepAR43 = false;
|
|
||||||
break;
|
break;
|
||||||
case IDC_WIDESCREEN_HACK:
|
case IDC_WIDESCREEN_HACK:
|
||||||
g_Config.bWidescreenHack = Button_GetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK)) ? true : false;
|
g_Config.bWidescreenHack = Button_GetCheck(GetDlgItem(hDlg, IDC_WIDESCREEN_HACK)) ? true : false;
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
#define IDD_SETTINGS 103
|
#define IDD_SETTINGS 103
|
||||||
#define IDD_ENHANCEMENTS 104
|
#define IDD_ENHANCEMENTS 104
|
||||||
#define IDD_ADVANCED 105
|
#define IDD_ADVANCED 105
|
||||||
|
|
||||||
#define IDC_ADAPTER 1001
|
#define IDC_ADAPTER 1001
|
||||||
#define IDC_ANTIALIASMODE 1002
|
#define IDC_ANTIALIASMODE 1002
|
||||||
#define IDC_RESOLUTION 1003
|
#define IDC_RESOLUTION 1003
|
||||||
|
@ -37,14 +36,14 @@
|
||||||
#define IDC_FORCEANISOTROPY 1027
|
#define IDC_FORCEANISOTROPY 1027
|
||||||
#define IDC_LOADHIRESTEXTURE 1028
|
#define IDC_LOADHIRESTEXTURE 1028
|
||||||
#define IDC_EFBSCALEDCOPY 1029
|
#define IDC_EFBSCALEDCOPY 1029
|
||||||
|
#define IDC_COMBO2 1040
|
||||||
|
#define IDC_ASPECTRATIO 1040
|
||||||
#define IDC_CHECK1 1100
|
#define IDC_CHECK1 1100
|
||||||
#define IDC_LIST1 1101
|
#define IDC_LIST1 1101
|
||||||
#define IDC_DEBUGSTEP 1102
|
#define IDC_DEBUGSTEP 1102
|
||||||
#define IDC_REGISTERS 1103
|
#define IDC_REGISTERS 1103
|
||||||
#define IDC_ENABLEDEBUGGING 1104
|
#define IDC_ENABLEDEBUGGING 1104
|
||||||
#define IDC_REGISTERSELECT 1105
|
#define IDC_REGISTERSELECT 1105
|
||||||
|
|
||||||
#define IDC_STATIC -1
|
#define IDC_STATIC -1
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
|
@ -53,7 +52,7 @@
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 106
|
#define _APS_NEXT_RESOURCE_VALUE 106
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1039
|
#define _APS_NEXT_CONTROL_VALUE 1041
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -36,30 +36,27 @@ BEGIN
|
||||||
LTEXT "Will not work correctly on older GPU:s.",IDC_STATIC,7,47,170,8
|
LTEXT "Will not work correctly on older GPU:s.",IDC_STATIC,7,47,170,8
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_SETTINGS DIALOGEX 0, 0, 244, 217
|
IDD_SETTINGS DIALOGEX 0, 0, 244, 183
|
||||||
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER | WS_SYSMENU
|
||||||
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "&Graphics card:",IDC_STATIC,7,9,61,8
|
LTEXT "&Graphics card:",IDC_STATIC,7,9,61,8
|
||||||
COMBOBOX IDC_ADAPTER,68,7,169,84,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_ADAPTER,68,7,169,48,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "&Fullscreen",IDC_FULLSCREENENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,25,56,8
|
CONTROL "&Fullscreen",IDC_FULLSCREENENABLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,25,56,8
|
||||||
CONTROL "&V-Sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,38,141,8
|
CONTROL "&V-Sync",IDC_VSYNC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,38,141,8
|
||||||
CONTROL "&Render to main window",IDC_RENDER_TO_MAINWINDOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,50,141,8
|
CONTROL "&Render to main window",IDC_RENDER_TO_MAINWINDOW,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,50,141,8
|
||||||
LTEXT "Full&screen resolution:",IDC_STATIC,7,98,69,8
|
LTEXT "Full&screen resolution:",IDC_STATIC,7,86,69,8
|
||||||
COMBOBOX IDC_RESOLUTION,87,98,150,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_RESOLUTION,87,85,150,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
LTEXT "&Windowed resolution:",IDC_STATIC,7,117,74,8
|
LTEXT "&Windowed resolution:",IDC_STATIC,7,106,74,8
|
||||||
COMBOBOX IDC_RESOLUTIONWINDOWED,87,116,150,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
COMBOBOX IDC_RESOLUTIONWINDOWED,87,104,150,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
CONTROL "Rotate windowed mode 90 degrees (for &Ikaruga)",IDC_CHECK1,
|
LTEXT "&Anti-alias mode:",IDC_STATIC,7,127,56,8
|
||||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_DISABLED | WS_TABSTOP,87,132,150,17
|
COMBOBOX IDC_ANTIALIASMODE,68,125,169,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
LTEXT "&Anti-alias mode:",IDC_STATIC,7,157,61,8
|
|
||||||
COMBOBOX IDC_ANTIALIASMODE,68,155,169,73,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
|
||||||
LTEXT "&Aspect Ratio:",IDC_STATIC,7,66,52,8
|
LTEXT "&Aspect Ratio:",IDC_STATIC,7,66,52,8
|
||||||
CONTROL "4:3",IDC_ASPECT_4_3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,66,59,11
|
CONTROL "&Widescreen Hack",IDC_WIDESCREEN_HACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,170,66,67,10
|
||||||
CONTROL "16:9",IDC_ASPECT_16_9,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,80,49,11
|
CONTROL "&Safe Texture Cache",IDC_SAFE_TEXTURE_CACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,143,85,11
|
||||||
CONTROL "&Widescreen Hack",IDC_WIDESCREEN_HACK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,128,81,73,10
|
|
||||||
CONTROL "&Safe Texture Cache",IDC_SAFE_TEXTURE_CACHE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,68,172,85,11
|
|
||||||
CONTROL "&Enable CPU->EFB access (can cause slowdowns, enables pull stars in SMG and lens flare in Zeldas)",IDC_EFB_ACCESS_ENABLE,
|
CONTROL "&Enable CPU->EFB access (can cause slowdowns, enables pull stars in SMG and lens flare in Zeldas)",IDC_EFB_ACCESS_ENABLE,
|
||||||
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,68,187,169,23
|
"Button",BS_AUTOCHECKBOX | BS_MULTILINE | WS_TABSTOP,68,153,169,23
|
||||||
|
COMBOBOX IDC_ASPECTRATIO,68,64,97,57,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DEBUGGER DIALOGEX 0, 0, 234, 254
|
IDD_DEBUGGER DIALOGEX 0, 0, 234, 254
|
||||||
|
@ -109,11 +106,10 @@ BEGIN
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,20,192,9
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,20,192,9
|
||||||
CONTROL "Enable 16x &anisotropy filtering",IDC_FORCEANISOTROPY,
|
CONTROL "Enable 16x &anisotropy filtering",IDC_FORCEANISOTROPY,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,35,110,10
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,35,110,10
|
||||||
CONTROL "Enable hires texture loading", IDC_LOADHIRESTEXTURE,
|
CONTROL "Enable hires texture loading",IDC_LOADHIRESTEXTURE,
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,110,11
|
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,50,110,11
|
||||||
GROUPBOX "EFB Hacks",IDC_STATIC,7,70,210,60
|
GROUPBOX "EFB Hacks",IDC_STATIC,7,70,210,60
|
||||||
CONTROL "EFB Scaled Copy",IDC_EFBSCALEDCOPY,
|
CONTROL "EFB Scaled Copy",IDC_EFBSCALEDCOPY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,80,110,12
|
||||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,80,110,12
|
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -142,7 +138,7 @@ BEGIN
|
||||||
VERTGUIDE, 81
|
VERTGUIDE, 81
|
||||||
VERTGUIDE, 87
|
VERTGUIDE, 87
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 210
|
BOTTOMMARGIN, 176
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DEBUGGER, DIALOG
|
IDD_DEBUGGER, DIALOG
|
||||||
|
@ -193,9 +189,26 @@ BEGIN
|
||||||
"#include <windows.h\0"
|
"#include <windows.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
3 TEXTINCLUDE
|
||||||
|
BEGIN
|
||||||
|
"\r\n"
|
||||||
|
"\0"
|
||||||
|
END
|
||||||
|
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef APSTUDIO_INVOKED
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Generated from the TEXTINCLUDE 3 resource.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#endif // not APSTUDIO_INVOKED
|
||||||
|
|
||||||
|
|
|
@ -49,7 +49,7 @@ BEGIN_EVENT_TABLE(GFXConfigDialogOGL,wxDialog)
|
||||||
EVT_CHECKBOX(ID_USEXFB, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHECKBOX(ID_USEXFB, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_FORCEFILTERING, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHECKBOX(ID_FORCEFILTERING, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_AUTOSCALE, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHECKBOX(ID_AUTOSCALE, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
EVT_CHOICE(ID_KEEPAR, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHOICE(ID_ASPECT, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_CROP, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHECKBOX(ID_CROP, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
EVT_CHECKBOX(ID_HIDECURSOR, GFXConfigDialogOGL::GeneralSettingsChanged)
|
EVT_CHECKBOX(ID_HIDECURSOR, GFXConfigDialogOGL::GeneralSettingsChanged)
|
||||||
|
@ -175,9 +175,9 @@ void GFXConfigDialogOGL::CreateGUIControls()
|
||||||
m_RenderToMainWindow->SetValue(g_Config.RenderToMainframe);
|
m_RenderToMainWindow->SetValue(g_Config.RenderToMainframe);
|
||||||
m_NativeResolution = new wxCheckBox(m_PageGeneral, ID_NATIVERESOLUTION, wxT("Native"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_NativeResolution = new wxCheckBox(m_PageGeneral, ID_NATIVERESOLUTION, wxT("Native"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
m_2xResolution = new wxCheckBox(m_PageGeneral, ID_2X_RESOLUTION, wxT("2x"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_2xResolution = new wxCheckBox(m_PageGeneral, ID_2X_RESOLUTION, wxT("2x"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
wxStaticText *IRText = new wxStaticText(m_PageGeneral, ID_IRTEXT, wxT("Resolution :"), wxDefaultPosition, wxDefaultSize, 0);
|
wxStaticText *IRText = new wxStaticText(m_PageGeneral, ID_IRTEXT, wxT("Resolution:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
wxStaticText *RText = new wxStaticText(m_PageGeneral, ID_RTEXT, wxT("Custom resolution :"), wxDefaultPosition, wxDefaultSize, 0);
|
wxStaticText *RText = new wxStaticText(m_PageGeneral, ID_RTEXT, wxT("Custom resolution:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
wxStaticText *WMText = new wxStaticText(m_PageGeneral, ID_WMTEXT, wxT("Windowed :"), wxDefaultPosition, wxDefaultSize , 0 );
|
wxStaticText *WMText = new wxStaticText(m_PageGeneral, ID_WMTEXT, wxT("Windowed:"), wxDefaultPosition, wxDefaultSize , 0 );
|
||||||
m_WindowResolutionCB = new wxComboBox(m_PageGeneral, ID_WINDOWRESOLUTIONCB, arrayStringFor_WindowResolutionCB[0], wxDefaultPosition, wxDefaultSize, arrayStringFor_WindowResolutionCB, wxCB_READONLY, wxDefaultValidator);
|
m_WindowResolutionCB = new wxComboBox(m_PageGeneral, ID_WINDOWRESOLUTIONCB, arrayStringFor_WindowResolutionCB[0], wxDefaultPosition, wxDefaultSize, arrayStringFor_WindowResolutionCB, wxCB_READONLY, wxDefaultValidator);
|
||||||
m_WindowResolutionCB->SetValue(wxString::FromAscii(g_Config.cInternalRes));
|
m_WindowResolutionCB->SetValue(wxString::FromAscii(g_Config.cInternalRes));
|
||||||
m_WindowFSResolutionCB = new wxComboBox(m_PageGeneral, ID_WINDOWFSRESOLUTIONCB, arrayStringFor_FullscreenCB[0], wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenCB, wxCB_READONLY, wxDefaultValidator);
|
m_WindowFSResolutionCB = new wxComboBox(m_PageGeneral, ID_WINDOWFSRESOLUTIONCB, arrayStringFor_FullscreenCB[0], wxDefaultPosition, wxDefaultSize, arrayStringFor_FullscreenCB, wxCB_READONLY, wxDefaultValidator);
|
||||||
|
@ -185,27 +185,27 @@ void GFXConfigDialogOGL::CreateGUIControls()
|
||||||
|
|
||||||
// Aspect ratio / positioning controls
|
// Aspect ratio / positioning controls
|
||||||
wxStaticText *KeepARText = new wxStaticText(m_PageGeneral, wxID_ANY, wxT("Keep aspect ratio:"), wxDefaultPosition, wxDefaultSize, 0);
|
wxStaticText *KeepARText = new wxStaticText(m_PageGeneral, wxID_ANY, wxT("Keep aspect ratio:"), wxDefaultPosition, wxDefaultSize, 0);
|
||||||
m_KeepAR = new wxChoice(m_PageGeneral, ID_KEEPAR, wxDefaultPosition, wxDefaultSize);
|
m_KeepAR = new wxChoice(m_PageGeneral, ID_ASPECT, wxDefaultPosition, wxDefaultSize);
|
||||||
m_KeepAR->Append(wxT("Disabled"));
|
m_KeepAR->Append(wxT("Auto Aspect (recommended)"));
|
||||||
m_KeepAR->Append(wxT("4:3"));
|
m_KeepAR->Append(wxT("Force 16:9 Widescreen"));
|
||||||
m_KeepAR->Append(wxT("16:9"));
|
m_KeepAR->Append(wxT("Force 4:3 Standard"));
|
||||||
m_KeepAR->Append(wxT("WideScreen Hack"));
|
m_KeepAR->Append(wxT("Stretch to Window"));
|
||||||
m_Crop = new wxCheckBox(m_PageGeneral, ID_CROP, wxT("Crop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_Crop = new wxCheckBox(m_PageGeneral, ID_CROP, wxT("Crop"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
m_Fullscreen = new wxCheckBox(m_PageGeneral, ID_FULLSCREEN, wxT("Fullscreen :"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_Fullscreen = new wxCheckBox(m_PageGeneral, ID_FULLSCREEN, wxT("Fullscreen :"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
m_Fullscreen->SetValue(g_Config.bFullscreen);
|
m_Fullscreen->SetValue(g_Config.bFullscreen);
|
||||||
m_UseXFB = new wxCheckBox(m_PageGeneral, ID_USEXFB, wxT("Use Real XFB"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_UseXFB = new wxCheckBox(m_PageGeneral, ID_USEXFB, wxT("Use Real XFB"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
m_AutoScale = new wxCheckBox(m_PageGeneral, ID_AUTOSCALE, wxT("Auto scale (try to remove borders)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_AutoScale = new wxCheckBox(m_PageGeneral, ID_AUTOSCALE, wxT("Auto scale (try to remove borders)"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
m_WidescreenHack = new wxCheckBox(m_PageGeneral, ID_WIDESCREENHACK, wxT("Wide screen hack"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
|
||||||
// Default values
|
// Default values
|
||||||
m_NativeResolution->SetValue(g_Config.bNativeResolution);
|
m_NativeResolution->SetValue(g_Config.bNativeResolution);
|
||||||
m_2xResolution->SetValue(g_Config.b2xResolution);
|
m_2xResolution->SetValue(g_Config.b2xResolution);
|
||||||
if (g_Config.bKeepAR43) m_KeepAR->SetSelection(1);
|
m_KeepAR->SetSelection(g_Config.iAspectRatio);
|
||||||
else if (g_Config.bWidescreenHack) m_KeepAR->SetSelection(3);
|
|
||||||
else if (g_Config.bKeepAR169) m_KeepAR->SetSelection(2);
|
|
||||||
else m_KeepAR->SetSelection(0);
|
|
||||||
m_Crop->SetValue(g_Config.bCrop);
|
m_Crop->SetValue(g_Config.bCrop);
|
||||||
m_UseXFB->SetValue(g_Config.bUseXFB);
|
m_UseXFB->SetValue(g_Config.bUseXFB);
|
||||||
m_AutoScale->SetValue(g_Config.bAutoScale);
|
m_AutoScale->SetValue(g_Config.bAutoScale);
|
||||||
|
m_WidescreenHack->SetValue(g_Config.bWidescreenHack);
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
m_HideCursor = new wxCheckBox(m_PageGeneral, ID_HIDECURSOR, wxT("Hide mouse cursor"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
m_HideCursor = new wxCheckBox(m_PageGeneral, ID_HIDECURSOR, wxT("Hide mouse cursor"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
@ -348,6 +348,7 @@ void GFXConfigDialogOGL::CreateGUIControls()
|
||||||
sBasicAdvanced->Add(m_VSync, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
sBasicAdvanced->Add(m_VSync, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||||
sBasicAdvanced->Add(m_UseXFB, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL, 5);
|
sBasicAdvanced->Add(m_UseXFB, wxGBPosition(3, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||||
sBasicAdvanced->Add(m_AutoScale, wxGBPosition(4, 0), wxGBSpan(1, 2), wxALL, 5);
|
sBasicAdvanced->Add(m_AutoScale, wxGBPosition(4, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||||
|
sBasicAdvanced->Add(m_WidescreenHack, wxGBPosition(5, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||||
|
|
||||||
sbBasicAdvanced->Add(sBasicAdvanced);
|
sbBasicAdvanced->Add(sBasicAdvanced);
|
||||||
sGeneral->Add(sbBasicAdvanced, 0, wxEXPAND|wxALL, 5);
|
sGeneral->Add(sbBasicAdvanced, 0, wxEXPAND|wxALL, 5);
|
||||||
|
@ -598,29 +599,18 @@ void GFXConfigDialogOGL::GeneralSettingsChanged(wxCommandEvent& event)
|
||||||
case ID_AUTOSCALE:
|
case ID_AUTOSCALE:
|
||||||
g_Config.bAutoScale = m_AutoScale->IsChecked();
|
g_Config.bAutoScale = m_AutoScale->IsChecked();
|
||||||
break;
|
break;
|
||||||
case ID_KEEPAR:
|
case ID_ASPECT:
|
||||||
|
g_Config.iAspectRatio = m_KeepAR->GetSelection();
|
||||||
g_Config.bKeepAR169 = false;
|
break;
|
||||||
g_Config.bKeepAR43 = false;
|
case ID_WIDESCREENHACK:
|
||||||
g_Config.bWidescreenHack = false;
|
g_Config.bWidescreenHack = m_WidescreenHack->IsChecked();
|
||||||
|
|
||||||
if (m_KeepAR->GetSelection() == 1) // 4:3
|
|
||||||
g_Config.bKeepAR43 = true;
|
|
||||||
else if (m_KeepAR->GetSelection() == 2) // 16:9
|
|
||||||
g_Config.bKeepAR169 = true;
|
|
||||||
else if (m_KeepAR->GetSelection() == 3) { // WideScreen hack / 16:9
|
|
||||||
g_Config.bKeepAR169 = true;
|
|
||||||
g_Config.bWidescreenHack = true;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ID_CROP:
|
case ID_CROP:
|
||||||
g_Config.bCrop = m_Crop->IsChecked();
|
g_Config.bCrop = m_Crop->IsChecked();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_FORCEFILTERING:
|
case ID_FORCEFILTERING:
|
||||||
g_Config.bForceFiltering = m_ForceFiltering->IsChecked();
|
g_Config.bForceFiltering = m_ForceFiltering->IsChecked();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
case ID_HIDECURSOR:
|
case ID_HIDECURSOR:
|
||||||
g_Config.bHideCursor = m_HideCursor->IsChecked();
|
g_Config.bHideCursor = m_HideCursor->IsChecked();
|
||||||
|
@ -754,7 +744,7 @@ void GFXConfigDialogOGL::CloseWindow()
|
||||||
void GFXConfigDialogOGL::UpdateGUI()
|
void GFXConfigDialogOGL::UpdateGUI()
|
||||||
{
|
{
|
||||||
// This is only used together with the aspect ratio options
|
// This is only used together with the aspect ratio options
|
||||||
m_Crop->Enable(g_Config.bKeepAR43 || g_Config.bKeepAR169);
|
m_Crop->Enable(g_Config.iAspectRatio != ASPECT_STRETCH);
|
||||||
if (g_Config.bUseXFB)
|
if (g_Config.bUseXFB)
|
||||||
{
|
{
|
||||||
// XFB looks much better if the copy comes from native resolution.
|
// XFB looks much better if the copy comes from native resolution.
|
||||||
|
|
|
@ -159,9 +159,11 @@ class GFXConfigDialogOGL : public wxDialog
|
||||||
ID_VSYNC,
|
ID_VSYNC,
|
||||||
ID_RENDERTOMAINWINDOW,
|
ID_RENDERTOMAINWINDOW,
|
||||||
ID_NATIVERESOLUTION, ID_2X_RESOLUTION,
|
ID_NATIVERESOLUTION, ID_2X_RESOLUTION,
|
||||||
ID_KEEPAR, ID_CROP,
|
ID_ASPECT,
|
||||||
|
ID_CROP,
|
||||||
ID_USEXFB,
|
ID_USEXFB,
|
||||||
ID_AUTOSCALE,
|
ID_AUTOSCALE,
|
||||||
|
ID_WIDESCREENHACK,
|
||||||
|
|
||||||
ID_HIDECURSOR,
|
ID_HIDECURSOR,
|
||||||
ID_FSTEXT,
|
ID_FSTEXT,
|
||||||
|
|
|
@ -110,16 +110,8 @@ void OSDMenu(WPARAM wParam)
|
||||||
case '4':
|
case '4':
|
||||||
OSDChoice = 2;
|
OSDChoice = 2;
|
||||||
// Toggle aspect ratio
|
// Toggle aspect ratio
|
||||||
if (!(g_Config.bKeepAR43 || g_Config.bKeepAR169))
|
g_Config.iAspectRatio++;
|
||||||
{ g_Config.bKeepAR43 = true; g_Config.bCrop = false; }
|
g_Config.iAspectRatio &= 3;
|
||||||
else if (g_Config.bKeepAR43 && !g_Config.bCrop)
|
|
||||||
g_Config.bCrop = true;
|
|
||||||
else if (g_Config.bKeepAR43)
|
|
||||||
{ g_Config.bKeepAR43 = false; g_Config.bCrop = false; g_Config.bKeepAR169 = true; }
|
|
||||||
else if (g_Config.bKeepAR169 && !g_Config.bCrop)
|
|
||||||
g_Config.bCrop = true;
|
|
||||||
else
|
|
||||||
{ g_Config.bKeepAR43 = false; g_Config.bKeepAR169 = false; g_Config.bCrop = false; }
|
|
||||||
break;
|
break;
|
||||||
case '5':
|
case '5':
|
||||||
OSDChoice = 3;
|
OSDChoice = 3;
|
||||||
|
|
|
@ -1182,8 +1182,8 @@ void Renderer::DrawDebugText()
|
||||||
StringFromFormat("%i x %i (native)", OSDInternalW, OSDInternalH)
|
StringFromFormat("%i x %i (native)", OSDInternalW, OSDInternalH)
|
||||||
: StringFromFormat("%i x %i (2x)", OSDInternalW, OSDInternalH))
|
: StringFromFormat("%i x %i (2x)", OSDInternalW, OSDInternalH))
|
||||||
: StringFromFormat("%i x %i (custom)", W, H);
|
: StringFromFormat("%i x %i (custom)", W, H);
|
||||||
std::string OSDM21 =
|
std::string OSDM21 = "";
|
||||||
!(g_ActiveConfig.bKeepAR43 || g_ActiveConfig.bKeepAR169) ? "-": (g_ActiveConfig.bKeepAR43 ? "4:3" : "16:9");
|
// !(g_ActiveConfig.bKeepAR43 || g_ActiveConfig.bKeepAR169) ? "-": (g_ActiveConfig.bKeepAR43 ? "4:3" : "16:9");
|
||||||
std::string OSDM22 =
|
std::string OSDM22 =
|
||||||
g_ActiveConfig.bCrop ? " (crop)" : "";
|
g_ActiveConfig.bCrop ? " (crop)" : "";
|
||||||
std::string OSDM31 =
|
std::string OSDM31 =
|
||||||
|
@ -1256,9 +1256,17 @@ THREAD_RETURN TakeScreenshot(void *pArgs)
|
||||||
float FloatH = (float)threadStruct->H;
|
float FloatH = (float)threadStruct->H;
|
||||||
|
|
||||||
// Handle aspect ratio for the final ScrStrct to look exactly like what's on screen.
|
// Handle aspect ratio for the final ScrStrct to look exactly like what's on screen.
|
||||||
if (g_ActiveConfig.bKeepAR43 || g_ActiveConfig.bKeepAR169)
|
if (g_ActiveConfig.iAspectRatio != ASPECT_STRETCH)
|
||||||
{
|
{
|
||||||
float Ratio = (FloatW / FloatH) / (g_ActiveConfig.bKeepAR43 ? (4.0f / 3.0f) : (16.0f / 9.0f));
|
bool use16_9 = g_VideoInitialize.bAutoAspectIs16_9;
|
||||||
|
|
||||||
|
// Check for force-settings and override.
|
||||||
|
if (g_ActiveConfig.iAspectRatio == ASPECT_FORCE_16_9)
|
||||||
|
use16_9 = true;
|
||||||
|
else if (g_ActiveConfig.iAspectRatio == ASPECT_FORCE_4_3)
|
||||||
|
use16_9 = false;
|
||||||
|
|
||||||
|
float Ratio = (FloatW / FloatH) / (!use16_9 ? (4.0f / 3.0f) : (16.0f / 9.0f));
|
||||||
|
|
||||||
// If ratio > 1 the picture is too wide and we have to limit the width.
|
// If ratio > 1 the picture is too wide and we have to limit the width.
|
||||||
if (Ratio > 1)
|
if (Ratio > 1)
|
||||||
|
|
Loading…
Reference in New Issue