aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx/Program.cs')
-rw-r--r--Ryujinx/Program.cs30
1 files changed, 29 insertions, 1 deletions
diff --git a/Ryujinx/Program.cs b/Ryujinx/Program.cs
index a91f9aa5..be790a48 100644
--- a/Ryujinx/Program.cs
+++ b/Ryujinx/Program.cs
@@ -29,7 +29,11 @@ namespace Ryujinx
public static string ConfigurationPath { get; set; }
- [DllImport("libX11")]
+ public static string CommandLineProfile { get; set; }
+
+ private const string X11LibraryName = "libX11";
+
+ [DllImport(X11LibraryName)]
private extern static int XInitThreads();
[DllImport("user32.dll", SetLastError = true)]
@@ -37,6 +41,30 @@ namespace Ryujinx
private const uint MB_ICONWARNING = 0x30;
+ static Program()
+ {
+ if (OperatingSystem.IsLinux())
+ {
+ NativeLibrary.SetDllImportResolver(typeof(Program).Assembly, (name, assembly, path) =>
+ {
+ if (name != X11LibraryName)
+ {
+ return IntPtr.Zero;
+ }
+
+ if (!NativeLibrary.TryLoad("libX11.so.6", assembly, path, out IntPtr result))
+ {
+ if (!NativeLibrary.TryLoad("libX11.so", assembly, path, out result))
+ {
+ return IntPtr.Zero;
+ }
+ }
+
+ return result;
+ });
+ }
+ }
+
static void Main(string[] args)
{
Version = ReleaseInformations.GetVersion();