60 lines
2.1 KiB
C#
60 lines
2.1 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
using UnityEngine;
|
|
using UnityEngine.XR.OpenXR;
|
|
|
|
namespace Microsoft.MixedReality.OpenXR
|
|
{
|
|
//Must match PluginEnvironment in PluginEnvironment.h
|
|
enum PluginEnvironment
|
|
{
|
|
unityVersion = 1 << 0,
|
|
openXRPluginVersion = 1 << 1,
|
|
mrOpenXRPluginVersion = 1 << 2,
|
|
graphicsAPI = 1 << 3,
|
|
sessionCreationResult = 1 << 4,
|
|
appName = 1 << 5,
|
|
appVersion = 1 << 6,
|
|
appMode = 1 << 7,
|
|
openXRRuntimeName = 1 << 8,
|
|
openXRRuntimeVersion = 1 << 9,
|
|
apiVersion = 1 << 10
|
|
};
|
|
|
|
|
|
internal class PluginEnvironmentSubsystem
|
|
{
|
|
private static bool m_initialized = false;
|
|
|
|
internal static void InitializePlugin()
|
|
{
|
|
if (!m_initialized)
|
|
{
|
|
m_initialized = true;
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.unityVersion, Application.unityVersion);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.openXRPluginVersion, OpenXRRuntime.pluginVersion);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.mrOpenXRPluginVersion, typeof(OpenXRContext).Assembly.GetName().Version.ToString());
|
|
NativeLib.InitializePlugin();
|
|
}
|
|
}
|
|
|
|
internal static void OnSessionCreated()
|
|
{
|
|
string appMode = "undefined";
|
|
|
|
#if UNITY_EDITOR
|
|
appMode = "PlayMode";
|
|
#else
|
|
appMode = "AppMode";
|
|
#endif
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.appName, Application.productName);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.appVersion, Application.version);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.appMode, appMode);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.openXRRuntimeName, OpenXRRuntime.name);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.openXRRuntimeVersion, OpenXRRuntime.version);
|
|
NativeLib.SetPluginEnvironment(PluginEnvironment.apiVersion, OpenXRRuntime.apiVersion);
|
|
}
|
|
}
|
|
|
|
} |