devkitPro / SDL

Simple Directmedia Layer
https://libsdl.org
zlib License
11 stars 12 forks source link

Wii: SDL2 cursor always stays onscreen #67

Open Mode8fx opened 3 months ago

Mode8fx commented 3 months ago

Bug Report

What's the issue you encountered?

Using the latest version of SDL2 (2.28.5-1), the Wii remote cursor always stays onscreen, even when the remote is not pointed at the screen.

How can the issue be reproduced?

Compile a Wii game using SDL2 and do not hide the cursor. It will always stay onscreen.

Environment?

N/A

Additional context?

This bug was introduced at some point within the last month, as a game I compiled on March 9th did not have this bug, but that same code compiled using the latest SDL2 does.

mardy commented 3 months ago

Hi! Yes, this got removed with commit cf197902af6c31dd4a867e9abfb3b35f81089e5d.

It should not be difficult to bring back this functionality, though (as I wrote in that commit message) I'm not sure of it. Do you have some use-case in mind? What's wrong in leaving the cursor on the screen?

Mode8fx commented 3 months ago

Hi! Yes, this got removed with commit cf19790.

It should not be difficult to bring back this functionality, though (as I wrote in that commit message) I'm not sure of it. Do you have some use-case in mind? What's wrong in leaving the cursor on the screen?

My concern is that if you have a pointer-oriented game and move the pointer offscreen because you moved your hand away, it looks and feels unnatural to still have it sitting near the edge of the screen when official Wii games don’t share that behavior (hence why I assumed it was a bug). Also, while a developer could call SDL_ShowCursor() manually, the current behavior can still mess with certain use cases. For example, my game includes a hybrid control scheme that allows both vertical and horizontal Wiimote inputs simultaneously (you can either point the remote at the screen and press A at a location, or use the d-pad to move a cursor and press 2), and keeping the cursor onscreen at all times would get in the way of that horizontal input.

Based on that commit, I could just add it into my own game manually if adding it back to the library would break other functionality.

mardy commented 3 months ago

For example, my game includes a hybrid control scheme that allows both vertical and horizontal Wiimote inputs simultaneously (you can either point the remote at the screen and press A at a location, or use the d-pad to move a cursor and press 2), and keeping the cursor onscreen at all times would get in the way of that horizontal input.

I see, this makes sense.

Based on that commit, I could just add it into my own game manually if adding it back to the library would break other functionality.

No, nothing would break. I removed while fixing something else, but per se this feature does not break anything. I'll bring it back :-)