version 2.5.0

This commit is contained in:
Sean Lu
2025-01-10 17:17:03 +08:00
parent ddc3c4c6d8
commit 2372c9429a
1086 changed files with 290974 additions and 77367 deletions

View File

@@ -0,0 +1,76 @@
// Copyright HTC Corporation All Rights Reserved.
using System;
using System.Runtime.InteropServices;
using UnityEngine;
using UnityEngine.XR.OpenXR.Features;
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.XR.OpenXR.Features;
#endif
namespace VIVE.OpenXR.Feature
{
#if UNITY_EDITOR
[OpenXRFeature(UiName = "VIVE XR MockRuntime",
Desc = "VIVE's mock runtime. Used with OpenXR MockRuntime to test features on Editor.",
Company = "HTC",
DocumentationLink = "..\\Documentation",
OpenxrExtensionStrings = kOpenxrExtensionString,
Version = "1.0.0",
BuildTargetGroups = new[] { BuildTargetGroup.Standalone },
FeatureId = featureId
)]
#endif
public class ViveMockRuntime : OpenXRFeature
{
public const string kOpenxrExtensionString = "";
[DllImport("ViveMockRuntime", EntryPoint = "HookGetInstanceProcAddr")]
public static extern IntPtr HookGetInstanceProcAddrFake(IntPtr func);
//AddRequiredFeature
[DllImport("ViveMockRuntime", EntryPoint = "AddRequiredFeature")]
public static extern void AddRequiredFeature(string featureName);
/// <summary>
/// The feature id string. This is used to give the feature a well known id for reference.
/// </summary>
public const string featureId = "vive.openxr.feature.mockruntime";
public bool enableFuture = false;
public bool enableAnchor = false;
#region override functions
protected override IntPtr HookGetInstanceProcAddr(IntPtr func)
{
IntPtr nextProcAddr = func;
if (Application.isEditor)
{
Debug.Log("ViveMockRuntime: HookGetInstanceProcAddr");
try
{
AddRequiredFeature("Future");
AddRequiredFeature("Anchor");
nextProcAddr = HookGetInstanceProcAddrFake(nextProcAddr);
}
catch (DllNotFoundException ex)
{
Debug.LogError("ViveMockRuntime: DLL not found: " + ex.Message);
}
catch (EntryPointNotFoundException ex)
{
Debug.LogError("ViveMockRuntime: Function not found in DLL: " + ex.Message);
}
catch (Exception ex)
{
Debug.LogError("ViveMockRuntime: Unexpected error: " + ex.Message);
}
}
return nextProcAddr;
}
#endregion override functions
}
}