|
|
- // Oculus Defines|SDK_Oculus|001
- namespace VRTK
- {
- using System;
- using System.Reflection;
-
- /// <summary>
- /// Handles all the scripting define symbols for the Oculus and Avatar SDKs.
- /// </summary>
- public static class SDK_OculusDefines
- {
- /// <summary>
- /// The scripting define symbol for the Oculus SDK.
- /// </summary>
- public const string ScriptingDefineSymbol = SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "SDK_OCULUS";
- /// <summary>
- /// The scripting define symbol for the Oculus Avatar SDK.
- /// </summary>
- public const string AvatarScriptingDefineSymbol = SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "SDK_OCULUS_AVATAR";
-
- [SDK_ScriptingDefineSymbolPredicate(ScriptingDefineSymbol, "Standalone")]
- [SDK_ScriptingDefineSymbolPredicate(ScriptingDefineSymbol, "Android")]
- [SDK_ScriptingDefineSymbolPredicate(SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "OCULUS_UTILITIES_1_12_0_OR_NEWER", "Standalone")]
- [SDK_ScriptingDefineSymbolPredicate(SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "OCULUS_UTILITIES_1_12_0_OR_NEWER", "Android")]
- private static bool IsUtilitiesVersion1120OrNewer()
- {
- Version wrapperVersion = GetOculusWrapperVersion();
- return wrapperVersion != null && wrapperVersion >= new Version(1, 12, 0);
- }
-
- [SDK_ScriptingDefineSymbolPredicate(ScriptingDefineSymbol, "Standalone")]
- [SDK_ScriptingDefineSymbolPredicate(ScriptingDefineSymbol, "Android")]
- [SDK_ScriptingDefineSymbolPredicate(SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "OCULUS_UTILITIES_1_11_0_OR_OLDER", "Standalone")]
- [SDK_ScriptingDefineSymbolPredicate(SDK_ScriptingDefineSymbolPredicateAttribute.RemovableSymbolPrefix + "OCULUS_UTILITIES_1_11_0_OR_OLDER", "Android")]
- private static bool IsUtilitiesVersion1110OrOlder()
- {
- Version wrapperVersion = GetOculusWrapperVersion();
- return wrapperVersion != null && wrapperVersion < new Version(1, 12, 0);
- }
-
- [SDK_ScriptingDefineSymbolPredicate(AvatarScriptingDefineSymbol, "Standalone")]
- [SDK_ScriptingDefineSymbolPredicate(AvatarScriptingDefineSymbol, "Android")]
- private static bool IsAvatarAvailable()
- {
- return (IsUtilitiesVersion1120OrNewer() || IsUtilitiesVersion1110OrOlder())
- && VRTK_SharedMethods.GetTypeUnknownAssembly("OvrAvatar") != null;
- }
-
- private static Version GetOculusWrapperVersion()
- {
- Type pluginClass = VRTK_SharedMethods.GetTypeUnknownAssembly("OVRPlugin");
- if (pluginClass == null)
- {
- return null;
- }
-
- FieldInfo versionField = pluginClass.GetField("wrapperVersion", BindingFlags.Public | BindingFlags.Static);
- if (versionField == null)
- {
- return null;
- }
-
- return (Version)versionField.GetValue(null);
- }
- }
- }
|