Skip to content

Commit 0f3035e

Browse files
committed
Check if the spatialCoordinateSystem has changed to reset cache
1 parent afd2104 commit 0f3035e

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

Assets/MixedRealityToolkit.Providers/WindowsMixedReality/Shared/WindowsMixedRealityUtilities.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,27 @@ public static SpatialCoordinateSystem SpatialCoordinateSystem
7272
{
7373
get
7474
{
75-
if (spatialCoordinateSystem == null && UtilitiesProvider != null && UtilitiesProvider.ISpatialCoordinateSystemPtr != IntPtr.Zero)
75+
if (UtilitiesProvider != null)
7676
{
77+
IntPtr newSpatialCoordinateSystemPtr = UtilitiesProvider.ISpatialCoordinateSystemPtr;
78+
if (newSpatialCoordinateSystemPtr != currentSpatialCoordinateSystemPtr && newSpatialCoordinateSystemPtr != IntPtr.Zero)
79+
{
7780
#if ENABLE_DOTNET
78-
spatialCoordinateSystem = GetSpatialCoordinateSystem(UtilitiesProvider.ISpatialCoordinateSystemPtr);
81+
spatialCoordinateSystem = GetSpatialCoordinateSystem(newSpatialCoordinateSystemPtr);
7982
#elif WINDOWS_UWP
80-
spatialCoordinateSystem = Marshal.GetObjectForIUnknown(UtilitiesProvider.ISpatialCoordinateSystemPtr) as SpatialCoordinateSystem;
83+
spatialCoordinateSystem = Marshal.GetObjectForIUnknown(newSpatialCoordinateSystemPtr) as SpatialCoordinateSystem;
8184
#elif DOTNETWINRT_PRESENT
82-
spatialCoordinateSystem = SpatialCoordinateSystem.FromNativePtr(UtilitiesProvider.ISpatialCoordinateSystemPtr);
85+
spatialCoordinateSystem = SpatialCoordinateSystem.FromNativePtr(newSpatialCoordinateSystemPtr);
8386
#endif
87+
currentSpatialCoordinateSystemPtr = newSpatialCoordinateSystemPtr;
88+
}
8489
}
8590
return spatialCoordinateSystem;
8691
}
8792
}
8893

94+
private static IntPtr currentSpatialCoordinateSystemPtr = IntPtr.Zero;
95+
8996
/// <summary>
9097
/// Access the underlying native current holographic frame.
9198
/// </summary>

0 commit comments

Comments
 (0)