ui: clarify render-vs-output resolution in the settings menu
This commit is contained in:
parent
0084c84542
commit
855ed66c82
1 changed files with 25 additions and 6 deletions
|
|
@ -1074,12 +1074,31 @@ void SimpleSettingsDialog::BuildRows(std::vector<RowSpec>& rows, int category) {
|
||||||
rows.push_back(std::move(row));
|
rows.push_back(std::move(row));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
|
// Read-only: where frames are actually displayed, so the difference
|
||||||
|
// from Render Scale (the internal render size) is visible in the
|
||||||
|
// menu. Single option = the steppers grey out on their own; the row
|
||||||
|
// stays focusable so its description shows.
|
||||||
RowSpec row;
|
RowSpec row;
|
||||||
row.kind = RowSpec::kEnum;
|
row.kind = RowSpec::kEnum;
|
||||||
row.label = "Resolution Scale";
|
row.label = "Output Resolution";
|
||||||
row.desc =
|
row.desc =
|
||||||
"Render resolution as a multiple of the game's native 720p. Higher values are "
|
"The resolution frames are displayed at (informational): your "
|
||||||
"sharper but cost GPU time.";
|
"monitor's native resolution in fullscreen, the window size when "
|
||||||
|
"windowed. Rendering happens at the Render Scale setting and is "
|
||||||
|
"scaled to this.";
|
||||||
|
const ImVec2 out_size = ImGui::GetIO().DisplaySize;
|
||||||
|
row.options.push_back(std::to_string(int(out_size.x)) + " x " +
|
||||||
|
std::to_string(int(out_size.y)));
|
||||||
|
rows.push_back(std::move(row));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
RowSpec row;
|
||||||
|
row.kind = RowSpec::kEnum;
|
||||||
|
row.label = "Render Scale";
|
||||||
|
row.desc =
|
||||||
|
"Internal 3D render resolution, as a multiple of the game's native 720p. "
|
||||||
|
"The image is always displayed at your monitor's native resolution - "
|
||||||
|
"higher settings supersample down to it.";
|
||||||
for (const char* label : kResolutionLabels) {
|
for (const char* label : kResolutionLabels) {
|
||||||
row.options.push_back(label);
|
row.options.push_back(label);
|
||||||
}
|
}
|
||||||
|
|
@ -1222,13 +1241,13 @@ void SimpleSettingsDialog::BuildRows(std::vector<RowSpec>& rows, int category) {
|
||||||
row.label = "Shadow Quality";
|
row.label = "Shadow Quality";
|
||||||
row.desc =
|
row.desc =
|
||||||
"Dynamic character/prop shadow resolution in the native renderer. "
|
"Dynamic character/prop shadow resolution in the native renderer. "
|
||||||
"Auto follows the Resolution Scale setting; 512 matches the "
|
"Auto follows the Render Scale setting; 512 matches the original "
|
||||||
"original game's shadow maps.";
|
"game's shadow maps.";
|
||||||
for (size_t i = 0; i < kShadowQualityLabels.size(); ++i) {
|
for (size_t i = 0; i < kShadowQualityLabels.size(); ++i) {
|
||||||
if (i == 1) {
|
if (i == 1) {
|
||||||
// Auto = the game's 512 tiles at the render resolution scale;
|
// Auto = the game's 512 tiles at the render resolution scale;
|
||||||
// the renderer sizes the atlas from its scaled output (see the
|
// the renderer sizes the atlas from its scaled output (see the
|
||||||
// shadow_tile cvar), so the label follows the Resolution Scale
|
// shadow_tile cvar), so the label follows the Render Scale
|
||||||
// row's STAGED selection: both apply on restart, and changing
|
// row's STAGED selection: both apply on restart, and changing
|
||||||
// the scale updates what Auto reads as immediately.
|
// the scale updates what Auto reads as immediately.
|
||||||
const int scale_index = std::clamp(
|
const int scale_index = std::clamp(
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue