Settings: Add 1:1 pixel aspect ratio

This commit is contained in:
Albert Liu 2020-07-12 17:07:01 -07:00
parent 9e316e4502
commit 91f51c2833
3 changed files with 8 additions and 4 deletions

View File

@ -61,6 +61,7 @@ void HostDisplay::CalculateDrawRect(s32 window_width, s32 window_height, s32* ou
s32* out_height, s32* out_left_padding, s32* out_top_padding, float* out_scale, s32* out_height, s32* out_left_padding, s32* out_top_padding, float* out_scale,
float* out_y_scale, bool apply_aspect_ratio) const float* out_y_scale, bool apply_aspect_ratio) const
{ {
apply_aspect_ratio = (m_display_aspect_ratio > 0) ? apply_aspect_ratio : false;
const float y_scale = const float y_scale =
apply_aspect_ratio ? apply_aspect_ratio ?
((static_cast<float>(m_display_width) / static_cast<float>(m_display_height)) / m_display_aspect_ratio) : ((static_cast<float>(m_display_width) / static_cast<float>(m_display_height)) / m_display_aspect_ratio) :
@ -263,6 +264,8 @@ bool HostDisplay::WriteDisplayTextureToFile(const char* filename, bool full_reso
if (!m_display_texture_handle) if (!m_display_texture_handle)
return false; return false;
apply_aspect_ratio = (m_display_aspect_ratio > 0) ? apply_aspect_ratio : false;
s32 resize_width = 0; s32 resize_width = 0;
s32 resize_height = 0; s32 resize_height = 0;
if (apply_aspect_ratio && full_resolution) if (apply_aspect_ratio && full_resolution)

View File

@ -437,10 +437,10 @@ const char* Settings::GetDisplayCropModeDisplayName(DisplayCropMode crop_mode)
return s_display_crop_mode_display_names[static_cast<int>(crop_mode)]; return s_display_crop_mode_display_names[static_cast<int>(crop_mode)];
} }
static std::array<const char*, 5> s_display_aspect_ratio_names = static std::array<const char*, 6> s_display_aspect_ratio_names =
{{"4:3", "16:9", "8:7", "2:1 (VRAM 1:1)", "1:1"}}; {{"4:3", "16:9", "8:7", "2:1 (VRAM 1:1)", "1:1", "PAR 1:1"}};
static constexpr std::array<float, 5> s_display_aspect_ratio_values = static constexpr std::array<float, 6> s_display_aspect_ratio_values =
{{4.0f / 3.0f, 16.0f / 9.0f, 8.0f / 7.0f, 2.0f / 1.0f, 1.0f}}; {{4.0f / 3.0f, 16.0f / 9.0f, 8.0f / 7.0f, 2.0f / 1.0f, 1.0f, -1.0f}};
std::optional<DisplayAspectRatio> Settings::ParseDisplayAspectRatio(const char* str) std::optional<DisplayAspectRatio> Settings::ParseDisplayAspectRatio(const char* str)
{ {

View File

@ -74,6 +74,7 @@ enum class DisplayAspectRatio : u8
R8_7, R8_7,
R2_1, R2_1,
R1_1, R1_1,
PAR1_1,
Count Count
}; };