Schönen guten Morgen.
Ich habe hier ein kleines Problem und verstehe nicht was ich falsch gemacht habe
Ich nutze die NSOpenGLView. Während das Fenster auf den Bildschirm gepackt wird, werden ja die 2 Methoden dieser Klasse aufgerufen: "prepareOpenGL" und "reshape". In der reshape-Methode setzte ich den Viewport mit "glViewport()" und frage diesen anschließend direkt ab mit "glGetIntegerv(GL_VIEWPORT, &intArray)". Soweit so gut, alles funktioniert korrekt.
Nun möchte ich z.B. in der "mouseMove-Mehtode" herausfinden, über welchem Objekt (über welcher Textur) sich die Maus befindet. Das mache ich mit der "gluProject()"-Funktion, welche unter anderem die Viewport-Werte als Parameter verlangt. Frage ich jetzt hier die Viewport-Werte mit "glGetIntegerv(GL_VIEWPORT, &intArray)" ab, so wird das Array nicht beschrieben und bleibt mit den initialisierten Werten gefüllt.
Ich verändere nun die Fenstergröße, die "reshape"-Methode der NSOpenGLView wird erneut aufgerufen und der Viewport wird ja erneut gesetzt. Die dierekte Ausgabe danach sagt mir, dass auch hier alles korrekt abläuft.
Führe ich jetzt die Prozedur in der "mouseMove"-Methode durch, so funktioniert es einwandfrei. Was habe ich hier vergessen oder falsch gemacht? Warum bekomme ich die Viewport-Werte in meiner "mouseMove"-Methode erst dann, wenn sich das Frame der NSOpenGLView verändert hat?
Vielen Dank im Voraus...
Ich habe hier ein kleines Problem und verstehe nicht was ich falsch gemacht habe
Ich nutze die NSOpenGLView. Während das Fenster auf den Bildschirm gepackt wird, werden ja die 2 Methoden dieser Klasse aufgerufen: "prepareOpenGL" und "reshape". In der reshape-Methode setzte ich den Viewport mit "glViewport()" und frage diesen anschließend direkt ab mit "glGetIntegerv(GL_VIEWPORT, &intArray)". Soweit so gut, alles funktioniert korrekt.
Nun möchte ich z.B. in der "mouseMove-Mehtode" herausfinden, über welchem Objekt (über welcher Textur) sich die Maus befindet. Das mache ich mit der "gluProject()"-Funktion, welche unter anderem die Viewport-Werte als Parameter verlangt. Frage ich jetzt hier die Viewport-Werte mit "glGetIntegerv(GL_VIEWPORT, &intArray)" ab, so wird das Array nicht beschrieben und bleibt mit den initialisierten Werten gefüllt.
Ich verändere nun die Fenstergröße, die "reshape"-Methode der NSOpenGLView wird erneut aufgerufen und der Viewport wird ja erneut gesetzt. Die dierekte Ausgabe danach sagt mir, dass auch hier alles korrekt abläuft.
Führe ich jetzt die Prozedur in der "mouseMove"-Methode durch, so funktioniert es einwandfrei. Was habe ich hier vergessen oder falsch gemacht? Warum bekomme ich die Viewport-Werte in meiner "mouseMove"-Methode erst dann, wenn sich das Frame der NSOpenGLView verändert hat?
Vielen Dank im Voraus...