GLXHelper.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using System.Runtime.Versioning;
  4. namespace Ryujinx.Graphics.OpenGL.Helper
  5. {
  6. [SupportedOSPlatform("linux")]
  7. internal static partial class GLXHelper
  8. {
  9. private const string LibraryName = "glx.dll";
  10. static GLXHelper()
  11. {
  12. NativeLibrary.SetDllImportResolver(typeof(GLXHelper).Assembly, (name, assembly, path) =>
  13. {
  14. if (name != LibraryName)
  15. {
  16. return IntPtr.Zero;
  17. }
  18. if (!NativeLibrary.TryLoad("libGL.so.1", assembly, path, out IntPtr result))
  19. {
  20. if (!NativeLibrary.TryLoad("libGL.so", assembly, path, out result))
  21. {
  22. return IntPtr.Zero;
  23. }
  24. }
  25. return result;
  26. });
  27. }
  28. [LibraryImport(LibraryName, EntryPoint = "glXGetCurrentContext")]
  29. public static partial IntPtr GetCurrentContext();
  30. }
  31. }