diff options
Diffstat (limited to 'Ryujinx.Common')
| -rw-r--r-- | Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs | 6 | ||||
| -rw-r--r-- | Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapState.cs | 21 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs | 18 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs | 12 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInterop/DisplaySleep.cs (renamed from Ryujinx.Common/System/DisplaySleep.cs) | 8 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInterop/ForceDpiAware.cs (renamed from Ryujinx.Common/System/ForceDpiAware.cs) | 29 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInterop/GdiPlusHelper.cs (renamed from Ryujinx.Common/System/GdiPlusHelper.cs) | 20 | ||||
| -rw-r--r-- | Ryujinx.Common/SystemInterop/WindowsMultimediaTimerResolution.cs (renamed from Ryujinx.Common/System/WindowsMultimediaTimerResolution.cs) | 16 |
8 files changed, 67 insertions, 63 deletions
diff --git a/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs b/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs index d21d3555..c5be6e37 100644 --- a/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs +++ b/Ryujinx.Common/GraphicsDriver/NVThreadedOptimization.cs @@ -5,7 +5,7 @@ using System.Runtime.InteropServices; namespace Ryujinx.Common.GraphicsDriver { - static class NVThreadedOptimization + static partial class NVThreadedOptimization { private const string ProfileName = "Ryujinx Nvidia Profile"; @@ -19,8 +19,8 @@ namespace Ryujinx.Common.GraphicsDriver private const uint NvAPI_DRS_SaveSettings_ID = 0xFCBC7E14; private const uint NvAPI_DRS_DestroySession_ID = 0x0DAD9CFF8; - [DllImport("nvapi64")] - private static extern IntPtr nvapi_QueryInterface(uint id); + [LibraryImport("nvapi64")] + private static partial IntPtr nvapi_QueryInterface(uint id); private delegate int NvAPI_InitializeDelegate(); private static NvAPI_InitializeDelegate NvAPI_Initialize; diff --git a/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapState.cs b/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapState.cs index 7a14e616..3463d06c 100644 --- a/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapState.cs +++ b/Ryujinx.Common/Memory/PartialUnmaps/PartialUnmapState.cs @@ -1,6 +1,7 @@ using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Runtime.InteropServices.Marshalling; using System.Runtime.Versioning; using System.Threading; @@ -12,7 +13,7 @@ namespace Ryujinx.Common.Memory.PartialUnmaps /// State for partial unmaps. Intended to be used on Windows. /// </summary> [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct PartialUnmapState + public partial struct PartialUnmapState { public NativeReaderWriterLock PartialUnmapLock; public int PartialUnmapsCount; @@ -25,20 +26,22 @@ namespace Ryujinx.Common.Memory.PartialUnmaps public readonly static IntPtr GlobalState; [SupportedOSPlatform("windows")] - [DllImport("kernel32.dll")] - public static extern int GetCurrentThreadId(); + [LibraryImport("kernel32.dll")] + public static partial int GetCurrentThreadId(); [SupportedOSPlatform("windows")] - [DllImport("kernel32.dll", SetLastError = true)] - static extern IntPtr OpenThread(int dwDesiredAccess, bool bInheritHandle, uint dwThreadId); + [LibraryImport("kernel32.dll", SetLastError = true)] + private static partial IntPtr OpenThread(int dwDesiredAccess, [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle, uint dwThreadId); [SupportedOSPlatform("windows")] - [DllImport("kernel32.dll", SetLastError = true)] - public static extern bool CloseHandle(IntPtr hObject); + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs (UnmanagedType.Bool)] + public static partial bool CloseHandle(IntPtr hObject); [SupportedOSPlatform("windows")] - [DllImport("kernel32.dll", SetLastError = true)] - static extern bool GetExitCodeThread(IntPtr hThread, out uint lpExitCode); + [LibraryImport("kernel32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static partial bool GetExitCodeThread(IntPtr hThread, out uint lpExitCode); /// <summary> /// Creates a global static PartialUnmapState and populates the field offsets. diff --git a/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs b/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs index 3fcb1a25..ad022bdf 100644 --- a/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs +++ b/Ryujinx.Common/SystemInfo/MacOSSystemInfo.cs @@ -8,7 +8,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.Common.SystemInfo { [SupportedOSPlatform("macos")] - class MacOSSystemInfo : SystemInfo + partial class MacOSSystemInfo : SystemInfo { internal MacOSSystemInfo() { @@ -60,8 +60,8 @@ namespace Ryujinx.Common.SystemInfo private const string SystemLibraryName = "libSystem.dylib"; - [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)] - private static extern int sysctlbyname(string name, IntPtr oldValue, ref ulong oldSize, IntPtr newValue, ulong newValueSize); + [LibraryImport(SystemLibraryName, SetLastError = true)] + private static partial int sysctlbyname([MarshalAs(UnmanagedType.LPStr)] string name, IntPtr oldValue, ref ulong oldSize, IntPtr newValue, ulong newValueSize); private static int sysctlbyname(string name, IntPtr oldValue, ref ulong oldSize) { @@ -116,11 +116,11 @@ namespace Ryujinx.Common.SystemInfo return res; } - [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)] - private static extern uint mach_host_self(); + [LibraryImport(SystemLibraryName, SetLastError = true)] + private static partial uint mach_host_self(); - [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)] - private static extern int host_page_size(uint host, ref uint out_page_size); + [LibraryImport(SystemLibraryName, SetLastError = true)] + private static partial int host_page_size(uint host, ref uint out_page_size); [StructLayout(LayoutKind.Sequential, Pack = 8)] struct VMStatistics64 @@ -151,7 +151,7 @@ namespace Ryujinx.Common.SystemInfo public ulong TotalUncompressedPagesInCompressor; } - [DllImport(SystemLibraryName, CharSet = CharSet.Ansi, SetLastError = true)] - private static extern int host_statistics64(uint host_priv, int host_flavor, ref VMStatistics64 host_info64_out, ref uint host_info64_outCnt); + [LibraryImport(SystemLibraryName, SetLastError = true)] + private static partial int host_statistics64(uint host_priv, int host_flavor, ref VMStatistics64 host_info64_out, ref uint host_info64_outCnt); } }
\ No newline at end of file diff --git a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs index ffce665e..11f0785e 100644 --- a/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs +++ b/Ryujinx.Common/SystemInfo/WindowsSystemInfo.cs @@ -7,7 +7,7 @@ using Ryujinx.Common.Logging; namespace Ryujinx.Common.SystemInfo { [SupportedOSPlatform("windows")] - class WindowsSystemInfo : SystemInfo + partial class WindowsSystemInfo : SystemInfo { internal WindowsSystemInfo() { @@ -18,7 +18,7 @@ namespace Ryujinx.Common.SystemInfo private static (ulong Total, ulong Available) GetMemoryStats() { MemoryStatusEx memStatus = new MemoryStatusEx(); - if (GlobalMemoryStatusEx(memStatus)) + if (GlobalMemoryStatusEx(ref memStatus)) { return (memStatus.TotalPhys, memStatus.AvailPhys); // Bytes } @@ -45,8 +45,8 @@ namespace Ryujinx.Common.SystemInfo return Environment.GetEnvironmentVariable("PROCESSOR_IDENTIFIER").Trim(); } - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] - private class MemoryStatusEx + [StructLayout(LayoutKind.Sequential)] + private struct MemoryStatusEx { public uint Length; public uint MemoryLoad; @@ -64,9 +64,9 @@ namespace Ryujinx.Common.SystemInfo } } + [LibraryImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - private static extern bool GlobalMemoryStatusEx([In, Out] MemoryStatusEx lpBuffer); + private static partial bool GlobalMemoryStatusEx(ref MemoryStatusEx lpBuffer); private static ManagementObjectCollection GetWMIObjects(string scope, string query) { diff --git a/Ryujinx.Common/System/DisplaySleep.cs b/Ryujinx.Common/SystemInterop/DisplaySleep.cs index bad964b9..5a1f66f5 100644 --- a/Ryujinx.Common/System/DisplaySleep.cs +++ b/Ryujinx.Common/SystemInterop/DisplaySleep.cs @@ -1,9 +1,9 @@ using System; using System.Runtime.InteropServices; -namespace Ryujinx.Common.System +namespace Ryujinx.Common.SystemInterop { - public class DisplaySleep + public partial class DisplaySleep { [Flags] enum EXECUTION_STATE : uint @@ -13,8 +13,8 @@ namespace Ryujinx.Common.System ES_SYSTEM_REQUIRED = 0x00000001 } - [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] - static extern EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags); + [LibraryImport("kernel32.dll", SetLastError = true)] + private static partial EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE esFlags); static public void Prevent() { diff --git a/Ryujinx.Common/System/ForceDpiAware.cs b/Ryujinx.Common/SystemInterop/ForceDpiAware.cs index 8d19876e..f17612a6 100644 --- a/Ryujinx.Common/System/ForceDpiAware.cs +++ b/Ryujinx.Common/SystemInterop/ForceDpiAware.cs @@ -3,29 +3,30 @@ using System; using System.Globalization; using System.Runtime.InteropServices; -namespace Ryujinx.Common.System +namespace Ryujinx.Common.SystemInterop { - public static class ForceDpiAware + public static partial class ForceDpiAware { - [DllImport("user32.dll")] - private static extern bool SetProcessDPIAware(); + [LibraryImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + private static partial bool SetProcessDPIAware(); private const string X11LibraryName = "libX11.so.6"; - [DllImport(X11LibraryName)] - private static extern IntPtr XOpenDisplay(string display); + [LibraryImport(X11LibraryName)] + private static partial IntPtr XOpenDisplay([MarshalAs(UnmanagedType.LPStr)] string display); - [DllImport(X11LibraryName)] - private static extern IntPtr XGetDefault(IntPtr display, string program, string option); + [LibraryImport(X11LibraryName)] + private static partial IntPtr XGetDefault(IntPtr display, [MarshalAs(UnmanagedType.LPStr)] string program, [MarshalAs(UnmanagedType.LPStr)] string option); - [DllImport(X11LibraryName)] - private static extern int XDisplayWidth(IntPtr display, int screenNumber); + [LibraryImport(X11LibraryName)] + private static partial int XDisplayWidth(IntPtr display, int screenNumber); - [DllImport(X11LibraryName)] - private static extern int XDisplayWidthMM(IntPtr display, int screenNumber); + [LibraryImport(X11LibraryName)] + private static partial int XDisplayWidthMM(IntPtr display, int screenNumber); - [DllImport(X11LibraryName)] - private static extern int XCloseDisplay(IntPtr display); + [LibraryImport(X11LibraryName)] + private static partial int XCloseDisplay(IntPtr display); private static readonly double _standardDpiScale = 96.0; private static readonly double _maxScaleFactor = 1.25; diff --git a/Ryujinx.Common/System/GdiPlusHelper.cs b/Ryujinx.Common/SystemInterop/GdiPlusHelper.cs index c084c651..1001424d 100644 --- a/Ryujinx.Common/System/GdiPlusHelper.cs +++ b/Ryujinx.Common/SystemInterop/GdiPlusHelper.cs @@ -2,10 +2,10 @@ using System.Runtime.InteropServices; using System.Runtime.Versioning; -namespace Ryujinx.Common.System +namespace Ryujinx.Common.SystemInterop { [SupportedOSPlatform("windows")] - public static class GdiPlusHelper + public static partial class GdiPlusHelper { private const string LibraryName = "gdiplus.dll"; @@ -52,17 +52,17 @@ namespace Ryujinx.Common.System public IntPtr NotificationUnhook; } - [DllImport(LibraryName)] - private static extern int GdiplusStartup(out IntPtr token, in StartupInputEx input, out StartupOutput output); + [LibraryImport(LibraryName)] + private static partial int GdiplusStartup(out IntPtr token, in StartupInputEx input, out StartupOutput output); - [DllImport(LibraryName)] - private static extern int GdipCreateFromHWND(IntPtr hwnd, out IntPtr graphics); + [LibraryImport(LibraryName)] + private static partial int GdipCreateFromHWND(IntPtr hwnd, out IntPtr graphics); - [DllImport(LibraryName)] - private static extern int GdipDeleteGraphics(IntPtr graphics); + [LibraryImport(LibraryName)] + private static partial int GdipDeleteGraphics(IntPtr graphics); - [DllImport(LibraryName)] - private static extern int GdipGetDpiX(IntPtr graphics, out float dpi); + [LibraryImport(LibraryName)] + private static partial int GdipGetDpiX(IntPtr graphics, out float dpi); public static float GetDpiX(IntPtr hwnd) { diff --git a/Ryujinx.Common/System/WindowsMultimediaTimerResolution.cs b/Ryujinx.Common/SystemInterop/WindowsMultimediaTimerResolution.cs index d19fbe73..a4fbf0bd 100644 --- a/Ryujinx.Common/System/WindowsMultimediaTimerResolution.cs +++ b/Ryujinx.Common/SystemInterop/WindowsMultimediaTimerResolution.cs @@ -4,13 +4,13 @@ using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.Runtime.Versioning; -namespace Ryujinx.Common.System +namespace Ryujinx.Common.SystemInterop { /// <summary> /// Handle Windows Multimedia timer resolution. /// </summary> [SupportedOSPlatform("windows")] - public class WindowsMultimediaTimerResolution : IDisposable + public partial class WindowsMultimediaTimerResolution : IDisposable { [StructLayout(LayoutKind.Sequential)] public struct TimeCaps @@ -19,14 +19,14 @@ namespace Ryujinx.Common.System public uint wPeriodMax; }; - [DllImport("winmm.dll", EntryPoint = "timeGetDevCaps", SetLastError = true)] - private static extern uint TimeGetDevCaps(ref TimeCaps timeCaps, uint sizeTimeCaps); + [LibraryImport("winmm.dll", EntryPoint = "timeGetDevCaps", SetLastError = true)] + private static partial uint TimeGetDevCaps(ref TimeCaps timeCaps, uint sizeTimeCaps); - [DllImport("winmm.dll", EntryPoint = "timeBeginPeriod")] - private static extern uint TimeBeginPeriod(uint uMilliseconds); + [LibraryImport("winmm.dll", EntryPoint = "timeBeginPeriod")] + private static partial uint TimeBeginPeriod(uint uMilliseconds); - [DllImport("winmm.dll", EntryPoint = "timeEndPeriod")] - private static extern uint TimeEndPeriod(uint uMilliseconds); + [LibraryImport("winmm.dll", EntryPoint = "timeEndPeriod")] + private static partial uint TimeEndPeriod(uint uMilliseconds); private uint _targetResolutionInMilliseconds; private bool _isActive; |
