mirror of
https://github.com/ayufan/steam-deck-tools.git
synced 2026-01-26 10:14:21 +01:00
Add Image Sharpening option
This commit is contained in:
parent
306017e0fb
commit
f704640d04
|
|
@ -92,7 +92,6 @@ namespace PowerControl.Helpers.AMD
|
|||
}
|
||||
#endregion ADLAdapterInfo
|
||||
|
||||
|
||||
#region ADLDisplayInfo
|
||||
/// <summary> ADLDisplayID Structure</summary>
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
|
|
@ -144,6 +143,25 @@ namespace PowerControl.Helpers.AMD
|
|||
}
|
||||
#endregion ADLDisplayInfo
|
||||
|
||||
#region Radeon Image Sharpening
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct ADL_RIS_SETTINGS
|
||||
{
|
||||
internal int GlobalEnable; //Global enable value
|
||||
internal int GlobalSharpeningDegree; //Global sharpening value
|
||||
internal int GlobalSharpeningDegree_MinLimit; //Gloabl sharpening slider min limit value
|
||||
internal int GlobalSharpeningDegree_MaxLimit; //Gloabl sharpening slider max limit value
|
||||
internal int GlobalSharpeningDegree_Step; //Gloabl sharpening step value
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct ADL_RIS_NOTFICATION_REASON
|
||||
{
|
||||
internal int GlobalEnableChanged; //Set when Global enable value is changed
|
||||
internal int GlobalSharpeningDegreeChanged; //Set when Global sharpening Degree value is changed
|
||||
};
|
||||
#endregion ADLDisplayInfo
|
||||
|
||||
#endregion Export Struct
|
||||
|
||||
#region ADL Class
|
||||
|
|
@ -195,22 +213,22 @@ namespace PowerControl.Helpers.AMD
|
|||
|
||||
#region DLLImport
|
||||
[DllImport(Kernel32_FileName)]
|
||||
internal static extern HMODULE GetModuleHandle (string moduleName);
|
||||
internal static extern HMODULE GetModuleHandle(string moduleName);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Main_Control_Create(ADL_Main_Memory_Alloc callback, int enumConnectedAdapters, out IntPtr context);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Main_Control_Destroy (IntPtr context);
|
||||
internal static extern int ADL2_Main_Control_Destroy(IntPtr context);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Main_Control_IsFunctionValid (IntPtr context, HMODULE module, string procName);
|
||||
internal static extern int ADL2_Main_Control_IsFunctionValid(IntPtr context, HMODULE module, string procName);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Adapter_NumberOfAdapters_Get (IntPtr context, out int numAdapters);
|
||||
internal static extern int ADL2_Adapter_NumberOfAdapters_Get(IntPtr context, out int numAdapters);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Adapter_AdapterInfo_Get (IntPtr context, out ADLAdapterInfoArray info, int inputSize);
|
||||
internal static extern int ADL2_Adapter_AdapterInfo_Get(IntPtr context, out ADLAdapterInfoArray info, int inputSize);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Adapter_Active_Get(IntPtr context, int adapterIndex, out int status);
|
||||
|
|
@ -241,6 +259,12 @@ namespace PowerControl.Helpers.AMD
|
|||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_Display_SCE_State_Set(IntPtr context, int adapterIndex, int displayIndex, int current);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_RIS_Settings_Get(IntPtr context, int adapterIndex, out ADL_RIS_SETTINGS settings);
|
||||
|
||||
[DllImport(Atiadlxx_FileName)]
|
||||
internal static extern int ADL2_RIS_Settings_Set(IntPtr context, int adapterIndex, ADL_RIS_SETTINGS settings, ADL_RIS_NOTFICATION_REASON reason);
|
||||
#endregion DLLImport
|
||||
|
||||
#region ADL_Main_Memory_Alloc
|
||||
|
|
|
|||
62
PowerControl/Helpers/AMD/ImageSharpening.cs
Normal file
62
PowerControl/Helpers/AMD/ImageSharpening.cs
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PowerControl.Helpers.AMD
|
||||
{
|
||||
internal class ImageSharpening
|
||||
{
|
||||
internal static bool? Enabled
|
||||
{
|
||||
get
|
||||
{
|
||||
return GetSettings(out var settings) ? settings.GlobalEnable != 0 : null;
|
||||
}
|
||||
set
|
||||
{
|
||||
if (!GetSettings(out var settings))
|
||||
return;
|
||||
|
||||
var enabled = value.GetValueOrDefault(false) ? 1 : 0;
|
||||
if (settings.GlobalEnable == enabled)
|
||||
return;
|
||||
|
||||
settings.GlobalEnable = enabled;
|
||||
SetSettings(settings, new ADL_RIS_NOTFICATION_REASON() { GlobalEnableChanged = 1 });
|
||||
}
|
||||
}
|
||||
|
||||
private static bool GetSettings(out ADL_RIS_SETTINGS settings)
|
||||
{
|
||||
ADL_RIS_SETTINGS settings2 = default;
|
||||
|
||||
var result = ADLContext.WithSafe((context) =>
|
||||
{
|
||||
int res = ADL.ADL2_RIS_Settings_Get(
|
||||
context.Context,
|
||||
ADL.ADL_DEFAULT_ADAPTER,
|
||||
out settings2);
|
||||
return res == 0;
|
||||
});
|
||||
|
||||
settings = settings2;
|
||||
return result;
|
||||
}
|
||||
|
||||
private static bool SetSettings(ADL_RIS_SETTINGS settings, ADL_RIS_NOTFICATION_REASON reason)
|
||||
{
|
||||
return ADLContext.WithSafe((context) =>
|
||||
{
|
||||
int res = ADL.ADL2_RIS_Settings_Set(
|
||||
context.Context,
|
||||
ADL.ADL_DEFAULT_ADAPTER,
|
||||
settings, reason);
|
||||
return res == 0;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -191,6 +191,28 @@ namespace PowerControl
|
|||
}
|
||||
},
|
||||
new Menu.MenuItemWithOptions()
|
||||
{
|
||||
Name = "Sharpening",
|
||||
ApplyDelay = 500,
|
||||
Options = { "Off", "On" },
|
||||
CurrentValue = delegate()
|
||||
{
|
||||
var value = ImageSharpening.Enabled;
|
||||
if (value is null)
|
||||
return null;
|
||||
return value.Value ? "On" : "Off";
|
||||
},
|
||||
ApplyValue = delegate(object selected)
|
||||
{
|
||||
ImageSharpening.Enabled = (string)selected == "On";
|
||||
|
||||
var value = ImageSharpening.Enabled;
|
||||
if (value is null)
|
||||
return null;
|
||||
return value.Value ? "On" : "Off";
|
||||
}
|
||||
},
|
||||
new Menu.MenuItemWithOptions()
|
||||
{
|
||||
Name = "Colors",
|
||||
ApplyDelay = 1000,
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
- Reset `LibreHardware` on system resume to fix battery bug
|
||||
- Reset FPS limit if anything related to resolution changes
|
||||
- Retry Vangogh GPU detection 3 times
|
||||
- Add `Radeon Image Sharpening` option (Yes, or No)
|
||||
|
||||
## 0.3.x
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue