Move display driver functionality from `OS` to new `DisplayDriver` singleton
- Rename
x11
platform tofreedesktop
(name negotiable, please please please do not bikeshed this name until everything else has been discussed and we are ready to merge). - Add
DisplayDriver
singleton - Remove display driver functionality from
OS
- Add X11 display class to be used with the freedesktop OS
- Adapt other platforms to inherit from both
OS
andDisplayDriver
This abstraction is the first step toward mainline Wayland support, compositor projects with Godot. I believe this to be roughly what @hpvb is planning to do. If this is not the right direction, please let me know so I don't sink more time into it. Lets look at this rather quickly if possible, as it is a high maintenance branch to keep updated.
EDIT: please note that this is not ready to merge. I posted the PR so we can discuss the approach and what direction to take it.