98 lines
2.8 KiB
C++
98 lines
2.8 KiB
C++
// @lint-ignore-every LICENSELINT
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
#include "IOculusXRMRModule.h"
|
|
#include "Engine/EngineBaseTypes.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "OculusXRMR"
|
|
|
|
enum class EOculusXRMR_CompositionMethod : uint8;
|
|
enum class EOculusXRMR_DepthQuality : uint8;
|
|
|
|
class UOculusXRMR_Settings;
|
|
class AOculusXRMR_CastingCameraActor;
|
|
class UOculusXRMR_State;
|
|
|
|
//-------------------------------------------------------------------------------------------------
|
|
// FOculusXRInputModule
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
class FOculusXRMRModule : public IOculusXRMRModule
|
|
{
|
|
public:
|
|
FOculusXRMRModule();
|
|
~FOculusXRMRModule();
|
|
|
|
static inline FOculusXRMRModule& Get()
|
|
{
|
|
return FModuleManager::GetModuleChecked<FOculusXRMRModule>("OculusXRMR");
|
|
}
|
|
|
|
// IOculusXRMRModule
|
|
virtual void StartupModule() override;
|
|
virtual void ShutdownModule() override;
|
|
|
|
bool IsInitialized() { return bInitialized; }
|
|
|
|
bool IsActive();
|
|
UOculusXRMR_Settings* GetMRSettings();
|
|
UOculusXRMR_State* GetMRState();
|
|
|
|
private:
|
|
bool bInitialized;
|
|
UOculusXRMR_Settings* MRSettings;
|
|
UOculusXRMR_State* MRState;
|
|
AOculusXRMR_CastingCameraActor* MRActor;
|
|
UWorld* CurrentWorld;
|
|
|
|
FDelegateHandle WorldAddedEventBinding;
|
|
FDelegateHandle WorldDestroyedEventBinding;
|
|
FDelegateHandle WorldLoadEventBinding;
|
|
|
|
void InitMixedRealityCapture();
|
|
|
|
/** Initialize the tracked physical camera */
|
|
void SetupExternalCamera();
|
|
/** Set up the needed settings and actors for MRC in-game */
|
|
void SetupInGameCapture();
|
|
/** Destroy actors for MRC in-game */
|
|
void CloseInGameCapture();
|
|
/** Reset all the MRC settings and state to the config and default */
|
|
void ResetSettingsAndState();
|
|
|
|
/** Handle changes on specific settings */
|
|
void OnCompositionMethodChanged(EOculusXRMR_CompositionMethod OldVal, EOculusXRMR_CompositionMethod NewVal);
|
|
void OnIsCastingChanged(bool OldVal, bool NewVal);
|
|
void OnUseDynamicLightingChanged(bool OldVal, bool NewVal);
|
|
void OnDepthQualityChanged(EOculusXRMR_DepthQuality OldVal, EOculusXRMR_DepthQuality NewVal);
|
|
void OnTrackedCameraIndexChanged(int OldVal, int NewVal);
|
|
|
|
void OnWorldCreated(UWorld* NewWorld);
|
|
void OnWorldDestroyed(UWorld* NewWorld);
|
|
|
|
#if PLATFORM_ANDROID
|
|
bool bActivated;
|
|
|
|
FDelegateHandle InitialWorldAddedEventBinding;
|
|
FDelegateHandle InitialWorldLoadEventBinding;
|
|
FDelegateHandle PreWorldTickEventBinding;
|
|
|
|
void ChangeCaptureState();
|
|
void OnWorldTick(UWorld* World, ELevelTick Tick, float Delta);
|
|
void OnInitialWorldCreated(UWorld* NewWorld);
|
|
#endif
|
|
|
|
#if WITH_EDITOR
|
|
FDelegateHandle PieBeginEventBinding;
|
|
FDelegateHandle PieStartedEventBinding;
|
|
FDelegateHandle PieEndedEventBinding;
|
|
|
|
void OnPieBegin(bool bIsSimulating);
|
|
void OnPieStarted(bool bIsSimulating);
|
|
void OnPieEnded(bool bIsSimulating);
|
|
#endif
|
|
};
|
|
|
|
#undef LOCTEXT_NAMESPACE
|