QGLWidget ceased to work on Windows in Qt 5.7?
-
@Violet-Giraffe
well if its a bug in Qt it must
be with certain hardware or drivers as i cannot make sample fail with the
hardware with win 10, i have at work.You can look in
https://bugreports.qt.io/secure/Dashboard.jspa
if it has been reported before. -
@mrjj Indeed, it seems to occur only on some systems, but a bug nevertheless. I didn't find a corresponding issue in the tracker. I would report it but don't see a point - they probably won't be able to reproduce it as well. Seeing that the bugs I reported 2 years ago still aren't fixed, I'm not enthusiastic about spending more time trying to make Qt better. Just need to find the quickest way to restore functionality of my application.
-
Well I had hoped I could reproduce it
as clear reproduction steps is needed.However, since QGLWidget is considered obsolete in 5.7,
I doubt the devs will spend much energy to correct it anyway. -
The problem with
hellogl
example is not inQGLWidget
. I'm about to tryQOpenGLWidget
instead, and I'm sure it will fail just the same. It's theQOpenGLFunctions_xx
classes that are broken, although it doesn't explain why my application stopped working. I never used these classes. -
No functions are loaded into
QOpenGLFunctions_x_x::d_x_x_Deprecated
tables. That's d_1_0_Deprecated, d_1_2_Deprecated and d_1_4_Deprecated. And I need some functions from there. So it makes no difference what kind of widget I will use, the old or the new one.Unless I make direct OpenGL calls, of course, but direct calls are broken with Qt 5.7 as well. I don't understand why, but they are.
-
Update: the required functions are loaded in Qt 5.5 - but not in 5.7. I have Qt sources, I can debug if someone tells me where to look.
-
direct calls are broken with Qt 5.7 as well. I don't understand why, but they are.
Then the problem (probably) has little to do with Qt. Qt only resolves the functions' addresses for you. List the symbols from your OpenGL library (the one you link against), see if it exports the deprecated functions you want to use.
Update: the required functions are loaded in Qt 5.5 - but not in 5.7. I have Qt sources, I can debug if someone tells me where to look.
<Qt source dir>/qtbase/src/gui/opengl
-
@kshegunov said in QGLWidget ceased to work on Windows in Qt 5.7?:
List the symbols from your OpenGL library (the one you link against), see if it exports the deprecated functions you want to use.
I link with Windows default OpenGL32.lib. It's the same in both cases.
<Qt source dir>/qtbase/src/gui/opengl
That's not helpful.
-
@Violet-Giraffe said in QGLWidget ceased to work on Windows in Qt 5.7?:
I link with Windows default OpenGL32.lib. It's the same in both cases.
There's no such thing. The lib file is part of the Windows SDK.
Are you using a statically built Qt? How did you install, Qt may be linked against another GL, or it may be resolving the functions at runtime (which is rather probable on desktop). Just list the symbols fromopengl32.dll
and see what's exported.That's not helpful.
How so? It is where you should look if you intend to debug ...
-
@kshegunov said in QGLWidget ceased to work on Windows in Qt 5.7?:
The lib file is part of the Windows SDK.
My point exactly! It's the same no matter which Qt version I build with. I have a normal dynamic Qt obtained with the online installer, no tricks.
Moreover, I only have one instance of opengl32.dll on my computer so there's no point in checking its exports - we already know it works and the problem is somewhere in Qt, most likely.How so? It is where you should look if you intend to debug ...
Yeah, but I need to know where to set breakpoints to debug OpenGL 1.0 linking issue, not which folder the sources are in.
-
Hi! Can you tell us which OpenGL core profile you're using?
-
@Wieland
I've tried 1.1 and 2.0. I need 2.0 eventually. I even specified it withsetFormat
- to no avail still.
21/23