On Monday, 3 October 2016 at 18:00:53 UTC, Mike Wey wrote:
The signal functions can be found in the gobject.Signals module.
But you should use the GLArea.addOnCreateContext / addOnRender
/ addOnResize functions to attach a D delegate to the signal.
You will still need to link with the OpenGL libraries or use
someting like Derelict.
Hi Mike, thanks for your fast answer again!
I just read about this delegates and I liked the concept. I
experimented with it for a while and read a bit on the Internet,
but I still don't get it working...
My minimal example looks like this:
import gtk.Main;
import gtk.MainWindow;
import gtk.GLArea;
import glgdk.GLContext;
void main(string[] args)
{
bool render(GLContext context, GLArea area)
{
return true;
}
Main.init(args);
MainWindow win = new MainWindow("Hello World");
GLArea area = new GLArea();
area.addOnRender(&render,cast(GConnectFlags)0);
win.add(area);
win.showAll();
Main.run();
}
If I compile it, I get this error:
$ dmd main.d -I/usr/local/include/d/gtkd-3 -L-lgtkd-3
main.d(27):
Error: function gtk.GLArea.GLArea.addOnRender
(bool delegate(GLContext, GLArea) dlg, GConnectFlags connectFlags
= cast(GConnectFlags)0)
is not callable using argument types
(bool delegate(GLContext context, GLArea area), GConnectFlags)
I cant see, what I am doing wrong... Someone else sees the error?
Tomorrow I try to subclass the GLArea, if this works I am happy
:) But I'd like to use the handler stuff.
Ah, and I know now, that I have to link against the GL and GLU
library, but which module do I have to import, to make the
functions visible for the compiler? Or do I need another binding
therefore?