135 lines
5.7 KiB
C++
135 lines
5.7 KiB
C++
// Copyright 2023 PICO Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "UObject/ObjectMacros.h"
|
|
#include "UObject/Object.h"
|
|
#include "Engine/EngineTypes.h"
|
|
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogPICOOpenXRSettings, Log, All);
|
|
|
|
#include "PICOOpenXRRuntimeSettings.generated.h"
|
|
|
|
UENUM(BlueprintType)
|
|
enum class EDisplayRefreshRatePICO : uint8
|
|
{
|
|
Default = 0,
|
|
Rate72 = 1,
|
|
Rate90 = 2,
|
|
Rate120 = 3,
|
|
};
|
|
|
|
UENUM(BlueprintType, meta = (Categories = "PICO|MR"))
|
|
enum class ESpatialMeshLodPICO:uint8
|
|
{
|
|
Low = 0,
|
|
Medium = 1,
|
|
High = 2
|
|
};
|
|
|
|
UENUM()
|
|
enum class ESharpeningTypePICO : uint8
|
|
{
|
|
None UMETA(ToolTip = "Turn off Sharpening"),
|
|
NormalSharpening UMETA(ToolTip = "Turn on NormalSharpening"),
|
|
QualitySharpening UMETA(ToolTip = "Turn on QualitySharpening")
|
|
};
|
|
|
|
UENUM()
|
|
enum class ESharpeningEnhanceModePICO : uint8
|
|
{
|
|
None UMETA(ToolTip = "Turn off all EnhanceMode"),
|
|
FixedFoveated UMETA(ToolTip = "Turn on Fixed Foveated Mode"),
|
|
Adaptive UMETA(ToolTip = "Turn on Adaptive"),
|
|
Both UMETA(ToolTip = "Turn on Fixed Foveated and Adaptive Mode")
|
|
};
|
|
|
|
UCLASS(config = Engine, defaultconfig)
|
|
class PICOOPENXRRUNTIMESETTINGS_API UPICOOpenXRRuntimeSettings : public UObject
|
|
{
|
|
public:
|
|
GENERATED_UCLASS_BODY()
|
|
|
|
virtual void PostInitProperties() override;
|
|
|
|
static bool GetBoolConfigByKey(const FString& InKeyName);
|
|
|
|
#if WITH_EDITOR
|
|
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
|
|
void HandlesRGBHWSupport();
|
|
#endif // WITH_EDITOR
|
|
|
|
/** Whether eye tracking functionality can be used with the app */
|
|
UPROPERTY(GlobalConfig, EditAnywhere, Category = Movement, meta = (DisplayName = "Eye Tracking Enabled"))
|
|
bool bEyeTrackingEnabled = false;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = Movement, Meta = (EditCondition = "bEyeTrackingEnabled", DisplayName = "Enable Eye Tracking Calibration", ToolTip = "Enable Eye Tracking Calibration"))
|
|
bool bEnableEyeTrackingCalibration = false;
|
|
|
|
/** Indicates whether HandTracking is used in the current app */
|
|
UPROPERTY(GlobalConfig, EditAnywhere, Category = HandTracking, meta = (DisplayName = "Is Hand Tracking Used"))
|
|
bool bIsHandTrackingUsed = false;
|
|
|
|
/** If turned on, hand tracking will run at a higher tracking frequency, which will improve the smoothness of hand tracking, but the power consumption will increase. */
|
|
UPROPERTY(GlobalConfig, EditAnywhere, Category = HandTracking, meta = (EditCondition = "bIsHandTrackingUsed", DisplayName = "high frequency tracking(60Hz)"))
|
|
bool bIsHandHighFrequencyTracking = false;
|
|
|
|
/** If false (the default) the motion sources for hand tracking will be of the form '[Left|Right][Keypoint]'. If true they will be of the form 'HandTracking[Left|Right][Keypoint]'. True is reccomended to avoid collisions between motion sources from different device types. **/
|
|
UPROPERTY(config, EditAnywhere, Category = HandTracking)
|
|
bool bUseMoreSpecificMotionSourceNames = false;
|
|
|
|
/** If true hand tracking supports the 'Left' and 'Right' legacy motion sources. If false it does not. False is reccomended unless you need legacy compatibility in an older unreal projects.**/
|
|
UPROPERTY(config, EditAnywhere, Category = HandTracking)
|
|
bool bSupportLegacyControllerMotionSources = true;
|
|
|
|
/** Indicates whether BodyTracking is used in the current app */
|
|
UPROPERTY(GlobalConfig, EditAnywhere, Category = Movement, meta = (DisplayName = "Is Body Tracking Used"))
|
|
bool bEnableBodyTracking = false;
|
|
|
|
UPROPERTY(config, EditAnywhere, Category = Mobile, meta = (DisplayName = "Is OS Splash Used"))
|
|
bool bUsingOSSplash;
|
|
|
|
UPROPERTY(config, EditAnywhere, Category = Mobile, meta = (EditCondition = "bUsingOSSplash", DisplayName = "OS Splash Screen", FilePathFilter = "png"))
|
|
FFilePath OSSplashScreen;
|
|
|
|
UPROPERTY(config, EditAnywhere, Category = Feature, meta = (DisplayName = "Setup Device Display Refresh Rate"))
|
|
EDisplayRefreshRatePICO DisplayRefreshRate;
|
|
|
|
UPROPERTY(config, EditAnywhere, Category = Feature, meta = (DisplayName = "Set the tracking origin to local floor level"))
|
|
bool bLocalFloorLevelEXT = false;
|
|
|
|
UPROPERTY(config)
|
|
bool bEnablePassthroughEXT = false;
|
|
|
|
UPROPERTY(config, EditAnywhere, Category = Feature, meta = (DisplayName = "Enable Content Protect"))
|
|
bool bContentProtectEXT = false;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (DisplayName = "Enable MR Safeguard", ToolTip = " MR safety, if you choose this option, your application will adopt MR safety policies during runtime. If not selected, it will continue to use VR safety policies by default."))
|
|
bool bEnableMRSafeguard;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (DisplayName = "Enable Video Seethrough"))
|
|
bool bEnableVST;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (DisplayName = "Enable Spatial Anchor"))
|
|
bool bEnableAnchor;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (EditCondition = "bEnableAnchor", DisplayName = "Enable Spatial Shared Anchor"))
|
|
bool bEnableCloudAnchor;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (DisplayName = "Enable Scene Capture"))
|
|
bool bEnableSceneCapture;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (DisplayName = "Enable Spatial Mesh"))
|
|
bool bEnableMesh;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (EditCondition = "bEnableMesh", DisplayName = "Enable Semantics Align With Triangle"))
|
|
bool bSemanticsAlignWithTriangle;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (EditCondition = "bEnableMesh", DisplayName = "Enable Semantics Align With Vertex"))
|
|
bool bSemanticsAlignWithVertex;
|
|
|
|
UPROPERTY(Config, EditAnywhere, Category = MixedReality, Meta = (EditCondition = "bEnableMesh", DisplayName = "Spatial Mesh Lod"))
|
|
ESpatialMeshLodPICO MeshLod;
|
|
};
|