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/2371>
This commit is contained in:
Jakub Adam 2022-04-29 20:28:53 +02:00 committed by Tim-Philipp Müller
parent ea5983c82b
commit fe2a940898

View file

@ -509,6 +509,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 */