저는 D3D 앱에서 고정 60fps를 달성하고 vsync를 사용하여이를 수행하려고합니다. I는 다음과 같이 설정 루프를했습니다 :DirectX VSYNC 부정확
while(isRunning)
{
ProcessMessages(window);
renderer->context->ClearRenderTargetView(renderer->renderTarget, color);
renderer->swapChain->Present(1, 0);
end = GetCurrentTick();
double ms = GetElapsedMilliseconds(start, end);
start = end;
}
// Function definitions
inline LONGLONG GetCurrentTick()
{
LARGE_INTEGER count;
QueryPerformanceCounter(&count);
return count.QuadPart;
}
inline double GetElapsedMilliseconds(LONGLONG start, LONGLONG end)
{
return (1000.0 * (double)(end - start))/(double)freq.QuadPart;
}
내가 "MS는"변수는 항상 동일하게 볼 기대하지만, 실제로 17 이상 뭔가 약 16.1 MS에서 변화하는 것 몇 가지 잘못된 가정이 있는가 I m 코딩을하거나 그냥 코딩 오류가 있습니까? 도움에 미리 감사드립니다.
DXGI_SWAP_EFFECT_DISCARD를 사용하고 있습니다. – user1760770