d3d11screencapture: Set viewport when drawing mouse cursor

If there weren't any moved/dirty regions in the captured frame, the
viewport of the ID3D11DeviceContext would be left at whatever previous
value it had, which could lead to the cursor being drawn in a wrong
position and/or in an incorrect size.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2362>
This commit is contained in:
Jakub Adam 2022-04-29 20:28:53 +02:00
parent f4f342aa78
commit 03b6dab006

View file

@ -516,6 +516,15 @@ public:
context_handle->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
context_handle->IASetInputLayout(layout_.Get());
D3D11_VIEWPORT VP;
VP.Width = static_cast<FLOAT>(FullDesc.Width);
VP.Height = static_cast<FLOAT>(FullDesc.Height);
VP.MinDepth = 0.0f;
VP.MaxDepth = 1.0f;
VP.TopLeftX = 0.0f;
VP.TopLeftY = 0.0f;
context_handle->RSSetViewports(1, &VP);
context_handle->Draw(NUMVERTICES, 0);
/* Unbind srv and rtv from context */