I was not sure where to post this, feel free to (ask me to) move it if this is not the right place to discuss this.
I am currently working on a project that is supposed to be released at some point using an engine based on OpenTK. In the past releases, we have had several problems using the SDL2 backend. While we do require SDL2 for proper gamepad support, it also results in the game not working for a significant subgroup of our potential players. We are also not entirely happy with how SDL2 handles the fullscreen. Hence, we would like to return to the native code for the graphics element of our game, while still having an option to use SDL2 for the input (we only need SDL2 for the gamepad code really).
Right now there is however no control whatsoever over what is used. OpenTK automatically chooses SDL2 if the library is available, so it is an "all or nothing" deal. From what I can see, the
Factory.Default is so intertwined in the code, that there is not really a way around it without diving into the OpenTK source ourselves.
So I return to my question: what is the intended solution for these situations? The current platform implementation feels very rigid and I don't see a way of forcing the Factory to use the native drivers without SDL2, which would also restrict us from using SDL2 to create some custom code for gamepads. Ideally, we would even use a hybrid inputdriver between SDL2 and Windows/OSX, as it seems both recognise different gamepads (or not).