You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
This represents UE4/Main @ 14525125 + cherrypicked fixes #skipundocheck [CL 14551026 by Marc Audy in ue5-main branch]
73 lines
2.3 KiB
C++
73 lines
2.3 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
#include "WindowsMixedRealitySpatialInput.h"
|
|
#include "IWindowsMixedRealitySpatialInputPlugin.h"
|
|
#include "Framework/Application/SlateApplication.h"
|
|
#include "WindowsMixedRealitySpatialInputFunctionLibrary.h"
|
|
#include "WindowsMixedRealityStatics.h"
|
|
|
|
//---------------------------------------------------
|
|
// Microsoft Windows MixedReality SpatialInput plugin
|
|
//---------------------------------------------------
|
|
|
|
class FWindowsMixedRealitySpatialInputPlugin :
|
|
public IWindowsMixedRealitySpatialInputPlugin
|
|
{
|
|
public:
|
|
FWindowsMixedRealitySpatialInputPlugin()
|
|
{
|
|
}
|
|
|
|
virtual void StartupModule() override
|
|
{
|
|
IInputDeviceModule::StartupModule();
|
|
|
|
WindowsMixedReality::FWindowsMixedRealitySpatialInput::RegisterKeys();
|
|
|
|
WindowsMixedReality::FWindowsMixedRealityStatics::ConfigureGesturesHandle = WindowsMixedReality::FWindowsMixedRealityStatics::OnConfigureGesturesDelegate.AddRaw(this, &FWindowsMixedRealitySpatialInputPlugin::OnConfigureGestures);
|
|
}
|
|
|
|
virtual TSharedPtr<class IInputDevice> CreateInputDevice(const TSharedRef<FGenericApplicationMessageHandler>& InMessageHandler) override
|
|
{
|
|
if (!InputDevice.IsValid())
|
|
{
|
|
TSharedPtr<IInputDevice> WindowsMixedRealitySpatialInput = MakeShared< WindowsMixedReality::FWindowsMixedRealitySpatialInput>(InMessageHandler);
|
|
InputDevice = WindowsMixedRealitySpatialInput;
|
|
return InputDevice;
|
|
}
|
|
else
|
|
{
|
|
InputDevice.Get()->SetMessageHandler(InMessageHandler);
|
|
return InputDevice;
|
|
}
|
|
return nullptr;
|
|
}
|
|
|
|
virtual TSharedPtr<IInputDevice> GetInputDevice() override
|
|
{
|
|
if (!InputDevice.IsValid())
|
|
{
|
|
InputDevice = CreateInputDevice(FSlateApplication::Get().GetPlatformApplication()->GetMessageHandler());
|
|
}
|
|
return InputDevice;
|
|
}
|
|
|
|
void OnConfigureGestures(const FXRGestureConfig& InGestureConfig, bool& bSuccess) override
|
|
{
|
|
bSuccess = UWindowsMixedRealitySpatialInputFunctionLibrary::CaptureGestures(
|
|
InGestureConfig.bTap,
|
|
InGestureConfig.bHold,
|
|
(ESpatialInputAxisGestureType)InGestureConfig.AxisGesture,
|
|
InGestureConfig.bNavigationAxisX,
|
|
InGestureConfig.bNavigationAxisY,
|
|
InGestureConfig.bNavigationAxisZ);
|
|
}
|
|
|
|
private:
|
|
TSharedPtr<IInputDevice> InputDevice;
|
|
|
|
};
|
|
|
|
|
|
IMPLEMENT_MODULE(FWindowsMixedRealitySpatialInputPlugin, WindowsMixedRealitySpatialInput)
|