BUTR/Bannerlord.BLSE

View on GitHub
src/Bannerlord.BLSE.Shared/Utils/ReShadeLoader.cs

Summary

Maintainability
A
1 hr
Test Coverage
using System.Diagnostics;
using System.IO;

using Windows.Win32;

namespace Bannerlord.BLSE.Shared.Utils;

internal static class ReShadeLoader
{
    private static FreeLibrarySafeHandle? _reShade;

    public static void LoadReShadeIfNeeded()
    {
        var dxgi = new FileInfo("dxgi.dll");
        if (dxgi.Exists)
        {
            var dxgiVersionInfo = FileVersionInfo.GetVersionInfo(dxgi.FullName);
            var isReShade = dxgiVersionInfo is { CompanyName: "crosire", ProductName: "ReShade" };
            if (!isReShade) return;

            _reShade = PInvoke.LoadLibrary(dxgi.FullName);
        }
    }
}