ARKitApi.cs
3.44 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
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")]
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);
#else
public static void CFRelease(ref IntPtr ptr) => ptr = IntPtr.Zero;
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;
}
#endif
}
}