diff --git a/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp b/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
index 3cc59dc25facb9414c3e49ffd06dc87f11f5a3c8..418b350fa7ce3b798516a43195d75afcc189d45b 100644
--- a/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
+++ b/Source/RWTHVRToolkit/Private/Utility/VirtualRealityUtilities.cpp
@@ -1,13 +1,16 @@
#include "Utility/VirtualRealityUtilities.h"
-#include "Cluster/IDisplayClusterClusterManager.h"
-#include "Components/DisplayClusterCameraComponent.h"
-#include "Config/IDisplayClusterConfigManager.h"
-#include "DisplayClusterRootActor.h"
-#include "DisplayClusterConfigurationTypes.h"
+#if PLATFORM_SUPPORTS_NDISPLAY
+ #include "Cluster/IDisplayClusterClusterManager.h"
+ #include "Components/DisplayClusterCameraComponent.h"
+ #include "Config/IDisplayClusterConfigManager.h"
+ #include "DisplayClusterRootActor.h"
+ #include "DisplayClusterConfigurationTypes.h"
+ #include "Game/IDisplayClusterGameManager.h"
+ #include "IDisplayCluster.h"
+#endif
+
#include "Engine/Engine.h"
-#include "Game/IDisplayClusterGameManager.h"
-#include "IDisplayCluster.h"
#include "IXRTrackingSystem.h"
bool UVirtualRealityUtilities::IsDesktopMode()
@@ -16,7 +19,11 @@ bool UVirtualRealityUtilities::IsDesktopMode()
}
bool UVirtualRealityUtilities::IsRoomMountedMode()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
return IDisplayCluster::Get().GetOperationMode() == EDisplayClusterOperationMode::Cluster;
+#else
+ return false;
+#endif
}
bool UVirtualRealityUtilities::IsHeadMountedMode()
{
@@ -25,34 +32,47 @@ bool UVirtualRealityUtilities::IsHeadMountedMode()
bool UVirtualRealityUtilities::IsCave()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
if(!IsRoomMountedMode()) return false;
const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
return ClusterConfig->CustomParameters.Contains("Hardware_Platform")
&& ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("aixcave", ESearchCase::IgnoreCase);
+#else
+ return false;
+#endif
}
bool UVirtualRealityUtilities::IsTdw()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
if(!IsRoomMountedMode()) return false;
const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
return ClusterConfig->CustomParameters.Contains("Hardware_Platform")
&& ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("TiledDisplayWall", ESearchCase::IgnoreCase);
+#else
+ return false;
+#endif
}
bool UVirtualRealityUtilities::IsRolv()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
if(!IsRoomMountedMode()) return false;
const UDisplayClusterConfigurationData* ClusterConfig = IDisplayCluster::Get().GetConfigMgr()->GetConfig();
return ClusterConfig->CustomParameters.Contains("Hardware_Platform")
&& ClusterConfig->CustomParameters.Find("Hardware_Platform")->Equals("ROLV", ESearchCase::IgnoreCase);
+#else
+ return false;
+#endif
}
/* Return true on the Master in cluster mode and in a normal desktop session. Otherwise false */
bool UVirtualRealityUtilities::IsMaster()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
if (!IDisplayCluster::IsAvailable())
{
return true;
@@ -63,6 +83,9 @@ bool UVirtualRealityUtilities::IsMaster()
return true; // if we are not in cluster mode, we are always the master
}
return Manager->IsMaster() || !Manager->IsSlave();
+#else
+ return true;
+#endif
}
bool UVirtualRealityUtilities::IsSlave()
@@ -72,24 +95,40 @@ bool UVirtualRealityUtilities::IsSlave()
FString UVirtualRealityUtilities::GetNodeName()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
return IsRoomMountedMode() ? IDisplayCluster::Get().GetClusterMgr()->GetNodeId() : FString(TEXT("Localhost"));
+#else
+ return FString(TEXT("Localhost"));
+#endif
}
float UVirtualRealityUtilities::GetEyeDistance()
{
+#if PLATFORM_SUPPORTS_NDISPLAY
return IDisplayCluster::Get().GetGameMgr()->GetRootActor()->GetDefaultCamera()->GetInterpupillaryDistance();
+#else
+ return 0;
+#endif
}
-EDisplayClusterEyeStereoOffset UVirtualRealityUtilities::GetNodeEyeType()
+EEyeStereoOffset UVirtualRealityUtilities::GetNodeEyeType()
{
- return IDisplayCluster::Get().GetGameMgr()->GetRootActor()->GetDefaultCamera()->GetStereoOffset();
+#if PLATFORM_SUPPORTS_NDISPLAY
+ return static_cast<EEyeStereoOffset>(IDisplayCluster::Get().GetGameMgr()->GetRootActor()->GetDefaultCamera()->GetStereoOffset());
+#else
+ return None;
+#endif
}
-UDisplayClusterSceneComponent* UVirtualRealityUtilities::GetClusterComponent(const FString& Name)
+USceneComponent* UVirtualRealityUtilities::GetClusterComponent(const FString& Name)
{
+#if PLATFORM_SUPPORTS_NDISPLAY
return IDisplayCluster::Get().GetGameMgr()->GetRootActor()->GetComponentById(Name);
+#else
+ return nullptr;
+#endif
}
-UDisplayClusterSceneComponent* UVirtualRealityUtilities::GetNamedClusterComponent(const ENamedClusterComponent& Component)
+USceneComponent* UVirtualRealityUtilities::GetNamedClusterComponent(const ENamedClusterComponent& Component)
{
switch(Component)
{
@@ -103,7 +142,7 @@ UDisplayClusterSceneComponent* UVirtualRealityUtilities::GetNamedClusterComponen
case ENamedClusterComponent::NCC_TDW_ORIGIN: return GetClusterComponent("tdw_origin_floor");
case ENamedClusterComponent::NCC_TDW_CENTER: return GetClusterComponent("tdw_center");
case ENamedClusterComponent::NCC_TRACKING_ORIGIN:
- UDisplayClusterSceneComponent* Result;
+ USceneComponent* Result;
if((Result = GetClusterComponent("cave_origin"))) return Result;
if((Result = GetClusterComponent("rolv_origin"))) return Result;
if((Result = GetClusterComponent("tdw_origin_floor"))) return Result;
diff --git a/Source/RWTHVRToolkit/Public/Utility/VirtualRealityUtilities.h b/Source/RWTHVRToolkit/Public/Utility/VirtualRealityUtilities.h
index 07273f16d7e78710f18103abacccc5be96941b10..d96d066b0045f4909a1c17c44969455728601369 100644
--- a/Source/RWTHVRToolkit/Public/Utility/VirtualRealityUtilities.h
+++ b/Source/RWTHVRToolkit/Public/Utility/VirtualRealityUtilities.h
@@ -1,6 +1,5 @@
#pragma once
-#include "Components/DisplayClusterCameraComponent.h"
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "VirtualRealityUtilities.generated.h"
@@ -27,6 +26,14 @@ enum class ENamedClusterComponent : uint8
NCC_TRACKING_ORIGIN UMETA(DisplayName = "CAVE/ROLV/TDW Origin")
};
+UENUM()
+enum EEyeStereoOffset
+{
+ None,
+ Left,
+ Right
+};
+
UCLASS()
class RWTHVRTOOLKIT_API UVirtualRealityUtilities : public UBlueprintFunctionLibrary
{
@@ -46,9 +53,9 @@ public:
UFUNCTION(BlueprintPure, Category = "DisplayCluster") static FString GetNodeName();
UFUNCTION(BlueprintPure, Category = "DisplayCluster") static float GetEyeDistance();
- UFUNCTION(BlueprintPure, Category = "DisplayCluster") static EDisplayClusterEyeStereoOffset GetNodeEyeType();
+ UFUNCTION(BlueprintPure, Category = "DisplayCluster") static EEyeStereoOffset GetNodeEyeType();
//Get Compenent of Display Cluster by it's name, which is specified in the nDisplay config
- UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster") static UDisplayClusterSceneComponent* GetClusterComponent(const FString& Name);
- UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster") static UDisplayClusterSceneComponent* GetNamedClusterComponent(const ENamedClusterComponent& Component);
+ UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster") static USceneComponent* GetClusterComponent(const FString& Name);
+ UFUNCTION(BlueprintPure, BlueprintCallable, Category = "DisplayCluster") static USceneComponent* GetNamedClusterComponent(const ENamedClusterComponent& Component);
};
diff --git a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
index c2703457413cc20fb359f66262c73e04294b4b29..dae5948601267b19b931b4276a4f5ae923fa7627 100644
--- a/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
+++ b/Source/RWTHVRToolkit/RWTHVRToolkit.Build.cs
@@ -2,57 +2,50 @@ using UnrealBuildTool;
public class RWTHVRToolkit : ModuleRules
{
- public RWTHVRToolkit(ReadOnlyTargetRules Target) : base(Target)
- {
- PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
-
- PublicIncludePaths.AddRange(
- new string[]
- {
-
- }
- );
-
-
- PrivateIncludePaths.AddRange(
- new string[]
- {
-
- }
- );
-
-
- PublicDependencyModuleNames.AddRange(
- new string[]
- {
- "Core",
- "CoreUObject",
- "DisplayCluster",
- "Engine",
- "HeadMountedDisplay",
- "InputCore",
- "UMG",
- "Slate",
- "SlateCore",
- "DeveloperSettings",
- "Http"
- }
- );
-
-
- PrivateDependencyModuleNames.AddRange(
- new string[]
- {
-
- }
- );
-
-
- DynamicallyLoadedModuleNames.AddRange(
- new string[]
- {
-
- }
- );
- }
+ public RWTHVRToolkit(ReadOnlyTargetRules Target) : base(Target)
+ {
+ PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
+
+ PublicIncludePaths.AddRange(
+ new string[]{}
+ );
+
+ PrivateIncludePaths.AddRange(
+ new string[]{}
+ );
+
+ PublicDependencyModuleNames.AddRange(
+ new string[]
+ {
+ "Core",
+ "CoreUObject",
+ "Engine",
+ "HeadMountedDisplay",
+ "InputCore",
+ "UMG",
+ "Slate",
+ "SlateCore",
+ "DeveloperSettings",
+ "Http"
+ }
+ );
+
+ PrivateDependencyModuleNames.AddRange(
+ new string[]{}
+ );
+
+ DynamicallyLoadedModuleNames.AddRange(
+ new string[]{}
+ );
+
+ if(Target.Platform == UnrealTargetPlatform.Win64 || Target.Platform == UnrealTargetPlatform.Linux)
+ {
+ //PublicDependencyModuleNames.Add("DisplayCluster");
+ PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=0");
+ }
+ else
+ {
+ PublicDefinitions.Add("PLATFORM_SUPPORTS_NDISPLAY=0");
+ }
+ }
}
diff --git a/Source/RWTHVRToolkitEditor/RWTHVRToolkitEditor.Build.cs b/Source/RWTHVRToolkitEditor/RWTHVRToolkitEditor.Build.cs
index f2b52dc9f12da22f9ae1408f9a80139fd9fb654a..a1e2b6c35cb009d4cd98f0050d317e5d9941879e 100644
--- a/Source/RWTHVRToolkitEditor/RWTHVRToolkitEditor.Build.cs
+++ b/Source/RWTHVRToolkitEditor/RWTHVRToolkitEditor.Build.cs
@@ -11,7 +11,6 @@ public class RWTHVRToolkitEditor : ModuleRules
{
"Core",
"CoreUObject",
- "DisplayCluster",
"Engine",
"UnrealEd",
"ComponentVisualizers",