ghorwin / OpenGLWithQt-Tutorial

A Qt and OpenGL tutorial showing how to use OpenGL within Qt Widgets applications (including input handling and render-on-demand)
https://ghorwin.github.io/OpenGLWithQt-Tutorial
BSD 3-Clause "New" or "Revised" License
78 stars 32 forks source link

Tutorial_01: Destructor of TriangeWindow - makeCurrent fails #6

Open petricf opened 1 day ago

petricf commented 1 day ago

Kommentar: Im Code mußten einige includes geändert werden da diese ab Qt6 nach QtOpenGL verschoben wurden.

Im Destructor von TriangleWindow ist folgender Aufruf:

m_context->makeCurrent (this);

Ergebnis: false

Die Grafik selbst ist ok.

Irgendeine Idee wo der Hund begraben ist ?

Umgebung: OS: Linux Mint 22 und Debian 12 QtCreator+Qt von qt.io Qt 6.7.3 und 6.6.3

petricf commented 1 day ago

Ein vorheriger Aufruf vom QOpenGLContext::currentContext liefert 0x0.

ghorwin commented 23 hours ago

Hi petricf,

danke für den Hinweis. Aktuell läuft mein Code nur unter 5.15.x, Qt 6 habe ich bisher noch nicht angefasst. Danke aber für den Hinweis - bei der Portierung des Quelltextes zu Qt 6 wird das sicher helfen.

Falls Du den Code selber erfolgreich portierst, wäre ich über ein Pull-Request dankbar!

petricf commented 23 hours ago

Für Tutorial_01 kann ich dir - bis auf den hier genannten Fehler - den Code anbieten. Reicht das ?

ghorwin commented 22 hours ago

Klar, kannst Du ein Pull-Request machen, dann teste ich das mal?

petricf commented 22 hours ago

Ich muß mal schauen wir das von innerhalb QtCreator funktioniert. Ich habe bisher noch nicht so viel mit GIT gemacht.

Oder hast du da ein "schnelles" Kochbuch (clone, change file, pull-request) auf cmdline ?

ghorwin commented 22 hours ago

Hier das Kochbuch:

  1. auf der github Seite https://github.com/ghorwin/OpenGLWithQt-Tutorial auf "Fork" klicken und unter Deinem Konto eine Kopie des Repositories erstellen
  2. dieses Repository nun lokal klonen (in einem anderen Verzeichnis als mein Repo)
  3. Deine bisherigen Änderungen (geänderte Dateien) in dieses Repo übertragen und committen und pushen
  4. Auf der Github-Seite deines geforkten Repositories den Link "Pull Request" auswählen und dann "Pull request erstellen"

Das wär's schon.

ghorwin commented 22 hours ago

Ansonsten kannst Du auch die geänderten Dateien einfach an ein Ticket ranhängen.

petricf commented 21 hours ago

Nachdem ich nachgeschaut habe sind eigentlich nur 2 Dateien zu ändern:

OpenGL-Tutorial1.pro (opengl hinzufügen):

QT += core gui opengl

In OpenGLWindow.cpp:

include <QtOpenGL/QOpenGLPaintDevice>

statt

include

Wobei man - der Einheitlichkeit wegen - den anderen QOpenGL... Includes auch QtOpenGL/ voranstellen könnte.

Getestet mit Qt 6.6.3 - den o.g. Fehler inklusive. Bare metal i7-6700 / Intel HD 530 Grafik.

Output von "glxinfo | grep renderer":

GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, GLX_MESA_swap_control, GLX_MESA_copy_sub_buffer, GLX_MESA_query_renderer, GLX_MESA_swap_control, Extended renderer info (GLX_MESA_query_renderer): OpenGL renderer string: Mesa Intel(R) HD Graphics 530 (SKL GT2)

Ich hoffe es hilft.