|
sfml_impl 0.1.0
Vendor SFML 3.0.2 : IGraphic2Module / IAudioModule
|
Exports getGraphic2Module() and getAudioModule(). No getGraphic3Module — sfml has no 3D, so the symbol is absent rather than returning something broken. Get<IGraphic3Module>("sfml") is nullptr.
| target | artefact | use |
|---|---|---|
sfml_impl | sfml_impl.dylib | the plugin, what ModuleManager::Load() opens |
sfml_impl_static | libsfml_impl.a | linked in, brings its include dirs |
Neither follows BUILD_SHARED_LIBS : a plugin turned into a .a would fail at runtime with an obscure message. Pick by target name.
dynamic takes a dll path in argv[1], so the same binary runs any vendor — including raylib, which it has never seen :
sf::Keyboard::isKeyPressed(). That query is global and needs macOS Input Monitoring, without which it silently returns nothing.setKeyRepeatEnabled(false), else a held key re-fires isKeyPressed.FocusLost clears every key, else one stays stuck after cmd+tab.sf::Joystick has raw numbered buttons with no guaranteed meaning across controllers, unlike raylib's mapping. Uses the common Xbox ordering.[0, 1] in the contract.tests/TestSfmlImpl.cpp loads the built dll through ModuleManager like a real game would, checks IGraphic3Module is nullptr, then exercises every 2D and audio contract against real assets.