【发布时间】:2011-11-17 20:51:13
【问题描述】:
我目前正在使用 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);
编辑:我阅读了 Kol 链接的教程并进行了一些编辑,现在即使鼠标不移动,帧速率也是一致的。但是,当我移动或调整窗口大小时,图像仍会冻结,因此我将不胜感激。
【问题讨论】:
标签: winapi opengl focus window