Jinoh Kang (@iamahuman) commented about dlls/mfmediaengine/tests/mfmediaengine.c:
ID3D11DeviceContext_ClearState(d3d11_dev_ctx);
ID3D11DeviceContext_RSSetState(d3d11_dev_ctx, d3d11_rs);
ID3D11DeviceContext_OMSetRenderTargets(d3d11_dev_ctx, 1, &d3d11_rtv, NULL);
ID3D11DeviceContext_VSSetShader(d3d11_dev_ctx, d3d11_vs, NULL, 0);
ID3D11DeviceContext_PSSetShader(d3d11_dev_ctx, d3d11_ps, NULL, 0);
ID3D11DeviceContext_PSSetShaderResources(d3d11_dev_ctx, 0, 1, &d3d11_srv);
ID3D11DeviceContext_IASetPrimitiveTopology(d3d11_dev_ctx, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
ID3D11DeviceContext_RSSetViewports(d3d11_dev_ctx, 1, &viewport);
ID3D11DeviceContext_Draw(d3d11_dev_ctx, 3, 0);
ID3D11DeviceContext_Release(d3d11_dev_ctx);
hr = IDXGISwapChain_Present(swapchain, 1, 0);
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
Sleep(16); /* Simulate a framerate of ~60FPS */
```suggestion:-0+0 wait_for_events(16); /* Simulate a framerate of ~60FPS */ ```
where
```c static void wait_for_events(DWORD timeout) { DWORD start = GetTickCount(), elapsed; BOOL has_msg; MSG msg;
while (1) { if ((has_msg = PeekMessageW(&msg, NULL, 0, 0, PM_REMOVE))) { TranslateMessage(&msg); DispatchMessageW(&msg); } elapsed = GetTickCount() - start; if (elapsed >= timeout) break; if (!has_msg && MsgWaitForMultipleObjects(0, NULL, FALSE, timeout - elapsed, QS_ALLINPUT) != WAIT_OBJECT_0) break; } } ```