using ADOFAIRenderer.Localization; using ADOFAIRenderer.UI; using UnityEngine; namespace ADOFAIRenderer.Core; [DefaultExecutionOrder(int.MinValue)] internal class FirstUpdateHook : MonoBehaviour { private bool _checkedFFmpeg; private bool _checkedNvidiaDriver; private void Update() { if (!_checkedFFmpeg) { if (FFmpegDownloadUI.Instance) return; if (!FFmpegDownloadUI.CheckFFmpegExists()) { FFmpegDownloadUI.ShowDownloadUI(); return; } _checkedFFmpeg = true; } if (!_checkedNvidiaDriver) { if (CommonWarningDialogUI.Instance) return; _checkedNvidiaDriver = true; CheckNvidiaDriverWarning(); } if (RenderManager.Instance) { RenderManager.Instance.OnPreUpdate(); } } private void CheckNvidiaDriverWarning() { var driverVer = Util.GPUUtil.GetNvidiaDriverVersion(); if (driverVer is null or >= 610.00f) return; var currentVersion = driverVer.Value.ToString("F2"); CommonWarningDialogUI.ShowDialog( LocalizationManager.Get("ui.driver_warning.title"), LocalizationManager.Get("ui.driver_warning.body", currentVersion), new DialogButton(LocalizationManager.Get("ui.driver_warning.btn_update"), () => { Application.OpenURL("https://www.nvidia.com/Download/index.aspx"); Application.Quit(); }, new Color(0.0f, 0.8f, 1.0f, 1.0f)), new DialogButton(LocalizationManager.Get("ui.driver_warning.btn_disable"), () => { RenderMod.IsFeatureDisabled = true; }), new DialogButton(LocalizationManager.Get("ui.driver_warning.btn_continue"), () => { // ignored }) ); } }