Skip to content

Commit

Permalink
Support GI Dynamic Character Resolution
Browse files Browse the repository at this point in the history
  • Loading branch information
shatyuka authored and bagusnl committed Feb 6, 2024
1 parent 8caf3b1 commit 9f754dc
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,10 @@ enum GlobalIlluminationOption
High,
Extreme
}

enum DynamicCharacterResolutionOption
{
Off,
On
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ internal class GlobalPerfData
AnisotropicFiltering = AnisotropicFilteringOption.x1,
GraphicsQuality = GraphicsQualityOption.Lowest,
GlobalIllumination = GlobalIlluminationOption.Off,
DynamicCharacterResolution = DynamicCharacterResolutionOption.On,
};

private static GlobalPerfData _LowPreset = new()
Expand All @@ -87,6 +88,7 @@ internal class GlobalPerfData
AnisotropicFiltering = AnisotropicFilteringOption.x2,
GraphicsQuality = GraphicsQualityOption.Low,
GlobalIllumination = GlobalIlluminationOption.Off,
DynamicCharacterResolution = DynamicCharacterResolutionOption.On,
};

private static GlobalPerfData _MediumPreset = new()
Expand All @@ -109,6 +111,7 @@ internal class GlobalPerfData
AnisotropicFiltering = AnisotropicFilteringOption.x4,
GraphicsQuality = GraphicsQualityOption.Medium,
GlobalIllumination = GlobalIlluminationOption.Medium,
DynamicCharacterResolution = DynamicCharacterResolutionOption.On,
};
#endregion

Expand Down Expand Up @@ -261,12 +264,21 @@ private static int GetFPSOptionNumber(FPSOption value)

/// <summary>
/// This defines "<c>Global Illumination</c>" combobox In-game settings. <br/>
/// Options: Off, Medium, High, Extreme
/// Default: High [2] <br/>
/// Notes: Only work for PC who meet the specs for Global Illumination, specified by HYV <br/>
/// Options: Off, Medium, High, Extreme <br/>
/// Default: High [2] <br/>
/// Notes: Only work for PC who meet the specs for Global Illumination, specified by HYV <br/>
/// Further information: https://genshin.hoyoverse.com/en/news/detail/112690#:~:text=Minimum%20Specifications%20for%20Global%20Illumination
/// </summary>
public GlobalIlluminationOption GlobalIllumination = GlobalIlluminationOption.High;

/// <summary>
/// This defines "<c>Dynamic Character Resolution</c>" combobox In-game settings. <br/>
/// Options: Off, On <br/>
/// Default: On [1] <br/>
/// Notes: Only work for PC who meet the specs for Dynamic Character Resolution, specified by HYV <br/>
/// Further information: https://genshin.hoyoverse.com/en/news/detail/122141#:~:text=Dynamic%20Character%20Resolution
/// </summary>
public DynamicCharacterResolutionOption DynamicCharacterResolution = DynamicCharacterResolutionOption.On;
#endregion

#region Methods
Expand Down Expand Up @@ -442,6 +454,13 @@ public static GlobalPerfData Load(string globalPerfJson, GraphicsData graphics)
#endif
globalPerf.GlobalIllumination = (GlobalIlluminationOption)setting.index;
break;

case 21:
#if DEBUG
LogWriteLine($"Loaded Genshin Settings: Graphics - Dynamic Character Resolution: {setting.index}", LogType.Debug, true);
#endif
globalPerf.DynamicCharacterResolution = (DynamicCharacterResolutionOption)setting.index;
break;
}
}
return globalPerf;
Expand All @@ -468,7 +487,8 @@ public string Save()
new PerfDataItem(15, (int)SubsurfaceScattering, portedVersion),
new PerfDataItem(17, (int)AnisotropicFiltering, portedVersion),
new PerfDataItem(18, (int)GraphicsQuality, portedVersion),
new PerfDataItem(19, (int)GlobalIllumination, portedVersion)
new PerfDataItem(19, (int)GlobalIllumination, portedVersion),
new PerfDataItem(21, (int)DynamicCharacterResolution, portedVersion),
};
string data = this.Serialize(GenshinSettingsJSONContext.Default, false);
#if DEBUG
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ public string Create(GlobalPerfData globalPerf)
new GenshinKeyValuePair(15, (int)globalPerf.SubsurfaceScattering + 1),
new GenshinKeyValuePair(17, (int)globalPerf.AnisotropicFiltering + 1),
new GenshinKeyValuePair(19, (int)globalPerf.GlobalIllumination + 1),
new GenshinKeyValuePair(21, (int)globalPerf.DynamicCharacterResolution + 1),
};

string data = this.Serialize(GenshinSettingsJSONContext.Default, false);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,12 @@ public int GlobalIllumination
get => (int)Settings.SettingsGeneralData.globalPerfData.GlobalIllumination;
set => Settings.SettingsGeneralData.globalPerfData.GlobalIllumination = (GlobalIlluminationOption)(value);
}

