diff --git a/src/gui/gui.h b/src/gui/gui.h index 5cb07779b..ef06e3ad7 100644 --- a/src/gui/gui.h +++ b/src/gui/gui.h @@ -1836,6 +1836,7 @@ class FurnaceGUI { int fontBitmap; int fontAutoHint; int fontAntiAlias; + int fontOversample; int selectAssetOnLoad; int basicColors; int playbackTime; @@ -2071,6 +2072,7 @@ class FurnaceGUI { fontBitmap(0), fontAutoHint(1), fontAntiAlias(1), + fontOversample(2), selectAssetOnLoad(1), basicColors(1), playbackTime(1), diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 9a2818f1b..bb2173d6f 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -2746,6 +2746,33 @@ void FurnaceGUI::drawSettings() { ImGui::Unindent(); } + ImGui::Text("Oversample"); + + ImGui::SameLine(); + if (ImGui::RadioButton("1×##fos1",settings.fontOversample==1)) { + settings.fontOversample=1; + settingsChanged=true; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("saves video memory. reduces font rendering quality.\nuse for pixel/bitmap fonts."); + } + ImGui::SameLine(); + if (ImGui::RadioButton("2×##fos2",settings.fontOversample==2)) { + settings.fontOversample=2; + settingsChanged=true; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("default."); + } + ImGui::SameLine(); + if (ImGui::RadioButton("3×##fos3",settings.fontOversample==3)) { + settings.fontOversample=3; + settingsChanged=true; + } + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("slightly better font rendering quality.\nuses more video memory."); + } + bool loadFallbackB=settings.loadFallback; if (ImGui::Checkbox("Load fallback font",&loadFallbackB)) { settings.loadFallback=loadFallbackB; @@ -4194,6 +4221,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { settings.fontBitmap=conf.getInt("fontBitmap",0); settings.fontAutoHint=conf.getInt("fontAutoHint",1); settings.fontAntiAlias=conf.getInt("fontAntiAlias",1); + settings.fontOversample=conf.getInt("fontOversample",2); } if (groups&GUI_SETTINGS_APPEARANCE) { @@ -4542,6 +4570,7 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { clampSetting(settings.fontBitmap,0,1); clampSetting(settings.fontAutoHint,0,2); clampSetting(settings.fontAntiAlias,0,1); + clampSetting(settings.fontOversample,0,2); clampSetting(settings.selectAssetOnLoad,0,1); clampSetting(settings.basicColors,0,1); clampSetting(settings.playbackTime,0,1); @@ -4732,6 +4761,7 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) { conf.set("fontBitmap",settings.fontBitmap); conf.set("fontAutoHint",settings.fontAutoHint); conf.set("fontAntiAlias",settings.fontAntiAlias); + conf.set("fontOversample",settings.fontOversample); } // appearance @@ -5692,7 +5722,7 @@ void FurnaceGUI::applyUISettings(bool updateFonts) { ImFontConfig fontConfH; fontConf.OversampleV=1; - fontConf.OversampleH=2; + fontConf.OversampleH=settings.fontOversample; fontConfP.OversampleV=1; fontConfP.OversampleH=2; fontConfB.OversampleV=1;