Replace platform independent windowing/display code with a unified SDL3 version #12338
Replies: 1 comment 3 replies
-
As far as I can gather, it is because Godot could implement the features it needs instead of waiting for SDL to add them. We wait for Godot instead. Larvita3 engine (a precursor to Godot, although open sourced afterwards), uses SDL. But back then it didn't do everything that Godot needed. In fact, Juan got a disdain for relying on a third party. In this case the issue is Godot and SDL goals did not aligning, so when Godot needed a feature from SDL there was no guarantee that SDL would add it. See: https://x.com/reduzio/status/1770036784530903355 You might argue that SDL has most of what Godot needs now, yet it takes time and effort to migrate, and it is unclear what gain is to be made - granted I say this not having used SDL recently. Or if it will become a problem in the future. By the way, not using SDL, for both good an ill, means that Godot can do and needs its own optimization, and can have and needs its own console porting independently. You might be interested in: |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Discussion instead of a formal proposal since there might be a reason for it being this way. I asked on the forums if there was a specific technical reason why Godot uses separate code for every platform it supports instead of a library like SDL3 to abstract as much of it away to unified code as possible but it seemed no one knows why it is that way
For context I was attempting to replace the default title bar on Windows with a custom one that uses tabs to move some of the main Editor functionality into separate tabs. Instead I was met with a mess of Win32 apis that are less than ideal to program. By contrast I was able to spin up an SDL based program with a borderless window and resizable edges in about 10 minutes.
I've seen that SDL is used elsewhere in the engine (I think for inputs) so I was wondering what the rationale behind not using it for the windowing system was. And if there isn't really a rationale, what's stopping it from being replaced with a more unified option.
Thanks
Beta Was this translation helpful? Give feedback.
All reactions