55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
// @lint-ignore-every LICENSELINT
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
#include "IOculusXRSceneModule.h"
|
|
#include "OculusXRAnchorsModule.h"
|
|
#include "openxr/OculusXRSceneXR.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "OculusXRScene"
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
// FOculusXRSceneModule
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
DECLARE_LOG_CATEGORY_EXTERN(LogOculusXRScene, Log, All);
|
|
|
|
typedef TSharedPtr<XRScene::FSceneXR, ESPMode::ThreadSafe> FSceneXRPtr;
|
|
|
|
#if OCULUS_SCENE_SUPPORTED_PLATFORMS
|
|
|
|
class FOculusXRSceneModule : public IOculusXRSceneModule, public IOculusXRCreateAnchorComponent
|
|
{
|
|
public:
|
|
static inline FOculusXRSceneModule& Get()
|
|
{
|
|
return FModuleManager::LoadModuleChecked<FOculusXRSceneModule>("OculusXRScene");
|
|
}
|
|
|
|
virtual ~FOculusXRSceneModule() = default;
|
|
|
|
// IModuleInterface interface
|
|
virtual void StartupModule() override;
|
|
virtual void ShutdownModule() override;
|
|
|
|
void OnPostEngineInit();
|
|
|
|
// IOculusXRCreateAnchorComponent
|
|
virtual UOculusXRBaseAnchorComponent* TryCreateAnchorComponent(uint64 AnchorHandle, EOculusXRSpaceComponentType Type, UObject* Outer) override;
|
|
|
|
FSceneXRPtr GetXrScene() { return SceneXR; }
|
|
|
|
private:
|
|
FSceneXRPtr SceneXR;
|
|
};
|
|
|
|
#else // OCULUS_SCENE_SUPPORTED_PLATFORMS
|
|
|
|
class FOculusXRSceneModule : public FDefaultModuleImpl
|
|
{
|
|
};
|
|
|
|
#endif // OCULUS_SCENE_SUPPORTED_PLATFORMS
|
|
|
|
#undef LOCTEXT_NAMESPACE
|