为什么有时在下次通话后:
TakeOpenGL();
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &TextureWidth);
glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &TextureHeight);
FreeOpenGL();
变量Texture *有不正确的值吗?
我正在使用OpenGL互斥体,它正在进行下一步:
void TakeOpenGL(){
OpenGL.Enter();
wglMakeCurrent(hDC, hRC);
}
void FreeOpenGL(){
OpenGL.Leave();
wglMakeCurrent(0, 0);
}
有什么问题?
答案 0 :(得分:3)
如果不持有互斥锁,则无法呼叫wglMakeCurrent
。您的FreeOpenGL
函数执行此操作。