You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Promote usage of new SDL 3 mechanisms rather than going through old AWT and the LWJGL 2 APIs.
Goals
Make the SDL input stack the default
Provide typed API for SDL3 events & inputs
Full IME support
Remove reliance on AWT and LWJGL 2 calls
Non Goals
Not to move vanilla's Display/Keyboard/Mouse code yet, still on the LWJGLY bridge.
Motivation
Clipboard and "open this URL/file" go through AWT Toolkit/ Desktop. This has issues on Wayland and some other platforms, as well as of course headless environments.
Icons, exclusive fullscreen, and display modes still talk to Display, which is a shim over a new Window
Taskbar progress and flash are Win32-only JNA. SDL can do both cross-platform.
There is no first-class gamepad, drop target, cursor or similar input related API. Controller mods reinvent this or internalize a lot of the API.
Description
SDL::ensureSubsystem would call first, allowing checks that need to happen before Window creation to run in there.
Every input type/mechanism will have their own class as API. IMEs are in Text which is classed as a virtual input, it essentially pipes keystrokes into something more manageable.
CleanroomWindowBridge and LegacyInputQueues stay internal.
Window::pump happens, delegates all calls to each input mechanism via events that are dispatched from the Window instance.
Currently debating if some of these input callbacks should be pure listeners or full on Forge events, as it may subject to heavy overhead on every event fire.
IME support (already implemented in branch) goes beyond normal text fields, specific support has been added to special text renders like for editing a book and sign.
Dependencies
lwjgl-sdl
LWJGLY
References
SDL 3 documentation
Guidelines
I have and will continue to adhere to the guidelines
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Summary
Promote usage of new SDL 3 mechanisms rather than going through old AWT and the LWJGL 2 APIs.
Goals
Non Goals
Display/Keyboard/Mousecode yet, still on the LWJGLY bridge.Motivation
Toolkit/Desktop.This has issues on Wayland and some other platforms, as well as of course headless environments.Display, which is a shim over a newWindowDescription
SDL::ensureSubsystemwould call first, allowing checks that need to happen beforeWindowcreation to run in there.Textwhich is classed as avirtual input, it essentially pipes keystrokes into something more manageable.CleanroomWindowBridgeandLegacyInputQueuesstay internal.Window::pumphappens, delegates all calls to each input mechanism via events that are dispatched from theWindowinstance.Dependencies
lwjgl-sdlLWJGLYReferences
Guidelines
All reactions