Возникла проблема с использованием библиотеки GLWigdet при разработке на MonoDevelop. В ней есть такой код:
// IWindowInfo
if (Configuration.RunningOnWindows)
{
IntPtr windowHandle = gdk_win32_drawable_get_handle(GdkWindow.Handle);
windowInfo = OpenTK.Platform.Utilities.CreateWindowsWindowInfo(windowHandle);
}
else if (Configuration.RunningOnMacOS)
{
IntPtr windowHandle = gdk_x11_drawable_get_xid(GdkWindow.Handle);
bool ownHandle = true;
bool isControl = true;
windowInfo = OpenTK.Platform.Utilities.CreateMacOSCarbonWindowInfo(windowHandle, ownHandle, isControl);
}
else if (Configuration.RunningOnX11)
{
IntPtr display = gdk_x11_display_get_xdisplay(Display.Handle);
int screen = Screen.Number;
IntPtr windowHandle = gdk_x11_drawable_get_xid(GdkWindow.Handle);
IntPtr rootWindow = gdk_x11_drawable_get_xid(RootWindow.Handle);
IntPtr visualInfo;
if (graphicsMode.Index.HasValue)
{
XVisualInfo info = new XVisualInfo();
info.VisualID = graphicsMode.Index.Value;
int dummy;
visualInfo = XGetVisualInfo(display, XVisualInfoMask.ID, ref info, out dummy);
}
else
{
visualInfo = GetVisualInfo(display);
}
windowInfo = OpenTK.Platform.Utilities.CreateX11WindowInfo(display, screen, windowHandle, rootWindow, visualInfo);
XFree(visualInfo);
}
else throw new PlatformNotSupportedException();
На сколько я понимаю, в моем случае должен срабатывать последний вариант else if (Configuration.RunningOnX11), однако этого не происходит. Сам OpenTK.Configuration выглядит так:
OpenTK.Configuration OpenTK.Configuration <type>
RunningOnAndroid false bool
RunningOnLinux true bool
RunningOnMacOS false bool
RunningOnMono true bool
RunningOnSdl2 false bool
RunningOnUnix true bool
RunningOnWindows false bool
RunningOnX11 false bool
utsname OpenTK.Configuration.utsname <type>
Non-public members