Skip to content

Commit

Permalink
Merge pull request dolphin-emu#8182 from Techjar/imgui-reset-scissor
Browse files Browse the repository at this point in the history
VideoCommon/RenderBase: Reset scissor rectangle after ImGui rendering
  • Loading branch information
stenzek authored Jun 15, 2019
2 parents c34388f + 56c818b commit 9e1c38b
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions Source/Core/VideoCommon/RenderBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1148,6 +1148,15 @@ void Renderer::DrawImGui()
base_index += cmd.ElemCount;
}
}

// Some capture software (such as OBS) hooks SwapBuffers and uses glBlitFramebuffer to copy our
// back buffer just before swap. Because glBlitFramebuffer honors the scissor test, the capture
// itself will be clipped to whatever bounds were last set by ImGui, resulting in a rather useless
// capture whenever any ImGui windows are open. We'll reset the scissor rectangle to the entire
// viewport here to avoid this problem.
SetScissorRect(ConvertFramebufferRectangle(
MathUtil::Rectangle<int>(0, 0, m_backbuffer_width, m_backbuffer_height),
m_current_framebuffer));
}

std::unique_lock<std::mutex> Renderer::GetImGuiLock()
Expand Down

0 comments on commit 9e1c38b

Please sign in to comment.