diff --git a/lib/data/game_performance_data.dart b/lib/data/game_performance_data.dart index 5894280..09fe574 100644 --- a/lib/data/game_performance_data.dart +++ b/lib/data/game_performance_data.dart @@ -17,6 +17,7 @@ class GamePerformanceData { this.min, this.value, this.group, + this.defaultValue, }); GamePerformanceData.fromJson(dynamic json) { @@ -28,6 +29,8 @@ class GamePerformanceData { min = json['min']; value = json['value']; group = json['group']; + // Store the initial value as default value + defaultValue = json['value']; } String? key; String? name; @@ -37,6 +40,7 @@ class GamePerformanceData { num? min; num? value; String? group; + num? defaultValue; Map toJson() { final map = {}; diff --git a/lib/generated/intl/messages_en.dart b/lib/generated/intl/messages_en.dart index 4b22775..bb456dc 100644 --- a/lib/generated/intl/messages_en.dart +++ b/lib/generated/intl/messages_en.dart @@ -1697,6 +1697,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Model object detail, affects LOD, etc.", ), + "performance_json_text_openxr": MessageLookupByLibrary.simpleMessage( + "Enable OpenXR", + ), + "performance_json_text_openxr_info": MessageLookupByLibrary.simpleMessage( + "Connect OpenXR-compatible headsets, use Numpad / to switch between VR and widescreen theater mode after game launch", + ), "performance_json_text_particles": MessageLookupByLibrary.simpleMessage( "Particle Detail", ), diff --git a/lib/generated/intl/messages_zh_CN.dart b/lib/generated/intl/messages_zh_CN.dart index 8dec4c6..28f9fad 100644 --- a/lib/generated/intl/messages_zh_CN.dart +++ b/lib/generated/intl/messages_zh_CN.dart @@ -1410,12 +1410,18 @@ class MessageLookup extends MessageLookupByLibrary { "动态模糊", ), "performance_json_text_motion_blur_info": - MessageLookupByLibrary.simpleMessage("开启以提高运动感,关闭提升观感"), + MessageLookupByLibrary.simpleMessage("开启以提高运动感,关闭提升观感"), "performance_json_text_object_detail": MessageLookupByLibrary.simpleMessage( "对象细节", ), "performance_json_text_object_detail_info": MessageLookupByLibrary.simpleMessage("模型对象细节,影响LOD等.."), + "performance_json_text_openxr": MessageLookupByLibrary.simpleMessage( + "启用 OpenXR", + ), + "performance_json_text_openxr_info": MessageLookupByLibrary.simpleMessage( + "连接与 OpenXR 兼容的头显,启动游戏后,使用数字小键盘 / 切换 VR 与 宽屏剧院模式", + ), "performance_json_text_particles": MessageLookupByLibrary.simpleMessage( "粒子细节", ), diff --git a/lib/generated/l10n.dart b/lib/generated/l10n.dart index 382a2c7..8eb7054 100644 --- a/lib/generated/l10n.dart +++ b/lib/generated/l10n.dart @@ -4576,6 +4576,26 @@ class S { ); } + /// `Enable OpenXR` + String get performance_json_text_openxr { + return Intl.message( + 'Enable OpenXR', + name: 'performance_json_text_openxr', + desc: '', + args: [], + ); + } + + /// `Connect OpenXR-compatible headsets, use Numpad / to switch between VR and widescreen theater mode after game launch` + String get performance_json_text_openxr_info { + return Intl.message( + 'Connect OpenXR-compatible headsets, use Numpad / to switch between VR and widescreen theater mode after game launch', + name: 'performance_json_text_openxr_info', + desc: '', + args: [], + ); + } + /// `Set FOV` String get performance_json_text_fov { return Intl.message( diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index 9f485a8..4c9c1bc 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -907,6 +907,10 @@ "@performance_json_text_motion_blur": {}, "performance_json_text_motion_blur_info": "Enable for enhanced motion feel, disable for improved visuals", "@performance_json_text_motion_blur_info": {}, + "performance_json_text_openxr": "Enable OpenXR", + "@performance_json_text_openxr": {}, + "performance_json_text_openxr_info": "Connect OpenXR-compatible headsets, use Numpad / to switch between VR and widescreen theater mode after game launch", + "@performance_json_text_openxr_info": {}, "performance_json_text_fov": "Set FOV", "@performance_json_text_fov": {}, "performance_json_text_ui_animation": "UI Fade Animation", diff --git a/lib/l10n/intl_ja.arb b/lib/l10n/intl_ja.arb index 205f0a6..aaf352c 100644 --- a/lib/l10n/intl_ja.arb +++ b/lib/l10n/intl_ja.arb @@ -907,6 +907,10 @@ "@performance_json_text_motion_blur": {}, "performance_json_text_motion_blur_info": "動きの感覚を高めるためにオン、視覚的体験を向上させるためにオフ", "@performance_json_text_motion_blur_info": {}, + "performance_json_text_openxr": "OpenXRを有効にする", + "@performance_json_text_openxr": {}, + "performance_json_text_openxr_info": "OpenXR対応ヘッドセットを接続し、ゲーム起動後にテンキーの / でVRとワイドスクリーンシアターモードを切り替え", + "@performance_json_text_openxr_info": {}, "performance_json_text_fov": "視野角FOVを設定", "@performance_json_text_fov": {}, "performance_json_text_ui_animation": "UIフェードインアウトアニメーション", diff --git a/lib/l10n/intl_ru.arb b/lib/l10n/intl_ru.arb index 8de16f9..eaae8f0 100644 --- a/lib/l10n/intl_ru.arb +++ b/lib/l10n/intl_ru.arb @@ -907,6 +907,10 @@ "@performance_json_text_motion_blur": {}, "performance_json_text_motion_blur_info": "Включите для усиления чувства движения, выключите для улучшения восприятия", "@performance_json_text_motion_blur_info": {}, + "performance_json_text_openxr": "Включить OpenXR", + "@performance_json_text_openxr": {}, + "performance_json_text_openxr_info": "Подключите OpenXR-совместимый шлем, используйте / на цифровой клавиатуре после запуска игры для переключения между VR и широкоэкранным режимом", + "@performance_json_text_openxr_info": {}, "performance_json_text_fov": "Настройка FOV", "@performance_json_text_fov": {}, "performance_json_text_ui_animation": "Анимация затухания UI", diff --git a/lib/l10n/intl_zh_CN.arb b/lib/l10n/intl_zh_CN.arb index 5ffb5ea..10b33e4 100644 --- a/lib/l10n/intl_zh_CN.arb +++ b/lib/l10n/intl_zh_CN.arb @@ -776,7 +776,9 @@ "performance_json_text_vsync": "垂直同步", "performance_json_text_vsync_info": "开启以防止撕裂,关闭以提高帧率", "performance_json_text_motion_blur": "动态模糊", - "performance_json_text_motion_blur_info": "开启以提高运动感,关闭提升观感", + "performance_json_text_motion_blur_info": "开启以提高运动感,关闭提升观感", + "performance_json_text_openxr": "启用 OpenXR", + "performance_json_text_openxr_info": "连接与 OpenXR 兼容的头显,启动游戏后,使用数字小键盘 / 切换 VR 与 宽屏剧院模式", "performance_json_text_fov": "设置视角FOV", "performance_json_text_ui_animation": "UI 淡入淡出动画", "performance_json_text_custom_parameters": "自定义参数", diff --git a/lib/l10n/intl_zh_TW.arb b/lib/l10n/intl_zh_TW.arb index 35c6175..e5fae70 100644 --- a/lib/l10n/intl_zh_TW.arb +++ b/lib/l10n/intl_zh_TW.arb @@ -901,6 +901,10 @@ "@performance_json_text_motion_blur": {}, "performance_json_text_motion_blur_info": "開啟以提高運動感,關閉提升觀感", "@performance_json_text_motion_blur_info": {}, + "performance_json_text_openxr": "啟用 OpenXR", + "@performance_json_text_openxr": {}, + "performance_json_text_openxr_info": "連接與 OpenXR 兼容的頭顯,啟動遊戲後,使用數字小鍵盤 / 切換 VR 與 寬屏劇院模式", + "@performance_json_text_openxr_info": {}, "performance_json_text_fov": "設定視角FOV", "@performance_json_text_fov": {}, "performance_json_text_ui_animation": "UI 淡入淡出動畫", diff --git a/lib/ui/home/performance/performance_ui.json.dart b/lib/ui/home/performance/performance_ui.json.dart index fbf37f0..0f18072 100644 --- a/lib/ui/home/performance/performance_ui.json.dart +++ b/lib/ui/home/performance/performance_ui.json.dart @@ -1,335 +1,344 @@ import 'package:starcitizen_doctor/generated/l10n.dart'; List get performanceUIConfJsonData => [ - { - "key": "r_ssdo", - "name": S.current.performance_json_text_ssdo, - "info": S.current.performance_json_text_ssdo_info, - "type": "int", - "max": 2, - "min": 0, - "value": 1, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "r_DepthOfField", - "name": S.current.performance_json_text_dof, - "info": S.current.performance_json_text_dof_info, - "type": "int", - "max": 2, - "min": 0, - "value": 1, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "r_AntialiasingMode", - "name": S.current.performance_json_text_antialiasing, - "info": S.current.performance_json_text_antialiasing_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_gameeffects", - "name": S.current.performance_json_text_game_effects, - "info": S.current.performance_json_text_game_effects_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_texture", - "name": S.current.performance_json_text_texture, - "info": S.current.performance_json_text_texture_info, - "type": "int", - "max": 3, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_volumetriceffects", - "name": S.current.performance_json_text_volumetric_effects, - "info": S.current.performance_json_text_volumetric_effects_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_water", - "name": S.current.performance_json_text_water, - "info": S.current.performance_json_text_water_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_objectdetail", - "name": S.current.performance_json_text_object_detail, - "info": S.current.performance_json_text_object_detail_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_particles", - "name": S.current.performance_json_text_particles, - "info": "", - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_physics", - "name": S.current.performance_json_text_physics, - "info": S.current.performance_json_text_physics_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_shading", - "name": S.current.performance_json_text_shading, - "info": S.current.performance_json_text_shading_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_shadows", - "name": S.current.performance_json_text_shadows, - "info": S.current.performance_json_text_shadows_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "sys_spec_postprocessing", - "name": S.current.performance_json_text_postprocessing, - "info": S.current.performance_json_text_postprocessing_info, - "type": "int", - "max": 4, - "min": 1, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_Renderer", - "name": S.current.performance_json_text_renderer, - "info": S.current.performance_json_text_renderer_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderDecal", - "name": S.current.performance_json_text_shader_decal, - "info": S.current.performance_json_text_shader_decal_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderPostProcess", - "name": S.current.performance_json_text_shader_post_process, - "info": "", - "type": "int", - "max": 3, - "min": 0, - "value": 3, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderFX", - "name": S.current.performance_json_text_shader_fx, - "info": "", - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderGeneral", - "name": S.current.performance_json_text_shader_general, - "info": S.current.performance_json_text_shader_general_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderGlass", - "name": S.current.performance_json_text_shader_glass, - "info": S.current.performance_json_text_shader_glass_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderHDR", - "name": S.current.performance_json_text_shader_hdr, - "info": S.current.performance_json_text_shader_hdr_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderParticle", - "name": S.current.performance_json_text_shader_particle, - "info": S.current.performance_json_text_shader_particle_info, - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderTerrain", - "name": S.current.performance_json_text_shader_terrain, - "info": "", - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderShadow", - "name": S.current.performance_json_text_shader_shadow, - "info": "", - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "q_ShaderSky", - "name": S.current.performance_json_text_shader_sky, - "info": "", - "type": "int", - "max": 3, - "min": 0, - "value": 2, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "e_ParticlesObjectCollisions", - "name": S.current.performance_json_text_particles_object_collisions, - "info": - S.current.performance_json_text_particles_object_collisions_info, - "type": "int", - "max": 2, - "min": 1, - "value": 1, - "group": S.current.performance_json_text_title_graphics - }, - { - "key": "r_displayinfo", - "name": S.current.performance_json_text_displayinfo, - "info": S.current.performance_json_text_displayinfo_info, - "type": "int", - "max": 4, - "min": 0, - "value": 1, - "group": S.current.app_index_menu_settings - }, - { - "key": "sys_maxFps", - "name": S.current.performance_json_text_max_fps, - "info": S.current.performance_json_text_max_fps_info, - "type": "int", - "max": 300, - "min": 0, - "value": 0, - "group": S.current.app_index_menu_settings - }, - { - "key": "r_DisplaySessionInfo", - "name": S.current.performance_json_text_display_session, - "info": S.current.performance_json_text_display_session_info, - "type": "bool", - "max": 1, - "min": 0, - "value": 0, - "group": S.current.app_index_menu_settings - }, - { - "key": "r_VSync", - "name": S.current.performance_json_text_vsync, - "info": S.current.performance_json_text_vsync_info, - "type": "bool", - "max": 1, - "min": 0, - "value": 0, - "group": S.current.app_index_menu_settings - }, - { - "key": "r_MotionBlur", - "name": S.current.performance_json_text_motion_blur, - "info": S.current.performance_json_text_motion_blur_info, - "type": "bool", - "max": 1, - "min": 0, - "value": 0, - "group": S.current.app_index_menu_settings - }, - { - "key": "cl_fov", - "name": "FOV", - "info": S.current.performance_json_text_fov, - "type": "int", - "max": 160, - "min": 25, - "value": 90, - "group": S.current.app_index_menu_settings - }, - { - "key": "ui_disableScreenFade", - "name": S.current.performance_json_text_ui_animation, - "info": "", - "type": "bool", - "max": 1, - "min": 0, - "value": 1, - "group": S.current.app_index_menu_settings - }, - { - "key": "customize", - "name": S.current.performance_json_text_custom_parameters, - "info": "", - "type": "customize", - "max": 1, - "min": 0, - "value": 1, - "group": S.current.performance_json_text_title_custom - } - ]; + { + "key": "r_ssdo", + "name": S.current.performance_json_text_ssdo, + "info": S.current.performance_json_text_ssdo_info, + "type": "int", + "max": 2, + "min": 0, + "value": 1, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "r_DepthOfField", + "name": S.current.performance_json_text_dof, + "info": S.current.performance_json_text_dof_info, + "type": "int", + "max": 2, + "min": 0, + "value": 1, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "r_AntialiasingMode", + "name": S.current.performance_json_text_antialiasing, + "info": S.current.performance_json_text_antialiasing_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_gameeffects", + "name": S.current.performance_json_text_game_effects, + "info": S.current.performance_json_text_game_effects_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_texture", + "name": S.current.performance_json_text_texture, + "info": S.current.performance_json_text_texture_info, + "type": "int", + "max": 3, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_volumetriceffects", + "name": S.current.performance_json_text_volumetric_effects, + "info": S.current.performance_json_text_volumetric_effects_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_water", + "name": S.current.performance_json_text_water, + "info": S.current.performance_json_text_water_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_objectdetail", + "name": S.current.performance_json_text_object_detail, + "info": S.current.performance_json_text_object_detail_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_particles", + "name": S.current.performance_json_text_particles, + "info": "", + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_physics", + "name": S.current.performance_json_text_physics, + "info": S.current.performance_json_text_physics_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_shading", + "name": S.current.performance_json_text_shading, + "info": S.current.performance_json_text_shading_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_shadows", + "name": S.current.performance_json_text_shadows, + "info": S.current.performance_json_text_shadows_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys_spec_postprocessing", + "name": S.current.performance_json_text_postprocessing, + "info": S.current.performance_json_text_postprocessing_info, + "type": "int", + "max": 4, + "min": 1, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_Renderer", + "name": S.current.performance_json_text_renderer, + "info": S.current.performance_json_text_renderer_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderDecal", + "name": S.current.performance_json_text_shader_decal, + "info": S.current.performance_json_text_shader_decal_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderPostProcess", + "name": S.current.performance_json_text_shader_post_process, + "info": "", + "type": "int", + "max": 3, + "min": 0, + "value": 3, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderFX", + "name": S.current.performance_json_text_shader_fx, + "info": "", + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderGeneral", + "name": S.current.performance_json_text_shader_general, + "info": S.current.performance_json_text_shader_general_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderGlass", + "name": S.current.performance_json_text_shader_glass, + "info": S.current.performance_json_text_shader_glass_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderHDR", + "name": S.current.performance_json_text_shader_hdr, + "info": S.current.performance_json_text_shader_hdr_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderParticle", + "name": S.current.performance_json_text_shader_particle, + "info": S.current.performance_json_text_shader_particle_info, + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderTerrain", + "name": S.current.performance_json_text_shader_terrain, + "info": "", + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderShadow", + "name": S.current.performance_json_text_shader_shadow, + "info": "", + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "q_ShaderSky", + "name": S.current.performance_json_text_shader_sky, + "info": "", + "type": "int", + "max": 3, + "min": 0, + "value": 2, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "e_ParticlesObjectCollisions", + "name": S.current.performance_json_text_particles_object_collisions, + "info": S.current.performance_json_text_particles_object_collisions_info, + "type": "int", + "max": 2, + "min": 1, + "value": 1, + "group": S.current.performance_json_text_title_graphics, + }, + { + "key": "sys.OpenXR", + "name": S.current.performance_json_text_openxr, + "info": S.current.performance_json_text_openxr_info, + "type": "bool", + "max": 1, + "min": 0, + "value": 0, + "group": S.current.app_index_menu_settings, + }, + { + "key": "r_displayinfo", + "name": S.current.performance_json_text_displayinfo, + "info": S.current.performance_json_text_displayinfo_info, + "type": "int", + "max": 4, + "min": 0, + "value": 1, + "group": S.current.app_index_menu_settings, + }, + { + "key": "sys_maxFps", + "name": S.current.performance_json_text_max_fps, + "info": S.current.performance_json_text_max_fps_info, + "type": "int", + "max": 300, + "min": 0, + "value": 0, + "group": S.current.app_index_menu_settings, + }, + { + "key": "r_DisplaySessionInfo", + "name": S.current.performance_json_text_display_session, + "info": S.current.performance_json_text_display_session_info, + "type": "bool", + "max": 1, + "min": 0, + "value": 0, + "group": S.current.app_index_menu_settings, + }, + { + "key": "r_VSync", + "name": S.current.performance_json_text_vsync, + "info": S.current.performance_json_text_vsync_info, + "type": "bool", + "max": 1, + "min": 0, + "value": 0, + "group": S.current.app_index_menu_settings, + }, + { + "key": "r_MotionBlur", + "name": S.current.performance_json_text_motion_blur, + "info": S.current.performance_json_text_motion_blur_info, + "type": "bool", + "max": 1, + "min": 0, + "value": 0, + "group": S.current.app_index_menu_settings, + }, + { + "key": "cl_fov", + "name": "FOV", + "info": S.current.performance_json_text_fov, + "type": "int", + "max": 160, + "min": 25, + "value": 90, + "group": S.current.app_index_menu_settings, + }, + { + "key": "ui_disableScreenFade", + "name": S.current.performance_json_text_ui_animation, + "info": "", + "type": "bool", + "max": 1, + "min": 0, + "value": 1, + "group": S.current.app_index_menu_settings, + }, + { + "key": "customize", + "name": S.current.performance_json_text_custom_parameters, + "info": "", + "type": "customize", + "max": 1, + "min": 0, + "value": 1, + "group": S.current.performance_json_text_title_custom, + }, +]; diff --git a/lib/ui/home/performance/performance_ui_model.dart b/lib/ui/home/performance/performance_ui_model.dart index a5baf8c..06149a4 100644 --- a/lib/ui/home/performance/performance_ui_model.dart +++ b/lib/ui/home/performance/performance_ui_model.dart @@ -87,8 +87,14 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel { for (var m in state.performanceMap!.entries) { for (var value in m.value) { if (value.key == kv[0].trim()) { - final v = int.tryParse(kv[1].trim()); - if (v != null) value.value = v; + var v = int.tryParse(kv[1].trim()); + if (v != null) { + // Special mapping for sys.OpenXR: 42 -> 1 + if (value.key == "sys.OpenXR" && v == 42) { + v = 1; + } + value.value = v; + } } } } @@ -188,7 +194,18 @@ class HomePerformanceUIModel extends _$HomePerformanceUIModel { for (var v in state.performanceMap!.entries) { for (var c in v.value) { if (c.key != "customize") { - conf = "$conf${c.key}=${c.value}\n"; + // Skip writing configuration if value equals default value + if (c.value == c.defaultValue) { + continue; + } + + // Special mapping for sys.OpenXR: 1 -> 42 + var outputValue = c.value; + if (c.key == "sys.OpenXR" && c.value == 1) { + outputValue = 42; + } + + conf = "$conf${c.key}=$outputValue\n"; } } }