Improve platform compatibility (recent Linux, UWP, Unity, newer Assimp)

Merged
#5 · Created  · Last updated

Merged pull request

Merged in improve-version-support (pull request #5)

edd6f2f·Author: ·Closed by: ·2022-05-07

Description

This includes all the changes from PR #4, with the following on top:

  • Update to Assimp 5.2.3 instead of 5.1, which had more breaking changes causing crashes. (This means AssimpNet is also incompatible with older versions, but this is probably the case every time the structures change.)

  • Refactor LogStream and IOSystem callbacks a bit so it is possible to provide your own functions. This helps with #74 (Unity IL2CPP), which allows using the supplementary Unity code from that ticket.

  • Split up platforms in separate files, since UnmanagedLibrary was becoming a bit large.

  • Use LoadPackagedLibrary on UWP, because Win32’s LoadLibrary is not available there. Should fix #73. (For the HoloLens 2 specifically, I have to test this again since I needed to use __Internal before instead of specific DLLs, but it turns out this breaks IL2CPP builds for other platforms, such as Android, as Unity then always tries to find those symbols during build; the DLLs used now are the ones documented by Microsoft and will probably work for desktop UWP apps.)

  • Fix loading Assimp on Linux with recent glibc versions where libdl.so no longer exists (because it was merged into libc.so.6). Should fix #83.

I understand this is a bit much combined in one PR, but I wanted to get the code out there already, and possibly reiterate later.

0 attachments

0 comments

Loading commits...