mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-17 08:05:46 -04:00
GPU: Add display line offset game setting
Use when games need additional cropping.
This commit is contained in:
@ -545,15 +545,15 @@ void GPU::UpdateCRTCDisplayParameters()
|
||||
case DisplayCropMode::None:
|
||||
cs.horizontal_active_start = static_cast<u16>(std::max<int>(0, 487 + g_settings.display_active_start_offset));
|
||||
cs.horizontal_active_end = static_cast<u16>(std::max<int>(0, 3282 + g_settings.display_active_end_offset));
|
||||
cs.vertical_active_start = 20;
|
||||
cs.vertical_active_end = 308;
|
||||
cs.vertical_active_start = static_cast<u16>(std::max<int>(0, 20 + g_settings.display_line_start_offset));
|
||||
cs.vertical_active_end = static_cast<u16>(std::max<int>(0, 308 + g_settings.display_line_end_offset));
|
||||
break;
|
||||
|
||||
case DisplayCropMode::Overscan:
|
||||
cs.horizontal_active_start = static_cast<u16>(std::max<int>(0, 628 + g_settings.display_active_start_offset));
|
||||
cs.horizontal_active_end = static_cast<u16>(std::max<int>(0, 3188 + g_settings.display_active_end_offset));
|
||||
cs.vertical_active_start = 30;
|
||||
cs.vertical_active_end = 298;
|
||||
cs.vertical_active_start = static_cast<u16>(std::max<int>(0, 30 + g_settings.display_line_start_offset));
|
||||
cs.vertical_active_end = static_cast<u16>(std::max<int>(0, 298 + g_settings.display_line_end_offset));
|
||||
break;
|
||||
|
||||
case DisplayCropMode::Borders:
|
||||
@ -572,15 +572,15 @@ void GPU::UpdateCRTCDisplayParameters()
|
||||
case DisplayCropMode::None:
|
||||
cs.horizontal_active_start = static_cast<u16>(std::max<int>(0, 488 + g_settings.display_active_start_offset));
|
||||
cs.horizontal_active_end = static_cast<u16>(std::max<int>(0, 3288 + g_settings.display_active_end_offset));
|
||||
cs.vertical_active_start = 16;
|
||||
cs.vertical_active_end = 256;
|
||||
cs.vertical_active_start = static_cast<u16>(std::max<int>(0, 16 + g_settings.display_line_start_offset));
|
||||
cs.vertical_active_end = static_cast<u16>(std::max<int>(0, 256 + g_settings.display_line_end_offset));
|
||||
break;
|
||||
|
||||
case DisplayCropMode::Overscan:
|
||||
cs.horizontal_active_start = static_cast<u16>(std::max<int>(0, 608 + g_settings.display_active_start_offset));
|
||||
cs.horizontal_active_end = static_cast<u16>(std::max<int>(0, 3168 + g_settings.display_active_end_offset));
|
||||
cs.vertical_active_start = 24;
|
||||
cs.vertical_active_end = 248;
|
||||
cs.vertical_active_start = static_cast<u16>(std::max<int>(0, 24 + g_settings.display_line_start_offset));
|
||||
cs.vertical_active_end = static_cast<u16>(std::max<int>(0, 248 + g_settings.display_line_end_offset));
|
||||
break;
|
||||
|
||||
case DisplayCropMode::Borders:
|
||||
|
@ -451,6 +451,8 @@ void HostInterface::SetDefaultSettings(SettingsInterface& si)
|
||||
si.SetStringValue("Display", "CropMode", Settings::GetDisplayCropModeName(Settings::DEFAULT_DISPLAY_CROP_MODE));
|
||||
si.SetIntValue("Display", "ActiveStartOffset", 0);
|
||||
si.SetIntValue("Display", "ActiveEndOffset", 0);
|
||||
si.SetIntValue("Display", "LineStartOffset", 0);
|
||||
si.SetIntValue("Display", "LineEndOffset", 0);
|
||||
si.SetStringValue("Display", "AspectRatio",
|
||||
Settings::GetDisplayAspectRatioName(Settings::DEFAULT_DISPLAY_ASPECT_RATIO));
|
||||
si.SetBoolValue("Display", "Force4_3For24Bit", false);
|
||||
@ -652,7 +654,9 @@ void HostInterface::CheckForSettingsChanges(const Settings& old_settings)
|
||||
g_settings.display_aspect_ratio != old_settings.display_aspect_ratio ||
|
||||
g_settings.gpu_pgxp_enable != old_settings.gpu_pgxp_enable ||
|
||||
g_settings.display_active_start_offset != old_settings.display_active_start_offset ||
|
||||
g_settings.display_active_end_offset != old_settings.display_active_end_offset)
|
||||
g_settings.display_active_end_offset != old_settings.display_active_end_offset ||
|
||||
g_settings.display_line_start_offset != old_settings.display_line_start_offset ||
|
||||
g_settings.display_line_end_offset != old_settings.display_line_end_offset)
|
||||
{
|
||||
g_gpu->UpdateSettings();
|
||||
}
|
||||
|
@ -171,6 +171,8 @@ void Settings::Load(SettingsInterface& si)
|
||||
display_force_4_3_for_24bit = si.GetBoolValue("Display", "Force4_3For24Bit", false);
|
||||
display_active_start_offset = static_cast<s16>(si.GetIntValue("Display", "ActiveStartOffset", 0));
|
||||
display_active_end_offset = static_cast<s16>(si.GetIntValue("Display", "ActiveEndOffset", 0));
|
||||
display_line_start_offset = static_cast<s8>(si.GetIntValue("Display", "LineStartOffset", 0));
|
||||
display_line_end_offset = static_cast<s8>(si.GetIntValue("Display", "LineEndOffset", 0));
|
||||
display_linear_filtering = si.GetBoolValue("Display", "LinearFiltering", true);
|
||||
display_integer_scaling = si.GetBoolValue("Display", "IntegerScaling", false);
|
||||
display_post_processing = si.GetBoolValue("Display", "PostProcessing", false);
|
||||
@ -296,6 +298,8 @@ void Settings::Save(SettingsInterface& si) const
|
||||
si.SetStringValue("Display", "CropMode", GetDisplayCropModeName(display_crop_mode));
|
||||
si.SetIntValue("Display", "ActiveStartOffset", display_active_start_offset);
|
||||
si.SetIntValue("Display", "ActiveEndOffset", display_active_end_offset);
|
||||
si.SetIntValue("Display", "LineStartOffset", display_line_start_offset);
|
||||
si.SetIntValue("Display", "LineEndOffset", display_line_end_offset);
|
||||
si.SetBoolValue("Display", "Force4_3For24Bit", display_force_4_3_for_24bit);
|
||||
si.SetStringValue("Display", "AspectRatio", GetDisplayAspectRatioName(display_aspect_ratio));
|
||||
si.SetBoolValue("Display", "LinearFiltering", display_linear_filtering);
|
||||
|
@ -113,6 +113,12 @@ struct Settings
|
||||
DisplayAspectRatio display_aspect_ratio = DisplayAspectRatio::R4_3;
|
||||
s16 display_active_start_offset = 0;
|
||||
s16 display_active_end_offset = 0;
|
||||
s8 display_line_start_offset = 0;
|
||||
s8 display_line_end_offset = 0;
|
||||
s8 display_crop_left = 0;
|
||||
s8 display_crop_right = 0;
|
||||
s8 display_crop_top = 0;
|
||||
s8 display_crop_bottom = 0;
|
||||
bool display_force_4_3_for_24bit = false;
|
||||
bool gpu_24bit_chroma_smoothing = false;
|
||||
bool display_linear_filtering = true;
|
||||
|
Reference in New Issue
Block a user