[Gtk-sharp-list] GTK 3 OpenGL widget under Windows

Jarl Gullberg jarl.gullberg at gmail.com
Mon Sep 5 20:44:41 UTC 2016


Heya fellas,

I'm having some trouble updating an OpenTK-based GTK2/3 widget to pure
GTK3. It works great on Linux, but on Windows (using the alpha installer
for GTK#3) it fails to run.

All code relevant to my issue is available here:
https://github.com/WowDevTools/Everlook

In short, it's a drawing area onto which OpenGL draws its buffers. This
widget is housed in a normal GTK3 UI created via Glade. The issue presents
itself using gtk-sharp-2.99 on Windows 10.

I've narrowed the problem down to a section in the code where the widget
imports a native function from GDK, which allows it to get a drawable
handle from the widget's window's handle.

#region Windows Specific initalization
> private IWindowInfo InitializeWindows()
> {
>     IntPtr windowHandle =
> gdk_win32_drawable_get_handle(this.Window.Handle);
>     return Utilities.CreateWindowsWindowInfo(windowHandle);
> }
> [SuppressUnmanagedCodeSecurity, DllImport("libgdk-win32-2.0-0.dll")]
> public static extern IntPtr gdk_win32_drawable_get_handle(IntPtr d);
> #endregion


 Now, this library does not exist in the new GTK3 installation, and has
been renamed to libgdk-3-0.dll. I hoped it would be a simple matter of
changing the dll import statement to match the new library name, but
unfortunately I wasn't so lucky. gdk_win32_drawable_get_handle is no longer
defined in the library, and I haven't managed to see any obvious
replacements.

I attempted to use gdk_win32_window_get_handle (which returned a valid
handle) instead, but unfortunately this produced a GraphicsContextException
instead when the context was made current. The exception message was
equally unhelpful, and simply stated that it was unable to make the context
current.

If you know of the new way to get the handle of the drawable or another
solution to the issue, I would greatly appreciate it. If this question is
not applicable here, I would also very much appreciate some directions to
where I could get a hand.


Sincerely,
Jarl
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dot.net/pipermail/gtk-sharp-list/attachments/20160905/f93da481/attachment-0001.html>


More information about the Gtk-sharp-list mailing list