Last week I continued working on the Renderer Appearance editor and the UI framework in general.
The Appearance editor now stores setting profiles persistently and separately from games. This means that all created profiles are available in all games; there are no game-specific profiles.
In practice, the profiles are currently written into a file called "configs/renderer.dei" in your runtime folder. There will also be a way to read profiles from resource packs in use.
Note that you can continue to change cvar values manually in the console. This is equivalent to editing the current profile in the editor, and the changes will be saved to your currently selected appearance profile (by default called "Custom"). In other words, the editor is essentially a GUI for a group of console variables.
An interactive Doomsday Script
mode was added to the console command line widget. You can toggle between regular console command mode and Doomsday Script mode at any time using the console options menu. However, at this stage the usefulness of the new mode is a bit limited due to the small set of available script bindings and the lack of autocompletion. If you're interested in playing around with it, you could for instance try the following simple statements:
$ import Version
$ print Version
$ for i in [0,1,2]: print i
$ print locals()
Note that the console menu button displays a $
when the script mode is active.
I also continued fine-tuning the UI style related to dialog button placement, icons, and progress indicator behavior. In the screenshot you can see how the auxiliary buttons of the dialog are now grouped to the opposite edge (e.g., "Reset to Defaults"), and that the configuration menu has an icon for each item:
As my last big change for 1.12, I revised how text is preprocessed for drawing. Recently I added a new class called TextDrawable that handles all the details of text preprocessing and also supports background tasks for lengthy operations so that the UI is not blocked if a long piece of text needs to be prepared. TextDrawable is now in use by LabelWidget, and is applied in several places of the UI — basically everything that pairs an image and some text uses a LabelWidget.
The 1.12 candidate phase begins this week (38). We are planning to make the release in the end of the month. I'm going to start the candidate work by profiling all the new/revised code to see if we can apply further optimizations.