Funktionspointer
-
Hi,
Ich bekomme meine Funktion irgendwie nicht in die glutDisplayFunc() rein.
Die funktion ist deklariert als:
void glutDisplayFunc(void (*func)(void));
Nun will ich das Objektorientiert wrappen:
void GLRenderer::render(void){ ... } //der aufruf glutDisplayFunc(render); //funktioniert nicht //fehler = argument of type `void (GLRenderer::)()' does not match `void (*)()'Nutze ich jedoch ne Renderfunktion im C - Style (also ausserhalb der Klasse), gehts. Hat das damit zu tun, das glut in C programmiert ist ? Warum ist GLRenderer->render kein gültiger Pointer für diese Funktion ?
-
Die Memberfunktion muss static sein!! Aber dann kannst du nicht mehr auf die Membervariablen zugreifen.

-
Mist, sowas in der Art hab ich schon befürchtet

-
Inside your display function, you can use glutGetWindow to determine which
window is the current window, and from that you should be able to work out
which object you are dealing with.
-
yusha schrieb:
Nutze ich jedoch ne Renderfunktion im C - Style (also ausserhalb der Klasse), gehts. Hat das damit zu tun, das glut in C programmiert ist ? Warum ist GLRenderer->render kein gültiger Pointer für diese Funktion ?
Weil es sich hierbei um eine Elementfunktion handelt und bei solchen wird der
this-Zeiger implizit mitgefuehrt.mfg
v R