From 7868396718b13443209e7c5d83a2c96cd7eee31e Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Wed, 16 Jul 2025 13:54:09 -0400 Subject: centralized configuration system for lsfg-vk params --- src/components/ConfigurationSection.tsx | 64 +++++++++++---------------------- 1 file changed, 20 insertions(+), 44 deletions(-) (limited to 'src/components/ConfigurationSection.tsx') diff --git a/src/components/ConfigurationSection.tsx b/src/components/ConfigurationSection.tsx index 11bb6b9..2545217 100644 --- a/src/components/ConfigurationSection.tsx +++ b/src/components/ConfigurationSection.tsx @@ -1,38 +1,14 @@ import { PanelSectionRow, ToggleField, SliderField } from "@decky/ui"; - -interface LsfgConfig { - enableLsfg: boolean; - multiplier: number; - flowScale: number; - hdr: boolean; - perfMode: boolean; - immediateMode: boolean; - disableVkbasalt: boolean; - frameCap: number; -} +import { ConfigurationData } from "../config/configSchema"; interface ConfigurationSectionProps { - config: LsfgConfig; - onEnableLsfgChange: (value: boolean) => Promise; - onMultiplierChange: (value: number) => Promise; - onFlowScaleChange: (value: number) => Promise; - onHdrChange: (value: boolean) => Promise; - onPerfModeChange: (value: boolean) => Promise; - onImmediateModeChange: (value: boolean) => Promise; - onDisableVkbasaltChange: (value: boolean) => Promise; - onFrameCapChange: (value: number) => Promise; + config: ConfigurationData; + onConfigChange: (fieldName: keyof ConfigurationData, value: boolean | number) => Promise; } export function ConfigurationSection({ config, - onEnableLsfgChange, - onMultiplierChange, - onFlowScaleChange, - onHdrChange, - onPerfModeChange, - onImmediateModeChange, - onDisableVkbasaltChange, - onFrameCapChange + onConfigChange }: ConfigurationSectionProps) { return ( <> @@ -55,8 +31,8 @@ export function ConfigurationSection({ onConfigChange('enable_lsfg', value)} /> @@ -74,19 +50,19 @@ export function ConfigurationSection({ { notchIndex: 1, label: "3X" }, { notchIndex: 2, label: "4X" } ]} - onChange={onMultiplierChange} + onChange={(value) => onConfigChange('multiplier', value)} /> onConfigChange('flow_scale', value)} /> @@ -95,7 +71,7 @@ export function ConfigurationSection({ label="HDR Mode" description="Enable HDR mode (only if Game supports HDR)" checked={config.hdr} - onChange={onHdrChange} + onChange={(value) => onConfigChange('hdr', value)} /> @@ -103,8 +79,8 @@ export function ConfigurationSection({ onConfigChange('perf_mode', value)} /> @@ -112,20 +88,20 @@ export function ConfigurationSection({ onConfigChange('immediate_mode', value)} /> onConfigChange('frame_cap', value)} /> @@ -133,8 +109,8 @@ export function ConfigurationSection({ onConfigChange('disable_vkbasalt', value)} /> */} -- cgit v1.2.3