mosra / magnum

Lightweight and modular C++11 graphics middleware for games and data visualization
https://magnum.graphics/
Other
4.74k stars 439 forks source link

Don't force static for Android #617

Closed bansan85 closed 1 year ago

bansan85 commented 1 year ago

Related to mosra/corrade#170

bansan85 commented 1 year ago

libMagnumEglContext is still forced to static. flextGLInit is not an exported symbol.

mosra commented 1 year ago

Amazing, thanks for updating and testing this side as well :+1:

libMagnumEglContext is still forced to static

Yes, those are deliberately static everywhere always since they're extremely tiny and are meant to be only used from the top-level application executable/library to initialize GL, and from nowhere else after that. Given that usage pattern, so far there weren't any problems with that, but of course let me know if your use case would be different.

bansan85 commented 1 year ago

In my case, it works well. But EGL is used by only one of my shared libraries.

mosra commented 1 year ago

Merged as a9898a05ac5eb6de9f1b068094ec4edfbf86c61d, sorry for the delay. The MAGNUM_BUILD_PLUGINS_STATIC is however still forced on Android, because the PluginManager itself doesn't have any support for loading dynamic libraries there. It'd need to get implemented in it first. I think it's not as much of a problem for the plugins, since they're relatively small and don't contain any shared mutable global state that could cause problems.

I also mirrored this change in other repos as mosra/magnum-plugins@127a9ecbbba3c3beccd22f41d928e7017817368d, mosra/magnum-extras@f567dba09c552132bb6bf1698c08cdd31a16b025 and mosra/magnum-integration@35c05fda3e243b696e2b3a3dcd230c819ca108e0.

Thank you!