Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Di Mai 14, 2024 21:16

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
BeitragVerfasst: Mi Aug 24, 2011 16:25 
Offline
DGL Member

Registriert: Mo Apr 27, 2009 11:19
Beiträge: 35
Hallo liebe Leute,

nach längerem Hin und Her, scheint sich wohl eine Möglichkeit ergeben zu haben, GUI-Widgets auf ein OpenGL-Fenster zu legen.
Hier

Laut Beschreibung:
All that’s needed is to set a QGLWidget as viewport on the graphics view, override QGraphicsScene::drawBackground() to do the OpenGL rendering, and add widgets and other graphics items to the graphics scene as usual.

Den Code habe ich mehr oder weniger verstanden. Aber mir ist nicht ganz klar wie ich mein eigenes QGLWidget einbinde. Also in der main wird einfach folgendes gemacht.
Code:
  1.  
  2. GraphicsView view;
  3.     view.setViewport(new QGLWidget(QGLFormat(QGL::SampleBuffers)));
  4.  

Ich dachte ich könnte als viewport mein eigenes GLWidget integrieren (in dem ich den ganzen Code mit den typischen OpenGL-Befehlen habe)

Code:
  1.  
  2. void initializeGL();
  3. void paintGL();
  4. void resizeGL(int width, int height);)
  5.  


Allerdings ging das bei mir irgendwie nicht.

Auch die QGraphicsScene::drawBackground()-Funktion wird mir nicht ganz klar. Diese modelt wohl den OpenGL-Code in eine Art Hintergrund um, um dann darauf die die GUI-Widgets zu legen. Allerdings wird da irgendwie eine Painter-Engine erstellt. Wozu ich diese brauche, ist mir schleierhaft.

Code:
  1.  
  2.  if (painter->paintEngine()->type() != QPaintEngine::OpenGL
  3.         && painter->paintEngine()->type() != QPaintEngine::OpenGL2)
  4.     {
  5.         qWarning("OpenGLScene: drawBackground needs a QGLWidget to be set as viewport on the graphics view");
  6.         return;
  7.     }
  8.  


In dieser Funktion befindet sich auch OpenGL-Code. Aber Dinge wie swapBuffers() kann man dort nicht aufrufen.Also muss doch der eigentliche OpenGL-Code (mit seinen typischen Funktionen und Anwendungen) irgendwo extern gelagert sein.

Ich danke euch schonmal....


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.029s | 17 Queries | GZIP : On ]