[NearbyInteraction][Xcode12] Add manual binding for NINearbyObjectDirectionNotAvailable (#9346)
* nearby interaction manual update + test
This commit is contained in:
Родитель
be26e31ca8
Коммит
fb665c8c68
|
@ -14,6 +14,7 @@ using System;
|
||||||
namespace NearbyInteraction {
|
namespace NearbyInteraction {
|
||||||
|
|
||||||
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
||||||
|
[ErrorDomain ("NIErrorDomain")]
|
||||||
[Native]
|
[Native]
|
||||||
public enum NIErrorCode : long
|
public enum NIErrorCode : long
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
//
|
||||||
|
// NearbyInteraction manual bindings
|
||||||
|
//
|
||||||
|
// Authors:
|
||||||
|
// Whitney Schmidt <whschm@microsoft.com>
|
||||||
|
//
|
||||||
|
// Copyright 2020 Microsoft Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
using CoreFoundation;
|
||||||
|
using Foundation;
|
||||||
|
using ObjCRuntime;
|
||||||
|
using Vector3 = global::OpenTK.Vector3;
|
||||||
|
|
||||||
|
#if __IOS__
|
||||||
|
namespace NearbyInteraction {
|
||||||
|
partial class NINearbyObject
|
||||||
|
{
|
||||||
|
static Vector3? _DirectionNotAvailable;
|
||||||
|
|
||||||
|
// TODO: https://github.com/xamarin/maccore/issues/2274
|
||||||
|
// We do not have generator support to trampoline Vector3 -> vector_float3 for Fields
|
||||||
|
[Field ("NINearbyObjectDirectionNotAvailable", "NearbyInteraction")]
|
||||||
|
public static Vector3 DirectionNotAvailable {
|
||||||
|
get {
|
||||||
|
if (_DirectionNotAvailable == null) {
|
||||||
|
unsafe {
|
||||||
|
Vector3 *pointer = (Vector3 *) Dlfcn.GetIndirect (Libraries.NearbyInteraction.Handle, "NINearbyObjectDirectionNotAvailable");
|
||||||
|
_DirectionNotAvailable = *pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (Vector3)_DirectionNotAvailable;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
#endif //__IOS__
|
|
@ -1202,6 +1202,9 @@ NETWORK_SOURCES = \
|
||||||
NEARBYINTERACTION_API_SOURCES = \
|
NEARBYINTERACTION_API_SOURCES = \
|
||||||
NearbyInteraction/Enums.cs \
|
NearbyInteraction/Enums.cs \
|
||||||
|
|
||||||
|
NEARBYINTERACTION_SOURCES = \
|
||||||
|
NearbyInteraction/NINearbyObject.cs \
|
||||||
|
|
||||||
# NetworkExtension
|
# NetworkExtension
|
||||||
|
|
||||||
NETWORKEXTENSION_API_SOURCES = \
|
NETWORKEXTENSION_API_SOURCES = \
|
||||||
|
|
|
@ -15,14 +15,6 @@ using Vector3 = global::OpenTK.Vector3;
|
||||||
|
|
||||||
namespace NearbyInteraction {
|
namespace NearbyInteraction {
|
||||||
|
|
||||||
[NoWatch, NoTV, NoMac, iOS (14, 0)]
|
|
||||||
[Static]
|
|
||||||
interface NIErrorDomain
|
|
||||||
{
|
|
||||||
[Field ("NIErrorDomain")]
|
|
||||||
NSString Domain { get; }
|
|
||||||
}
|
|
||||||
|
|
||||||
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
||||||
[BaseType (typeof (NSObject))]
|
[BaseType (typeof (NSObject))]
|
||||||
[DisableDefaultCtor]
|
[DisableDefaultCtor]
|
||||||
|
@ -64,16 +56,6 @@ namespace NearbyInteraction {
|
||||||
|
|
||||||
[Field ("NINearbyObjectDistanceNotAvailable")]
|
[Field ("NINearbyObjectDistanceNotAvailable")]
|
||||||
float DistanceNotAvailable { get; }
|
float DistanceNotAvailable { get; }
|
||||||
|
|
||||||
// TODO: https://github.com/xamarin/maccore/issues/2274
|
|
||||||
// We do not have generator support to trampoline Vector3 -> vector_float3 for Fields
|
|
||||||
// There is support for Vector3 -> vector_float3 for properties
|
|
||||||
// error BI1014: bgen: Unsupported type for Fields: global::OpenTK.Vector3 for 'NearbyInteraction.NINearbyObjectDistance DirectionNotAvailable'.
|
|
||||||
// extern simd_float3 NINearbyObjectDirectionNotAvailable __attribute__((availability(ios, introduced=14.0))) __attribute__((availability(macos, unavailable))) __attribute__((availability(watchos, unavailable))) __attribute__((availability(tvos, unavailable))) __attribute__((visibility("default"))) __attribute__((availability(swift, unavailable)));
|
|
||||||
// [Unavailable (PlatformName.Swift)]
|
|
||||||
// [NoWatch, NoTV, NoMac, iOS (14, 0)]
|
|
||||||
// [Field ("NINearbyObjectDirectionNotAvailable")]
|
|
||||||
// [unsupported ExtVector: float __attribute__((ext_vector_type(3)))] NINearbyObjectDirectionNotAvailable { get; }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
// Copyright 2020 Microsoft Corp.
|
||||||
|
|
||||||
|
#if __IOS__
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Foundation;
|
||||||
|
using ObjCRuntime;
|
||||||
|
using NearbyInteraction;
|
||||||
|
using NUnit.Framework;
|
||||||
|
using OpenTK;
|
||||||
|
|
||||||
|
namespace MonoTouchFixtures.NearbyInteraction {
|
||||||
|
|
||||||
|
[TestFixture]
|
||||||
|
[Preserve (AllMembers = true)]
|
||||||
|
public class NINearbyObjectTest {
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void DirectionNotAvailable ()
|
||||||
|
{
|
||||||
|
TestRuntime.AssertXcodeVersion (12, 0);
|
||||||
|
|
||||||
|
Vector3 vect = NINearbyObject.DirectionNotAvailable;
|
||||||
|
|
||||||
|
unsafe {
|
||||||
|
Vector3* v = &vect;
|
||||||
|
byte* ptr = (byte*) v;
|
||||||
|
byte zero = 0;
|
||||||
|
for (var i = 0; i < sizeof (Vector3); i++)
|
||||||
|
Assert.That (ptr [i], Is.EqualTo (zero), $"Position {i}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // __IOS__
|
|
@ -285,6 +285,7 @@
|
||||||
<Folder Include="Compression\" />
|
<Folder Include="Compression\" />
|
||||||
<Folder Include="BackgroundTasks\" />
|
<Folder Include="BackgroundTasks\" />
|
||||||
<Folder Include="WebKit\" />
|
<Folder Include="WebKit\" />
|
||||||
|
<Folder Include="NearbyInteraction\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="AudioToolbox\1.caf" />
|
<Content Include="AudioToolbox\1.caf" />
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
## TODO: https://github.com/xamarin/maccore/issues/2274
|
|
||||||
## We do not have generator support to trampoline Vector3 -> vector_float3 for Fields
|
|
||||||
!missing-field! NINearbyObjectDirectionNotAvailable not bound
|
|
Загрузка…
Ссылка в новой задаче