llde/TESReloaded10

reimplement a config menu using imgui

Opened this issue · 1 comments

Using this library, it would become easy to make a flexible ui with sliders etc for an easier experience adjusting settings:

https://github.com/ocornut/imgui

Ex of implementation: special K https://github.com/SpecialKO/SpecialK

menu2

It would work like this: we provide a default list of settings values, and so does each effect. Effects will get validated against a list of minimal default values, most likely "enabled" and not much more.

Then from those list we generate a preset file in a presets folder (or several files for each effects? Not sure if necessary), and a general settings file for the current active preset. Preset manager talks to the UI to create new ones, swap the active one, and set a few presets for interiors/exterior day night, possibly world spaces/weathers. To these predefined slots which get called automatically based on gamestate, we add as many presets as people want, to be able to test things out, have screenshot presets etc. Automated presets can use transition times during which values are faded to the new value. Settings provider doesn't have to know any of this, and can be accessed by the shader manager at any time to give the current active settings

In case of missing values in preset, we fall back on the provided default. This lets us ensure retrocompatibility and a flexible settings system.

Toml seems like a nice compromise between ini format which is too barbones and XML which is pretty heavy for storing presets...

Also in the UI we can easily pull from defaults to reset the values, and copy values from one preset to another for trying stuff out or sharing

imgui