Files
2025-05-18 13:04:45 +08:00

37 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IPixelStreamingHMDModule.h"
#include "PixelStreamingHMD.h"
class IXRTrackingSystem;
namespace UE::PixelStreamingHMD
{
/*
* This module allows HMD input to be used with pixel streaming
*/
class FPixelStreamingHMDModule : public IPixelStreamingHMDModule
{
public:
FPixelStreamingHMD* GetPixelStreamingHMD() const;
EPixelStreamingXRSystem GetActiveXRSystem() { return ActiveXRSystem; }
void SetActiveXRSystem(EPixelStreamingXRSystem System) { ActiveXRSystem = System; }
private:
/** IModuleInterface implementation */
void StartupModule() override;
void ShutdownModule() override;
/** End IModuleInterface implementation */
/** IHeadMountedDisplayModule implementation */
virtual TSharedPtr<IXRTrackingSystem, ESPMode::ThreadSafe> CreateTrackingSystem() override;
FString GetModuleKeyName() const override { return FString(TEXT("PixelStreamingHMD")); }
bool IsHMDConnected() override { return true; }
/** IHeadMountedDisplayModule implementation */
TSharedPtr<FPixelStreamingHMD, ESPMode::ThreadSafe> HMD;
EPixelStreamingXRSystem ActiveXRSystem;
};
} // namespace UE::PixelStreamingHMD