mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #16498 from Gymnasiast/remove/scaling-dropdown
Always use SNN for non-integer scaling
This commit is contained in:
commit
28b10f6787
|
@ -2959,8 +2959,6 @@ STR_5723 :Heavy Rain
|
|||
STR_5724 :Thunderstorm
|
||||
STR_5725 :{BLACK}Change weather to:
|
||||
STR_5726 :Sets the current weather in the park
|
||||
STR_5727 :Scaling quality:
|
||||
STR_5731 :Linear
|
||||
# tooltip for tab in options window
|
||||
STR_5734 :Rendering
|
||||
STR_5735 :Network Status
|
||||
|
@ -3047,7 +3045,6 @@ STR_5814 :{WINDOW_COLOUR_1}“{STRING}”
|
|||
#tooltips
|
||||
STR_5815 :Display FPS counter in-game
|
||||
STR_5816 :Sets ratio to scale the game by.{NEWLINE}Most useful when playing in{NEWLINE}high resolutions
|
||||
STR_5817 :Sets UI scaling type. Requires hardware display to be used.{NEWLINE}Linear scaling is smooth, but blurry. Smooth Nearest Neighbour scaling is sharp, but can cause a minor performance hit.
|
||||
STR_5819 :[Requires hardware display]{NEWLINE}Pause the game if Steam{NEWLINE}in-game overlay is opened
|
||||
STR_5820 :Minimise the game if focus is{NEWLINE}lost while in fullscreen mode
|
||||
STR_5822 :Cycle between day and night.{NEWLINE}Full cycle takes one in-game month
|
||||
|
@ -3376,7 +3373,6 @@ STR_6155 :Neither KDialog nor Zenity are installed. Please install one, or co
|
|||
STR_6156 :Name is reserved
|
||||
STR_6157 :Console
|
||||
STR_6158 :Failed to load this file…{NEWLINE}Incompatible RCTC version: {COMMA16}
|
||||
STR_6159 :Smooth Nearest Neighbour
|
||||
STR_6160 :{WINDOW_COLOUR_2}Available vehicles: {BLACK}{STRING}
|
||||
STR_6161 :Gridlines display toggle
|
||||
STR_6162 :Spinning Wild Mouse
|
||||
|
|
|
@ -597,7 +597,7 @@ public:
|
|||
void TriggerResize() override
|
||||
{
|
||||
char scaleQualityBuffer[4];
|
||||
_scaleQuality = gConfigGeneral.scale_quality;
|
||||
_scaleQuality = ScaleQuality::SmoothNearestNeighbour;
|
||||
if (gConfigGeneral.window_scale == std::floor(gConfigGeneral.window_scale))
|
||||
{
|
||||
_scaleQuality = ScaleQuality::NearestNeighbour;
|
||||
|
|
|
@ -84,8 +84,6 @@ enum WindowOptionsWidgetIdx {
|
|||
WIDX_SCALE_DOWN,
|
||||
WIDX_DRAWING_ENGINE,
|
||||
WIDX_DRAWING_ENGINE_DROPDOWN,
|
||||
WIDX_SCALE_QUALITY,
|
||||
WIDX_SCALE_QUALITY_DROPDOWN,
|
||||
WIDX_STEAM_OVERLAY_PAUSE,
|
||||
WIDX_UNCAP_FPS_CHECKBOX,
|
||||
WIDX_SHOW_FPS_CHECKBOX,
|
||||
|
@ -219,9 +217,7 @@ static rct_widget window_options_display_widgets[] = {
|
|||
MakeSpinnerWidgets({155, 98}, {145, 12}, WindowWidgetType::Spinner, WindowColour::Secondary, STR_NONE, STR_WINDOW_SCALE_TIP ), // Scale spinner (3 widgets)
|
||||
MakeWidget ({155, 113}, {145, 12}, WindowWidgetType::DropdownMenu, WindowColour::Secondary ),
|
||||
MakeWidget ({288, 114}, { 11, 10}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH, STR_DRAWING_ENGINE_TIP ),
|
||||
MakeWidget ({155, 128}, {145, 12}, WindowWidgetType::DropdownMenu, WindowColour::Secondary ), // Scaling quality hint
|
||||
MakeWidget ({288, 129}, { 11, 10}, WindowWidgetType::Button, WindowColour::Secondary, STR_DROPDOWN_GLYPH, STR_SCALE_QUALITY_TIP ),
|
||||
MakeWidget ({ 25, 144}, {266, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_STEAM_OVERLAY_PAUSE, STR_STEAM_OVERLAY_PAUSE_TIP ), // Pause on steam overlay
|
||||
MakeWidget ({ 11, 144}, {280, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_STEAM_OVERLAY_PAUSE, STR_STEAM_OVERLAY_PAUSE_TIP ), // Pause on steam overlay
|
||||
MakeWidget ({ 11, 161}, {143, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_UNCAP_FPS, STR_UNCAP_FPS_TIP ), // Uncap fps
|
||||
MakeWidget ({155, 161}, {136, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_SHOW_FPS, STR_SHOW_FPS_TIP ), // Show fps
|
||||
MakeWidget ({155, 176}, {136, 12}, WindowWidgetType::Checkbox, WindowColour::Secondary, STR_MULTITHREADING, STR_MULTITHREADING_TIP ), // Multithreading
|
||||
|
@ -392,11 +388,6 @@ static constexpr const rct_string_id window_options_title_music_names[] = {
|
|||
STR_OPTIONS_MUSIC_VALUE_RANDOM,
|
||||
};
|
||||
|
||||
static constexpr const rct_string_id window_options_scale_quality_names[] = {
|
||||
STR_SCALING_QUALITY_LINEAR,
|
||||
STR_SCALING_QUALITY_SMOOTH_NN,
|
||||
};
|
||||
|
||||
static constexpr const rct_string_id window_options_fullscreen_mode_names[] = {
|
||||
STR_OPTIONS_DISPLAY_WINDOWED,
|
||||
STR_OPTIONS_DISPLAY_FULLSCREEN,
|
||||
|
@ -453,9 +444,7 @@ static uint64_t window_options_page_enabled_widgets[] = {
|
|||
(1ULL << WIDX_DISABLE_SCREENSAVER_LOCK) |
|
||||
(1ULL << WIDX_SCALE) |
|
||||
(1ULL << WIDX_SCALE_UP) |
|
||||
(1ULL << WIDX_SCALE_DOWN) |
|
||||
(1ULL << WIDX_SCALE_QUALITY) |
|
||||
(1ULL << WIDX_SCALE_QUALITY_DROPDOWN),
|
||||
(1ULL << WIDX_SCALE_DOWN),
|
||||
|
||||
MAIN_OPTIONS_ENABLED_WIDGETS |
|
||||
(1ULL << WIDX_TILE_SMOOTHING_CHECKBOX) |
|
||||
|
@ -935,17 +924,6 @@ private:
|
|||
context_trigger_resize();
|
||||
context_update_cursor_scale();
|
||||
break;
|
||||
case WIDX_SCALE_QUALITY_DROPDOWN:
|
||||
gDropdownItemsFormat[0] = STR_DROPDOWN_MENU_LABEL;
|
||||
gDropdownItemsFormat[1] = STR_DROPDOWN_MENU_LABEL;
|
||||
gDropdownItemsArgs[0] = STR_SCALING_QUALITY_LINEAR;
|
||||
gDropdownItemsArgs[1] = STR_SCALING_QUALITY_SMOOTH_NN;
|
||||
|
||||
this->ShowDropdown(widget, 2);
|
||||
|
||||
// Note: offset by one to compensate for lack of NN option.
|
||||
Dropdown::SetChecked(static_cast<int32_t>(gConfigGeneral.scale_quality) - 1, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -998,16 +976,6 @@ private:
|
|||
this->Invalidate();
|
||||
}
|
||||
break;
|
||||
case WIDX_SCALE_QUALITY_DROPDOWN:
|
||||
// Note: offset by one to compensate for lack of NN option.
|
||||
if (static_cast<ScaleQuality>(dropdownIndex + 1) != gConfigGeneral.scale_quality)
|
||||
{
|
||||
gConfigGeneral.scale_quality = static_cast<ScaleQuality>(dropdownIndex + 1);
|
||||
config_save_default();
|
||||
gfx_invalidate_screen();
|
||||
context_trigger_resize();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1043,20 +1011,6 @@ private:
|
|||
this->disabled_widgets &= ~(1ULL << WIDX_STEAM_OVERLAY_PAUSE);
|
||||
}
|
||||
|
||||
// Disable scaling quality dropdown when using software rendering or when using an integer scalar.
|
||||
// In the latter case, nearest neighbour rendering will be used to scale.
|
||||
if (gConfigGeneral.drawing_engine == DrawingEngine::Software
|
||||
|| gConfigGeneral.window_scale == std::floor(gConfigGeneral.window_scale))
|
||||
{
|
||||
this->disabled_widgets |= (1ULL << WIDX_SCALE_QUALITY);
|
||||
this->disabled_widgets |= (1ULL << WIDX_SCALE_QUALITY_DROPDOWN);
|
||||
}
|
||||
else
|
||||
{
|
||||
this->disabled_widgets &= ~(1ULL << WIDX_SCALE_QUALITY);
|
||||
this->disabled_widgets &= ~(1ULL << WIDX_SCALE_QUALITY_DROPDOWN);
|
||||
}
|
||||
|
||||
// Disable changing VSync for Software engine, as we can't control its use of VSync
|
||||
if (gConfigGeneral.drawing_engine == DrawingEngine::Software)
|
||||
{
|
||||
|
@ -1078,8 +1032,6 @@ private:
|
|||
// Dropdown captions for straightforward strings.
|
||||
this->widgets[WIDX_FULLSCREEN].text = window_options_fullscreen_mode_names[gConfigGeneral.fullscreen_mode];
|
||||
this->widgets[WIDX_DRAWING_ENGINE].text = DrawingEngineStringIds[EnumValue(gConfigGeneral.drawing_engine)];
|
||||
this->widgets[WIDX_SCALE_QUALITY].text = window_options_scale_quality_names
|
||||
[static_cast<int32_t>(gConfigGeneral.scale_quality) - 1];
|
||||
|
||||
CommonPrepareDrawAfter();
|
||||
}
|
||||
|
@ -1114,16 +1066,6 @@ private:
|
|||
DrawTextBasic(
|
||||
dpi, this->windowPos + ScreenCoordsXY{ this->widgets[WIDX_SCALE].left + 1, this->widgets[WIDX_SCALE].top + 1 },
|
||||
STR_WINDOW_OBJECTIVE_VALUE_RATING, ft, { this->colours[1] });
|
||||
|
||||
colour = this->colours[1];
|
||||
if (gConfigGeneral.drawing_engine == DrawingEngine::Software
|
||||
|| gConfigGeneral.window_scale == std::floor(gConfigGeneral.window_scale))
|
||||
{
|
||||
colour |= COLOUR_FLAG_INSET;
|
||||
}
|
||||
DrawTextBasic(
|
||||
dpi, this->windowPos + ScreenCoordsXY{ 25, this->widgets[WIDX_SCALE_QUALITY].top + 1 }, STR_SCALING_QUALITY, {},
|
||||
{ colour });
|
||||
}
|
||||
#pragma endregion
|
||||
|
||||
|
|
|
@ -94,12 +94,6 @@ namespace Config
|
|||
ConfigEnumEntry<TemperatureUnit>("FAHRENHEIT", TemperatureUnit::Fahrenheit),
|
||||
});
|
||||
|
||||
static const auto Enum_ScaleQuality = ConfigEnum<ScaleQuality>({
|
||||
ConfigEnumEntry<ScaleQuality>("NEAREST_NEIGHBOUR", ScaleQuality::NearestNeighbour),
|
||||
ConfigEnumEntry<ScaleQuality>("LINEAR", ScaleQuality::Linear),
|
||||
ConfigEnumEntry<ScaleQuality>("SMOOTH_NEAREST_NEIGHBOUR", ScaleQuality::SmoothNearestNeighbour),
|
||||
});
|
||||
|
||||
static const auto Enum_Sort = ConfigEnum<Sort>({
|
||||
ConfigEnumEntry<Sort>("NAME_ASCENDING", Sort::NameAscending),
|
||||
ConfigEnumEntry<Sort>("NAME_DESCENDING", Sort::NameDescending),
|
||||
|
@ -203,8 +197,6 @@ namespace Config
|
|||
model->allow_loading_with_incorrect_checksum = reader->GetBoolean("allow_loading_with_incorrect_checksum", true);
|
||||
model->steam_overlay_pause = reader->GetBoolean("steam_overlay_pause", true);
|
||||
model->window_scale = reader->GetFloat("window_scale", Platform::GetDefaultScale());
|
||||
model->scale_quality = reader->GetEnum<ScaleQuality>(
|
||||
"scale_quality", ScaleQuality::SmoothNearestNeighbour, Enum_ScaleQuality);
|
||||
model->show_fps = reader->GetBoolean("show_fps", false);
|
||||
model->multithreading = reader->GetBoolean("multi_threading", false);
|
||||
model->trap_cursor = reader->GetBoolean("trap_cursor", false);
|
||||
|
@ -281,7 +273,6 @@ namespace Config
|
|||
writer->WriteBoolean("allow_loading_with_incorrect_checksum", model->allow_loading_with_incorrect_checksum);
|
||||
writer->WriteBoolean("steam_overlay_pause", model->steam_overlay_pause);
|
||||
writer->WriteFloat("window_scale", model->window_scale);
|
||||
writer->WriteEnum<ScaleQuality>("scale_quality", model->scale_quality, Enum_ScaleQuality);
|
||||
writer->WriteBoolean("show_fps", model->show_fps);
|
||||
writer->WriteBoolean("multi_threading", model->multithreading);
|
||||
writer->WriteBoolean("trap_cursor", model->trap_cursor);
|
||||
|
|
|
@ -37,7 +37,6 @@ struct GeneralConfiguration
|
|||
int32_t fullscreen_height;
|
||||
float window_scale;
|
||||
DrawingEngine drawing_engine;
|
||||
ScaleQuality scale_quality;
|
||||
bool uncap_fps;
|
||||
bool use_vsync;
|
||||
bool show_fps;
|
||||
|
|
|
@ -3090,8 +3090,6 @@ enum : uint16_t
|
|||
STR_THUNDERSTORM = STR_SUNNY + 5,
|
||||
STR_CHANGE_WEATHER = 5725,
|
||||
STR_CHANGE_WEATHER_TOOLTIP = 5726,
|
||||
STR_SCALING_QUALITY = 5727,
|
||||
STR_SCALING_QUALITY_LINEAR = 5731,
|
||||
STR_OPTIONS_RENDERING_TIP = 5734,
|
||||
STR_THEMES_WINDOW_NETWORK_STATUS = 5735,
|
||||
STR_THEMES_WINDOW_PLAYER = 5736,
|
||||
|
@ -3175,7 +3173,6 @@ enum : uint16_t
|
|||
STR_TRACK_PREVIEW_NAME_FORMAT = 5814,
|
||||
STR_SHOW_FPS_TIP = 5815,
|
||||
STR_WINDOW_SCALE_TIP = 5816,
|
||||
STR_SCALE_QUALITY_TIP = 5817,
|
||||
STR_STEAM_OVERLAY_PAUSE_TIP = 5819,
|
||||
STR_MINIMISE_FULLSCREEN_ON_FOCUS_LOSS_TIP = 5820,
|
||||
STR_CYCLE_DAY_NIGHT_TIP = 5822,
|
||||
|
@ -3541,8 +3538,6 @@ enum : uint16_t
|
|||
|
||||
STR_FAILED_TO_LOAD_IMCOMPATIBLE_RCTC_FLAG = 6158,
|
||||
|
||||
STR_SCALING_QUALITY_SMOOTH_NN = 6159,
|
||||
|
||||
STR_AVAILABLE_VEHICLES = 6160,
|
||||
|
||||
STR_SHORTCUT_GRIDLINES_DISPLAY_TOGGLE = 6161,
|
||||
|
|
Loading…
Reference in New Issue