wxGLCanvas und OpenGL 2.1 GLSL



  • Hey,

    Ich versuche momentan wxGLCanvas mit OpenGL 2.1 und GLSL (vertex und fragment shadern) zu verwenden. Zunaechst habe ich ein funktionierenden minimal Test mit Glut und OpenGL erstellt, funktioniert soweit. Danach habe ich den OpenGL teil der Applikation in den wxGLCanvas uebertragen um Fehler zu vermeiden. Problem ist, ausser dem Hintergrund wird nichts gezeichnet, unterstuetzt wxGLCanvas ueberhaupt OpenGL 2.1 und shader?

    Genutzt habe ich den Code von diesem Link, natuerlich alles korrekt uebertragen und Glut entfernt.

    http://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Introduction

    Woran koennte es liegen das ausser dem Hintergrund, nichts auf der Flaeche erscheint?

    Ich verwende OpenGL 2.1, da ich fuer ein bestimmtes System programmiere das leider kein moderneres OpenGL unterstuetzt.



  • Nach meiner Erfahrung erstellt wxWidgets den Canvas in der Version, die deine Grafikkarte kann. Nur ein purer Context ist nicht möglich, sprich ohne Backwards Compatibility.

    Wenn der Code richtig implementiert ist, sollte das also funzen.
    Aber frag doch den Context einfach mal welche Version er hat :).

    char* s = (char*)glGetString(GL_VERSION);
    wxString version(s);
    wxMessageBox(version);
    


  • Geloest...

    Wie? Das Zielsystem, auf dem auch entwickelt wird, unterstuetzt nur OpenGL 1.5. Was natuerlich erklaert, warum der Hintergrund geaendert wird, aber kein Polygon gezeichnet wird...

    Danke trotzdem fuer den Denkanstoss. Manchmal ist es einfach das offensichtliche.



  • Kniffeln? schrieb:

    Geloest...

    Wie? Das Zielsystem, auf dem auch entwickelt wird, unterstuetzt nur OpenGL 1.5. Was natuerlich erklaert, warum der Hintergrund geaendert wird, aber kein Polygon gezeichnet wird...

    Danke trotzdem fuer den Denkanstoss. Manchmal ist es einfach das offensichtliche.

    Was für ein Zielsystem ist das denn? Bist du dir sicher, dass das nicht durch neuere Videotreiber gelöst werden kann? Die OpenGL.dll kommt ja mit dem Treiber und ersetzt die vom OS.


Anmelden zum Antworten