In the native code, we expose bindings in our “ExternalInterface.cpp” file. Each call we make there tends to be described in a general header. For example, our joystick API is described by the
lime.ui.Joystick header, here:
Then is called by our “ExternalInterface.cpp” file, here:
But the implementation is done by SDL on this method. In there future, there may be other backend systems we support, but we only support SDL at the moment.
The reason we have an “SDLJoystick.h” file (in this case) is because we need to make some internal calls from “SDLApplication.cpp” into “SDLJoystick.cpp”, but this is only because joystick events come from the SDL main loop.