2024-02-14 00:05:07 +01:00
|
|
|
|
using Dalamud.Configuration;
|
|
|
|
|
using Dalamud.Plugin;
|
|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
namespace CustomResolution;
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class Configuration : IPluginConfiguration
|
|
|
|
|
{
|
|
|
|
|
public int Version { get; set; } = 0;
|
|
|
|
|
|
2024-02-18 22:48:02 +01:00
|
|
|
|
public bool IsEnabled = true;
|
2024-02-14 00:05:07 +01:00
|
|
|
|
public bool IsScale = true;
|
|
|
|
|
public float Scale = 1f;
|
|
|
|
|
public uint Width = 1024;
|
|
|
|
|
public uint Height = 1024;
|
|
|
|
|
|
2024-03-16 21:29:16 +01:00
|
|
|
|
public DXVKDWMHackMode DXVKDWMHackMode = DXVKDWMHackMode.Off;
|
2024-03-16 15:24:19 +01:00
|
|
|
|
|
2024-02-14 00:05:07 +01:00
|
|
|
|
[NonSerialized]
|
|
|
|
|
private DalamudPluginInterface? pluginInterface;
|
|
|
|
|
|
|
|
|
|
internal void Initialize(DalamudPluginInterface pluginInterface)
|
|
|
|
|
{
|
|
|
|
|
this.pluginInterface = pluginInterface;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Save()
|
|
|
|
|
{
|
|
|
|
|
pluginInterface!.SavePluginConfig(this);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-03-16 21:29:16 +01:00
|
|
|
|
|
|
|
|
|
// Must explicitly map to integer values, blame Newtonsoft.JSON
|
|
|
|
|
public enum DXVKDWMHackMode
|
|
|
|
|
{
|
|
|
|
|
Off = 0,
|
|
|
|
|
UnsetPopup = 1,
|
|
|
|
|
SetClientEdge = 2
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static class DXVKDWMHackModeExt
|
|
|
|
|
{
|
|
|
|
|
public static string ToHumanNameString(this DXVKDWMHackMode mode) => mode switch
|
|
|
|
|
{
|
|
|
|
|
DXVKDWMHackMode.Off => "Off",
|
2024-03-16 21:37:50 +01:00
|
|
|
|
DXVKDWMHackMode.UnsetPopup => "Best: -WS_POPUP",
|
|
|
|
|
DXVKDWMHackMode.SetClientEdge => "Worst: +WS_EX_CLIENTEDGE",
|
2024-03-16 21:29:16 +01:00
|
|
|
|
_ => mode.ToString(),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
public static string? ToHumanInfoString(this DXVKDWMHackMode mode) => mode switch
|
|
|
|
|
{
|
2024-03-16 21:37:50 +01:00
|
|
|
|
DXVKDWMHackMode.UnsetPopup => "Least intrusive option, doesn't work everywhere.\nWorks best with NVIDIA GPUs.",
|
|
|
|
|
DXVKDWMHackMode.SetClientEdge => "Extends the game window 1 pixel to the bottom.\nCauses problems in proper \"Full Screen\" mode!",
|
2024-03-16 21:29:16 +01:00
|
|
|
|
_ => null
|
|
|
|
|
};
|
|
|
|
|
}
|