[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 {
|
||||
|
||||
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
||||
[ErrorDomain ("NIErrorDomain")]
|
||||
[Native]
|
||||
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/Enums.cs \
|
||||
|
||||
NEARBYINTERACTION_SOURCES = \
|
||||
NearbyInteraction/NINearbyObject.cs \
|
||||
|
||||
# NetworkExtension
|
||||
|
||||
NETWORKEXTENSION_API_SOURCES = \
|
||||
|
|
|
@ -15,14 +15,6 @@ using Vector3 = global::OpenTK.Vector3;
|
|||
|
||||
namespace NearbyInteraction {
|
||||
|
||||
[NoWatch, NoTV, NoMac, iOS (14, 0)]
|
||||
[Static]
|
||||
interface NIErrorDomain
|
||||
{
|
||||
[Field ("NIErrorDomain")]
|
||||
NSString Domain { get; }
|
||||
}
|
||||
|
||||
[NoWatch, NoTV, NoMac, iOS (14,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
[DisableDefaultCtor]
|
||||
|
@ -64,16 +56,6 @@ namespace NearbyInteraction {
|
|||
|
||||
[Field ("NINearbyObjectDistanceNotAvailable")]
|
||||
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)]
|
||||
|
|
|
@ -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="BackgroundTasks\" />
|
||||
<Folder Include="WebKit\" />
|
||||
<Folder Include="NearbyInteraction\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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
|
Загрузка…
Ссылка в новой задаче