I think we have the bug in OpenGL texture engine. I’ve write application. It draws simple filled rectangle in separate thread, and then pushes image into main windows event loop through signal/slot system. Main widget requests thread to render new image every timer tick. After some time passed, it crashes deep into Qt core.
But, if you uncomment 2 lines in source code and compile/run it again, it will work perfectly! This lines changes inheritance to QWidget instead of QGLWidget.
//class OpenGLHashBug: public QWidget
//class OpenGLHashBug: public QWidget
class OpenGLHashBug: public QGLWidget
To copy to clipboard, switch view to plain text mode
and
//OpenGLHashBug::OpenGLHashBug(QWidget *parent, Qt::WFlags flags): QWidget(parent)
OpenGLHashBug
::OpenGLHashBug(QWidget *parent, Qt
::WFlags flags
): QGLWidget(parent
)
//OpenGLHashBug::OpenGLHashBug(QWidget *parent, Qt::WFlags flags): QWidget(parent)
OpenGLHashBug::OpenGLHashBug(QWidget *parent, Qt::WFlags flags): QGLWidget(parent)
To copy to clipboard, switch view to plain text mode
I think bug is near synchronization of QHashMap for OpenGL textures...
What do you think about it? Is it my mistake or not? 
P.S. Sorry for my bad English…
Bookmarks