В настоящее время я программирую графическое приложение с OpenGL и Windows API на C ++.К сожалению, изображение зависает при определенных условиях, например, когда я изменяю размер окна и / или когда моя мышь не движется.Есть ли какой-то механизм, который я могу использовать в Win32, чтобы гарантировать, что кадры постоянно обрабатываются?
Вот некоторый псевдокод, описывающий основной поток моей программы
Main Loop
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, связанный с и внес некоторые изменения, и теперь частота кадров остается неизменной, даже когда мышь не движется.Однако изображение по-прежнему замирает, когда я перемещаю окно или изменяю его размер, поэтому буду признателен за помощь.