我目前正在使用OpenGL和C ++中的Windows API编写图形应用程序。不幸的是,图像在某些条件下冻结,例如当我调整窗口大小时,和/或当我的鼠标不移动时。我可以在Win32中使用某种机制来确保帧不断被处理吗?
这是一些描述我的程序基本流程的伪代码
主循环
while(running)
{
if (PeekMessage(&Msg,NULL,0,0,PM_REMOVE))
{
if (Msg.message==WM_QUIT)
{
SetRunning(false);
}
else
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
}
else
{
SwapBuffers(deviceContext);
}
}
的WndProc
switch(msg)
{
case WM_CLOSE:
{
PostQuitMessage(0);
break;
}
case WM_SIZE:
{
ResizeScreen(LOWORD(lParam),HIWORD(lParam));
break;
}
}
return DefWindowProc(hwnd, msg, wParam, lParam);
编辑:我阅读了链接到的教程并进行了一些编辑,现在即使鼠标不移动,帧速率也是一致的。然而,当我移动或调整窗口大小时,图像仍会冻结,所以我很感激你的帮助。