October3d55/M/PICOOpen7991a2a23d57V5/Source/PICOOpenXRRuntimeSettings/Public/PICOOpenXRRuntimeSettings.h

135 lines
5.7 KiB
C
Raw Normal View History

2025-03-10 09:43:27 +08:00
// 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;
};