为什么有时在下一次通话之后:
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);
}
什么问题?
最佳答案
您必须按住互斥锁才能调用wglMakeCurrent
。您的FreeOpenGL
函数可以执行此操作。