Create enum for scale quality

This commit is contained in:
Philip Goto 2017-10-30 21:44:10 +01:00 committed by Michał Janiszewski
parent b66df2d6db
commit 6377ac7bfb
4 changed files with 24 additions and 8 deletions

View File

@ -495,11 +495,11 @@ public:
if (gConfigGeneral.use_nn_at_integer_scales &&
gConfigGeneral.window_scale == std::floor(gConfigGeneral.window_scale))
{
_scaleQuality = 0;
_scaleQuality = SCALE_QUALITY_NN;
}
if (_scaleQuality == 3)
if (_scaleQuality == SCALE_QUALITY_SMOOTH_NN)
{
_scaleQuality = 1;
_scaleQuality = SCALE_QUALITY_LINEAR;
}
snprintf(scaleQualityBuffer, sizeof(scaleQualityBuffer), "%u", _scaleQuality);
SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, scaleQualityBuffer);

View File

@ -105,11 +105,11 @@ public:
if (gConfigGeneral.use_nn_at_integer_scales &&
gConfigGeneral.window_scale == std::floor(gConfigGeneral.window_scale))
{
scaleQuality = 0;
scaleQuality = SCALE_QUALITY_NN;
}
if (scaleQuality == 3)
if (scaleQuality == SCALE_QUALITY_SMOOTH_NN)
{
scaleQuality = 1;
scaleQuality = SCALE_QUALITY_LINEAR;
smoothNN = true;
}
else

View File

@ -99,6 +99,14 @@ namespace Config
ConfigEnumEntry<sint32>("CELSIUS", TEMPERATURE_FORMAT_C),
ConfigEnumEntry<sint32>("FAHRENHEIT", TEMPERATURE_FORMAT_F),
});
static auto Enum_ScaleQuality = ConfigEnum<sint32>(
{
ConfigEnumEntry<sint32>("NEAREST_NEIGHBOR", SCALE_QUALITY_NN),
ConfigEnumEntry<sint32>("LINEAR", SCALE_QUALITY_LINEAR),
ConfigEnumEntry<sint32>("ANISOTROPIC_FILTERING", SCALE_QUALITY_ANISOTROPIC),
ConfigEnumEntry<sint32>("SMOOTH_NEAREST_NEIGHBOUR", SCALE_QUALITY_SMOOTH_NN),
});
/**
* Config enum wrapping LanguagesDescriptors.
@ -184,7 +192,7 @@ 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_get_default_scale());
model->scale_quality = reader->GetSint32("scale_quality", 1);
model->scale_quality = reader->GetEnum<sint32>("scale_quality", SCALE_QUALITY_SMOOTH_NN, Enum_ScaleQuality);
model->use_nn_at_integer_scales = reader->GetBoolean("use_nn_at_integer_scales", true);
model->show_fps = reader->GetBoolean("show_fps", false);
model->trap_cursor = reader->GetBoolean("trap_cursor", false);
@ -254,7 +262,7 @@ 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->WriteSint32("scale_quality", model->scale_quality);
writer->WriteEnum<sint32>("scale_quality", model->scale_quality, Enum_ScaleQuality);
writer->WriteBoolean("use_nn_at_integer_scales", model->use_nn_at_integer_scales);
writer->WriteBoolean("show_fps", model->show_fps);
writer->WriteBoolean("trap_cursor", model->trap_cursor);

View File

@ -209,6 +209,14 @@ enum TEMPERATURE_FORMAT
TEMPERATURE_FORMAT_F
};
enum SCALE_QUALITY
{
SCALE_QUALITY_NN,
SCALE_QUALITY_LINEAR,
SCALE_QUALITY_ANISOTROPIC,
SCALE_QUALITY_SMOOTH_NN
};
enum MEASUREMENT_FORMAT
{
MEASUREMENT_FORMAT_IMPERIAL,