0

为什么有时在下一个电话后:

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);
}

什么问题?

4

1 回答 1

3

wglMakeCurrent如果不持有互斥锁,您将无法调用。你的FreeOpenGL功能就是这样做的。

于 2012-06-05T06:44:24.007 回答