PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Legacy OpenGL: GL_LINES zeichnet nicht mehr


Gast
2019-05-06, 21:49:03
Hallo,

folgendes Szenario: Alte Software auf Basis Qt 4.7 zur Weiterentwicklung bekommen. Die benutzt rudimentäres, altes OpenGL zur Darstellung von Daten mittels GL_POINTS, GL_LINES, GL_TRIANGLES. Die Darstellungs-Front war eigentlich kein großer Teil der Änderungen, so dass dafür auch nicht viel Zeit eingeplant war. War auch alles bestens bis ich jüngst ein neu aufgesetztes Windows 10 bekommen habe. Seit dem zeichnet GL_LINES nicht mehr. Auf Win7 und einer älteren Win10 Installation ist alles bestens.

Hardware ist eine Intel HD4000. Treiber habe ich alle auf der Intel-Webseite verfügbaren durch.

Zwischen glBegin(GL_LINES) werden eigentlich nur glColor3f() und glVertex3f() aufgerufen.
Beim Aufruf von glEnd() wird der Fehler 0x502 "GL_INVALID_OPERATION" eingetragen.

Nun habe ich von OpenGL eigentlich keinen blassen Schimmer und bin etwas ratlos, wo ich anfangen soll zu suchen.

Jemand einen Tipp?

Viele Grüße,
Karl

Gast
2019-05-16, 20:24:17
Hallo,
Problem gelöst hoffe ich.
Nach glBegin wurde in einem makro noch ein glGetError aufgerufen. Außerdem hat ein glLineWidth gefehlt. Zum Haare raufen...

Warum funktioniert das bei win XP bis Win10 (Upgrade von win 7) problemlos und bei win 10 Neuinstallation geht's nicht? AMD zeichnet auch richtig.

Egal.

Viele Grüße,
Karl

Marscel
2019-05-17, 19:02:59
Glaub mir, OpenGL wird schon bei kleineren Sachen zwischen verschiedenen Treibern schnell seine WTF?-Momente bringen.

Dasselbe Programm zw. Windows, Linux und Mac bzw. Nvidia, AMD usw. wird bei "works for me" auf der einen Plattform lange nicht auf der anderen genauso funktionieren.

Gast
2019-05-27, 22:30:49
Hast du einen entsprechenden OpenGL Context, der mit den alten fixed function Pipeline Kommandos umgehen kann? Dazu muss der Context im compatibility mode oder so ähnlich sein, mit einem "normalen" neuen Context gehen die alten Kommandos nicht mehr, da muss man alles über shader machen.