On 10/06/2016 05:18 PM, Chalix wrote:
On Thursday, 6 October 2016 at 13:35:01 UTC, Mike Parker wrote:
So, change DerelictGL3.load to DerelictGL.load, then add a call to
DerelictGL.reload after creating and activating the context.

Thank you! That fixed the segmentation fault problem and the crash :)

But I still struggle with the right Context...

if I do something like this

    DerelictGL.load();
    area.makeCurrent();
    DerelictGL.reload();

I get an (runtime) error (on the terminal where I run my application):

(LibraryTest:2984): Gtk-CRITICAL **: gtk_gl_area_make_current: assertion
'gtk_widget_get_realized (widget)' failed
derelict.util.exception.DerelictException@gl3.d(85): DerelictGL3.reload
failure: An OpenGL context is not currently active.
[...]


After all, I really don't know, what a GLContext is, what I need it for
and how to use it. If somebody can explain it to me, I would be happy! I
didn't find anything about it on the Internet, but I like to know, whats
going on behind my code...

I will keep on playing around with all the context functions, maybe I
find something by accident that works xD


When you don't register an callback for the createContext signal (addOnCreateContext), gtk does the following internally:

```
context = area.getWindow().createGlContext();
```
to get an context that renders to the GLArea.

gdk.GLContext is an platform independent abstraction for the context you would normally use with openGL. like the one's returned by wglCreateContext or glxCreateContext.

makeCurrent() sets that context as the one that is rendered to.
realize() i think makes sure the context is initialized, but makeCurrent() also calls realize, so makeCurrent is probably the one you want to use.

--
Mike Wey

Reply via email to