-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Mouse cursor is captured at the wrong size, for non-default cursor sizes #2604
Comments
OBS doesn't really "capture" the mouse pointer, it just draws one exactly where the real one would be. And it doesn't respect your mouse pointer scaling settings. |
Yeah, it draws one, but it draws it incorrectly. That’s the bug. Also note how I report that for size 8 and beyond it draws the cursor both correctly and incorrectly. |
OK, I did some extensive testing on this today. Here's what I figured out.
As described by @VodBox (who helped me debug this):
I don't think the APIs we currently use in the helper functions (starting with GetCursorInfo) have the ability to give us correctly-sized textures. My guess is that as it's a legacy API (Windows 2000-era), it will always recieve a 32x32 icon for compatibility reasons, and getting more modern cursors should be done with newer APIs (ie GetFramePointerShape, Windows 8+). |
hi @WizardCM the gdi draw cursor is slow,will obs support the new api? |
@chllcy As this is relatively low priority and I don't have the skill, nobody is currently looking into this further. |
I am running into this as well, with my cursor being tiny in the capture - very frustrating. This used to happen w/ mixed scaling % but I'm on same scaling on both monitors and it's still an issue. |
I faced the same problem with OBS 26.1.1 64bits Win10. |
Confirmed that this only occurs when using DXGI Display Capture (Display Duplicator API). This does not happen when using the WGC Display Capture (Windows 10 1903+) and OBS Studio 25+, which we now recommend in nearly all cases. |
It's 2023 and I still see this the capture selection in OBS is this: OBS 29.13 was set to automatic (and I'm using a Geforce 3090). Why is it defaulting to a non recommended capturing method if what @RytoEX said still applies? I had to do an internet search to figure out why the cursor was capturing the wrong size. |
I said that we recommend "Windows 10 (1903 and up)" "in nearly all cases". If using it causes a problem for you and your setup, and the other one does not, then we don't recommend it. In nearly all other cases (default cursor size), it works just fine and in some cases does not suffer from issues that "DXGI Desktop Duplication" does (like not working on laptops). |
Platform
Operating system and version: Windows 10 (20H1; version 2004, build 19041.172)
OBS Studio version: 25.0.1 (64-bit, windows)
Hardware: Surface Book, high-DPI screen (2× scaling factor, potentially relevant here).
Expected Behavior
OBS Studio should capture the mouse cursor with the same size and appearance as it has on screen.
(Sorry, no screenshot, because Windows doesn’t capture the cursor in screenshots, and ShareX which does suffers from much the same bug, and I’m too lazy right now to synthesise equivalent screenshots.)
Current Behavior
My mouse cursor is captured in the correct colour, but not at the correct size.
At sizes 1–7, OBS Studio draws the cursor at size 1.
At sizes 8–15, OBS Studio draws the cursor at the true size, then at size 1 on top of that.
Steps to Reproduce
Additional Information
Related issues for which I shan’t file bugs:
The bug I am reporting here was previously reported in #2258, but rapidly closed because it was improperly filed.
The text was updated successfully, but these errors were encountered: