c++ - Setting Up OpenGL in Qt for QOpenGLWidget -
i have old opengl code created glew. trying port code qt 5.4, old code contains mesh
, shader
, , texture
classes.
what have far in qt, default main window , visualizer
class inherits qopenglwidget
, qopenglfunctions
. able display widget black box setting mainwindow
parent of visualizer
.
in order compile old opengl code uses functions glgenvertexarrays();
made classes inherit qopenglfunctions_3_3_core
. call initializeopenglfunctions()
necessary such inside initializegl()
of visualizer
class , in constructors of mesh
, shader
, , texture
.
it compiles well. when run program crashes when function glgenvertexarrays();
called when trying create mesh
object.
i guessing there memory violation of sort. have setup opengl context in qt manually qopenglwidget
?
how can setup opengl 3.3 qt can use qopenglwidget
render opengl content , use of opengl functions such glgenvertexarrays()
?
i came interesting solution. perhaps obvious didn't see @ first. created single static variable of type qopenglfunctions_3_3_core
inside dummy class, gl
, , used through out entire code whenever opengl function needed.
for example
class gl{ public: static qopenglfunctions_3_3_core funcs; } ... class visualizer : public qopenglwidget{ ... void initializegl(){ gl::funcs.initializeopenglfunctions(); } ... } ... // example usage gl::funcs.glgenvertexarrays(1, &id); gl::funcs.glclearcolor(1.f, 1.f, 1.f, 1.f);
Comments
Post a Comment