From 03b6dab00688e4836817dafa4108baf7ca2a3cc1 Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Fri, 29 Apr 2022 20:28:53 +0200 Subject: [PATCH] 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: --- subprojects/gst-plugins-bad/sys/d3d11/gstd3d11screencapture.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11screencapture.cpp b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11screencapture.cpp index 56669f2..f1647e7 100644 --- a/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11screencapture.cpp +++ b/subprojects/gst-plugins-bad/sys/d3d11/gstd3d11screencapture.cpp @@ -516,6 +516,15 @@ public: context_handle->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); context_handle->IASetInputLayout(layout_.Get()); + D3D11_VIEWPORT VP; + VP.Width = static_cast(FullDesc.Width); + VP.Height = static_cast(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 */ -- 2.7.4