public bool DynamicCharacterResolution
{
get => Convert.ToBoolean((int)Settings.SettingsGeneralData.globalPerfData.DynamicCharacterResolution);
set => Settings.SettingsGeneralData.globalPerfData.DynamicCharacterResolution = (DynamicCharacterResolutionOption)(Convert.ToInt32(value));
}
#endregion

#region Graphics Settings - HDR
Expand Down
18 changes: 10 additions & 8 deletions CollapseLauncher/XAMLs/MainApp/Pages/GenshinGameSettingsPage.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@
<ComboBoxItem Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.SpecHigh}"/>
<ComboBoxItem Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.SpecExtreme}"/>
</ComboBox>
<Button Margin="4,-10,0,0" HorizontalAlignment="Center" Height="30" Width="15" CornerRadius="4" Padding="0">
<Button Margin="4,-10,0,0" HorizontalAlignment="Center" Height="24" Width="16" CornerRadius="4" Padding="0">
<Button.Content>
<FontIcon FontFamily="{ThemeResource FontAwesome}" Glyph="&#x3f;" FontSize="10"/>
</Button.Content>
Expand Down Expand Up @@ -378,25 +378,27 @@
</CheckBox>
</Grid>
</StackPanel>
<StackPanel Grid.Column="1">
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<CheckBox x:Name="ReflectionsToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Graphics_ReflectionQuality}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Reflections, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Grid.Column="2">
<StackPanel Grid.Column="2" VerticalAlignment="Center">
<CheckBox x:Name="BloomToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Graphics_BloomQuality}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Bloom, Mode=TwoWay}"/>
</StackPanel>
</Grid>
</StackPanel>
<StackPanel Margin="0,0,0,8">
<Grid>
<!--
Unused for now
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
-->
<StackPanel Grid.Column="0">
<StackPanel Grid.Column="0" VerticalAlignment="Center">
<CheckBox x:Name="TeamPageBackgroundToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Graphics_TeamPageBackground}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind TeamPageBackground, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Grid.Column="1" VerticalAlignment="Center">
<CheckBox x:Name="DynamicCharacterResolutionToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Graphics_DynamicCharacterResolution}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind DynamicCharacterResolution, Mode=TwoWay}" ToolTipService.ToolTip="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Graphics_DynamicCharacterResolution_Tooltip}"/>
</StackPanel>
</Grid>
</StackPanel>
</StackPanel>
Expand Down Expand Up @@ -475,7 +477,7 @@
<CheckBox x:Name="AudioDynamicRangeToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Audio_DynamicRange}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Audio_DynamicRange, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Grid.Column="1">
<CheckBox x:Name="AudioSurroudToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Audio_Output_Surround}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Audio_Surround, Mode=TwoWay}"/>
<CheckBox x:Name="AudioSurroundToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Audio_Output_Surround}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Audio_Surround, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Grid.Column="2">
<CheckBox x:Name="AudioMuteOnMinimizeToggle" Content="{x:Bind helper:Locale.Lang._GenshinGameSettingsPage.Audio_MuteOnMinimize}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{x:Bind Audio_MuteOnMinimized, Mode=TwoWay}"/>
Expand Down
4 changes: 3 additions & 1 deletion Hi3Helper.Core/Lang/Locale/LangGenshinGameSettingsPage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ public sealed class LangGenshinGameSettingsPage
public string Graphics_GlobalIllumination { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_GlobalIllumination;
public string Graphics_GlobalIllumination_Help1 { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_GlobalIllumination_Help1;
public string Graphics_GlobalIllumination_Help2 { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_GlobalIllumination_Help2;
public string Graphics_DynamicCharacterResolution { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_DynamicCharacterResolution;
public string Graphics_DynamicCharacterResolution_Tooltip { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_DynamicCharacterResolution_Tooltip;

public string Graphics_HDR { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_HDR;
public string Graphics_HDR_Enable { get; set; } = LangFallback?._GenshinGameSettingsPage.Graphics_HDR_Enable;
Expand Down Expand Up @@ -123,4 +125,4 @@ public sealed class LangGenshinGameSettingsPage
}
#endregion
}
}
}
2 changes: 2 additions & 0 deletions Hi3Helper.Core/Lang/en_US.json
Original file line number Diff line number Diff line change
Expand Up @@ -1009,6 +1009,8 @@
"Graphics_GlobalIllumination": "Global Illumination",
"Graphics_GlobalIllumination_Help1": "Only for supported hardware!",
"Graphics_GlobalIllumination_Help2": "More information (en)",
"Graphics_DynamicCharacterResolution": "Dynamic Character Resolution",
"Graphics_DynamicCharacterResolution_Tooltip": "Only for supported hardware!",
"Graphics_HDR": "HDR",
"Graphics_HDR_Enable": "Enable HDR",
"Graphics_HDR_NotSupported1": "Your display does not support HDR.",
Expand Down

0 comments on commit 9f754dc

Please sign in to comment.