1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
"""
Auto-generated configuration schema components from shared_config.py
DO NOT EDIT THIS FILE MANUALLY - it will be overwritten on build
"""
from typing import TypedDict, Dict, Any, Union, cast
from enum import Enum
import sys
from pathlib import Path
# Import shared configuration constants
sys.path.insert(0, str(Path(__file__).parent.parent.parent))
from shared_config import CONFIG_SCHEMA_DEF, ConfigFieldType
class ConfigurationData(TypedDict):
"""Type-safe configuration data structure - AUTO-GENERATED"""
dll: str
multiplier: int
flow_scale: float
performance_mode: bool
hdr_mode: bool
experimental_present_mode: str
dxvk_frame_rate: int
enable_wow64: bool
disable_steamdeck_mode: bool
mangohud_workaround: bool
disable_vkbasalt: bool
def get_script_parsing_logic():
"""Return the script parsing logic as a callable"""
def parse_script_values(lines):
script_values = {}
for line in lines:
line = line.strip()
if not line or line.startswith("#") or not line.startswith("export "):
continue
if "=" in line:
export_line = line[len("export "):]
key, value = export_line.split("=", 1)
key = key.strip()
value = value.strip()
# Auto-generated parsing logic:
if key == "DXVK_FRAME_RATE":
try:
script_values["dxvk_frame_rate"] = int(value)
except ValueError:
pass
if key == "PROTON_USE_WOW64":
script_values["enable_wow64"] = value == "1"
if key == "SteamDeck":
script_values["disable_steamdeck_mode"] = value == "0"
if key == "MANGOHUD":
script_values["mangohud_workaround"] = value == "1"
if key == "DISABLE_VKBASALT":
script_values["disable_vkbasalt"] = value == "1"
return script_values
return parse_script_values
def get_script_generation_logic():
"""Return the script generation logic as a callable"""
def generate_script_lines(config):
lines = []
dxvk_frame_rate = config.get("dxvk_frame_rate", 0)
if dxvk_frame_rate > 0:
lines.append(f"export DXVK_FRAME_RATE={dxvk_frame_rate}")
if config.get("enable_wow64", False):
lines.append("export PROTON_USE_WOW64=1")
if config.get("disable_steamdeck_mode", False):
lines.append("export SteamDeck=0")
if config.get("mangohud_workaround", False):
lines.append("export MANGOHUD=1")
if config.get("disable_vkbasalt", False):
lines.append("export DISABLE_VKBASALT=1")
return lines
return generate_script_lines
def get_function_parameters() -> str:
"""Return function signature parameters"""
return """dll: str = "/games/Lossless Scaling/Lossless.dll",
multiplier: int = 1,
flow_scale: float = 0.8,
performance_mode: bool = True,
hdr_mode: bool = False,
experimental_present_mode: str = "fifo",
dxvk_frame_rate: int = 0,
enable_wow64: bool = False,
disable_steamdeck_mode: bool = False,
mangohud_workaround: bool = False,
disable_vkbasalt: bool = False"""
def create_config_dict(**kwargs) -> ConfigurationData:
"""Create configuration dictionary from keyword arguments"""
return cast(ConfigurationData, {
"dll": dll,
"multiplier": multiplier,
"flow_scale": flow_scale,
"performance_mode": performance_mode,
"hdr_mode": hdr_mode,
"experimental_present_mode": experimental_present_mode,
"dxvk_frame_rate": dxvk_frame_rate,
"enable_wow64": enable_wow64,
"disable_steamdeck_mode": disable_steamdeck_mode,
"mangohud_workaround": mangohud_workaround,
"disable_vkbasalt": disable_vkbasalt,
})
# Field lists for dynamic operations
TOML_FIELDS = ['dll', 'multiplier', 'flow_scale', 'performance_mode', 'hdr_mode', 'experimental_present_mode']
SCRIPT_FIELDS = ['dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt']
ALL_FIELDS = ['dll', 'multiplier', 'flow_scale', 'performance_mode', 'hdr_mode', 'experimental_present_mode', 'dxvk_frame_rate', 'enable_wow64', 'disable_steamdeck_mode', 'mangohud_workaround', 'disable_vkbasalt']
|