-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move Managed-OSVR into its own repo #3
Comments
Yeah, right now the Managed-OSVR code is basically a direct, thin wrapper around the C ClientKit API that presents an exact equivalent to the C++ ClientKit API. It was written as a means to getting a Unity plugin, but was designed to be separable from Unity, so this is a logical request. There is some (generated) code in the Unity plugin that makes the wrapping a little more C#-idiomatic, particularly regarding callbacks, that probably could get moved over. (I've created a new issue for this: #5 ) There is no Unity-specific code in Managed-OSVR - in the CI build, it is built as its own step with I fully agree it would be easier to develop (or at least even discover the possibility of) other uses of the .NET binding putting Managed-OSVR in its own repo. I hadn't heard of MonoGame before, but I think that an integration with it would be a great contribution. (and a great separate repo 😄 ) I'm not super familiar with C#/.net packaging norms, but I get the impression that NuGet and MyGet feeds are popular. (I've started getting introduced to them through Chocolatey.) I imagine that NuGet would probably be useful at least to non-Unity users, and could probably be shoe-horned into working with the Unity build as well. (Created #4 to track this one.) Forks and pull requests for any of the items you brought up (or any other contributions) would be greatly appreciated, at least once this goes fully open-source. I'm unsure of the contribution policy before that point, but I can get you in touch with the people who do know this if you would like to pitch in. @OSVR/owners - can we get a GitHub account upgrade to add an additional private repo to split out Managed-OSVR from the Unity-specific code in here, or must this wait until public release? |
Until unity 5 fully supports IL2CPP and .net 4.5+, I may also need a separate project with a .net 4.5+ build of Managed-OSVR. |
For someone without a lot of. Net experience, what do you mean there? The current framework is a .net 2.0 build for unity compatibility. If a 4.5 build is needed, can that be fine from roughly the same source tree, perhaps with some #if? |
Yes, the same source tree should be OK for now. Just create two vs projects that link the same files. Often when I do this I move the shared source up one level into a subdirectory of the solution, but it doesn't have to be:
|
Some questions from @rpavlik from #6 Q: Do people usually use a single nuget provider or should we be using myget for example? Q: Is there a preferred way to handle providing bins for the two framework versions? Q: How about distributing the native libraries? |
OK, I split out the repo, though I haven't ported the Unity code in this repo to use it yet. https://github.com/OSVR/Managed-OSVR |
I'll be working on an OSVR-MonoGame when this goes fully open source. Please move the Managed-OSVR code into its own repo to facilitate this. Other community contributed ports/integration efforts would benefit as well.
I didn't see any at first glance, but if there is any unity-specific code in OSVR-MonoGame, please #ifdef it or preferably factor the code out into a partial class implementation or configurable helper class, per your choice. It would be helpful for me, not having any unity experience, to add some explanation into what the unity code is doing so I can determine whether it is even applicable to a MonoGame port.
I'll leave it up to you to determine the best way to get Managed-OSVR into OSVR-Unity, and I'll follow suit with OSVR-MonoGame. Perhaps checking in the binaries, or a git submodule, or a build/copy script, or symbolic links, or a pre-release NuGet package when this repo is fully public.
As an aside: I haven't had a lot of time to review the code, but from what I see so far there seems to be a fair amount of code in the Unity plugin that is not Unity specific. Perhaps some of that can be moved into the Managed-OSVR code instead?
The text was updated successfully, but these errors were encountered: