我有以下程序
void allocVars(){
m_window = new GLWindow(); //glGenTexture() is called //CRASH!
m_window->Init(m_cam.w, m_cam.h, "Window Name");
}
void glInit()
{
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutDisplayFunc(display);
glBlendFunc(GL_SRC_ALPHA, GL_ONE); //CRASH!
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glInit(); // CRASH HERE
camInit(); //ok
allocVars(); // CRASH HERE
trackingInit();
glutMainLoop();
return 0;
}
根据其他文章,为了进行GL调用,我必须先有一个有效的OpenGL上下文。(由于Windows中的奇怪原因,即使上下文还无效,它也能正常工作。)
这就是为什么我把所有东西都移到glutinit和glinit函数之后,但是这个应用程序总是在gl函数中崩溃,比如
glgentextures()在allocvars()内;在glwindow()内;或在
glinit()内部的glblendfunc()。
我想知道这里缺少什么和/或如何检查我是否有有效的OpenGL上下文?
提前谢谢