ARKitApi.cs
5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using System;
using System.Runtime.InteropServices;
using UnityEngine.XR.ARSubsystems;
namespace UnityEngine.XR.ARKit
{
internal static class Api
{
[DllImport("__Internal")]
public static extern IntPtr UnityARKit_TrackableProvider_start(IntPtr self);
[DllImport("__Internal")]
public static extern IntPtr UnityARKit_TrackableProvider_stop(IntPtr self);
[DllImport("__Internal")]
public static extern NativeChanges UnityARKit_TrackableProvider_acquireChanges(IntPtr self);
[DllImport("__Internal")]
public static extern unsafe void UnityARKit_TrackableProvider_copyChanges(
IntPtr self, NativeChanges changes, int stride,
void* added, void* updated, void* removed);
#if UNITY_IOS && !UNITY_EDITOR
[DllImport("__Internal", EntryPoint="UnityARKit_Version_AtLeast11_0")]
public static extern bool AtLeast11_0();
[DllImport("__Internal", EntryPoint="UnityARKit_Version_AtLeast11_3")]
public static extern bool AtLeast11_3();
[DllImport("__Internal", EntryPoint="UnityARKit_Version_AtLeast12_0")]
public static extern bool AtLeast12_0();
[DllImport("__Internal", EntryPoint="UnityARKit_Version_AtLeast13_0")]
public static extern bool AtLeast13_0();
[DllImport("__Internal", EntryPoint="UnityARKit_EnsureRootViewIsSetup")]
public static extern void EnsureRootViewIsSetup();
[DllImport("__Internal", EntryPoint="UnityARKit_Session_SetFeatureRequested")]
public static extern void SetFeatureRequested(Feature feature, bool enabled);
[DllImport("__Internal", EntryPoint="UnityARKit_Session_GetRequestedFeatures")]
public static extern Feature GetRequestedFeatures();
[DllImport("__Internal")]
internal static extern ARWorldMapRequestStatus UnityARKit_getWorldMapRequestStatus(int worldMapId);
[DllImport("__Internal")]
internal static extern void UnityARKit_disposeWorldMap(int worldMapId);
[DllImport("__Internal")]
internal static extern void UnityARKit_disposeWorldMapRequest(int worldMapId);
[DllImport("__Internal")]
internal static extern int UnityARKit_getWorldMapIdFromRequestId(int requestId);
[DllImport("__Internal")]
internal static extern bool UnityARKit_isWorldMapValid(int nativeHandle);
[DllImport("__Internal")]
internal static extern bool UnityARKit_trySerializeWorldMap(
int nativeHandle, out IntPtr nsdata, out int length);
[DllImport("__Internal")]
internal static extern int UnityARKit_copyAndReleaseNsData(
IntPtr destination, IntPtr sourceNsData, int length);
[DllImport("__Internal")]
internal static extern int UnityARKit_deserializeWorldMap(
IntPtr buffer, int bufferLength);
public static void CFRelease(ref IntPtr ptr)
{
UnityARKit_CFRelease(ptr);
ptr = IntPtr.Zero;
}
[DllImport("__Internal")]
static extern void UnityARKit_CFRelease(IntPtr ptr);
public static void CFRetain(IntPtr ptr)
{
if (ptr == IntPtr.Zero)
throw new NullReferenceException("Cannot retain a null pointer.");
UnityARKit_CFRetain(ptr);
}
[DllImport("__Internal")]
public static extern void UnityARKit_CFRetain(IntPtr ptr);
#else
public static void SetFeatureRequested(Feature feature, bool enabled) {}
public static Feature GetRequestedFeatures() => Feature.None;
public static void EnsureRootViewIsSetup() {}
public static void CFRelease(ref IntPtr ptr) => ptr = IntPtr.Zero;
public static void UnityARKit_CFRetain(IntPtr ptr) {}
internal static ARWorldMapRequestStatus UnityARKit_getWorldMapRequestStatus(int worldMapId)
{
return default(ARWorldMapRequestStatus);
}
internal static void UnityARKit_disposeWorldMap(int worldMapId)
{ }
internal static void UnityARKit_disposeWorldMapRequest(int worldMapId)
{ }
internal static int UnityARKit_getWorldMapIdFromRequestId(int requestId)
{
return default(int);
}
internal static int UnityARKit_deserializeWorldMap(IntPtr buffer, int bufferLength)
{
return ARWorldMap.k_InvalidHandle;
}
internal static bool UnityARKit_isWorldMapValid(int nativeHandle)
{
return false;
}
internal static bool UnityARKit_trySerializeWorldMap(
int nativeHandle, out IntPtr nsdata, out int length)
{
nsdata = default(IntPtr);
length = default(int);
return false;
}
internal static int UnityARKit_copyAndReleaseNsData(
IntPtr destination, IntPtr sourceNsData, int length)
{
return 0;
}
public static bool AtLeast11_0() => false;
public static bool AtLeast11_3() => false;
public static bool AtLeast12_0() => false;
public static bool AtLeast13_0() => false;
#endif
}
}