为什么有时在下一次通话之后:

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函数可以执行此操作。

09-05 06:40