5 ms·
As a current SDL2 user: it is not fantastic and it does not just work. - On Windows, DPI scaling is broken (ask for a 1280x720 window, get 1600x900) - On Mac,
by et1337 11y ago
As a current SDL2 user: it is not fantastic and it does not just work.
- On Windows, DPI scaling is broken (ask for a 1280x720 window, get 1600x900)
- On Mac, mouse locking is broken
- On Linux, my Xbox gamepads don't work at all
- Required several hacks before it could be used as a CMake submodule
This stuff is under active development, which is shocking for such an established and widespread library. I'm glad it exists, but it doesn't "just work".
Can't really blame it though, it has a very boring and nearly impossible task.
- deleted 11y ago[deleted]
- mikepavone 11y ago> - On Linux, my Xbox gamepads don't work at all Really? I use Linux full time at home and I've never had problems with 360 controllers either when developing with SDL2 or playing games built with it. Are you talking about original Xbox and/or Xbox One controllers?
- et1337 11y agoAftermarket Xbox 360 controllers. I've seen other Linux SDL games work with 360 controllers, so I assume the problem is on my end. I just wanted to contest the notion that SDL "just works". It still takes a lot of fiddling unfortunately.
- SXX 11y agoHave no idea about DPI on Windows, but from my experience mouse locking on OS X worked and my Xbox pad works for sure (checked just month ago or so). I know about some issues with force feedback, but not sure if those are even SDL issue. PS: What OS X version you had problem with?
- et1337 11y agoTested on El Capitan. IIRC, SDL_SetRelativeMouseMode didn't work at all, the cursor remained visible. After some workarounds, there are still issues with the cursor not re-centering correctly, menu bar remaining visible, etc. It's probably because I'm on a random Git commit rather than a stable release, but I had to do that due to another issue. It's surprising how many things are in flux, given how long it's been around.
- swinglock 11y agoLooks like it really is damn hard to get right.
- mwcampbell 11y agoDoes high-DPI support work if you put the right declaration in your executable's manifest? Specifically: <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware> </windowsSettings> </application>
- et1337 11y agoThanks, yeah I tried something equivalent to this (SetProcessDpiAwareness, as mentioned by another commenter). It broke some other SDL stuff though. I'm just gonna have to screw around with it when release time comes.
- overgard 11y agoIt has its own quirks, but I was mostly impressed with SFML when I tried it. SDL always seemed vaguely badly designed -- it worked well enough that I never seriously considered replacing it, but I can't say I ever really enjoyed using it.
- Matheus28 11y agoThe DPI scaling issue is probably because you didn't call SetProcessDpiAwareness
- et1337 11y agoYeah I tried that before and it solved the problem, but then it broke some other aspects of SDL. Can't quite remember, I think fullscreen got messed up. There's code in SDL specifically for high DPI, but it's confusing and practically undocumented. It's just something I'll have to mess around with a while, and then remember not to breathe on anything once it's working. :)