Slate.EnableRawInputSimulationOverRDP

Slate.EnableRawInputSimulationOverRDP

#Overview

name: Slate.EnableRawInputSimulationOverRDP

This variable is created as a Console Variable (cvar).

It is referenced in 4 C++ source files.

#Summary

#Usage in the C++ source code

The purpose of Slate.EnableRawInputSimulationOverRDP is to control whether raw input simulation should be enabled when using Remote Desktop Protocol (RDP) connections in Unreal Engine’s Slate UI framework.

This setting variable is primarily used in the Windows-specific implementation of the ApplicationCore module, which handles platform-specific application behavior and input processing.

The value of this variable is set using an FAutoConsoleVariableRef, which allows it to be modified at runtime through the console or configuration files. It is initialized to true by default in non-shipping builds and false in shipping builds.

The associated variable EnableRawInputSimulationOverRDP interacts directly with this setting. They share the same value and are used together in the ShouldSimulateRawInput() function to determine if raw input simulation should be enabled.

Developers should be aware that this variable is specifically for Windows platforms and is used in conjunction with remote sessions. It may affect input behavior when running the application over RDP connections.

Best practices for using this variable include:

  1. Consider the target environment when modifying this setting, especially for remote or networked scenarios.
  2. Test input behavior thoroughly when changing this setting, particularly in RDP sessions.
  3. Be aware that this setting may have different default values in shipping and non-shipping builds.

Regarding the associated variable EnableRawInputSimulationOverRDP:

#References in C++ code

#Callsites

This variable is referenced in the following C++ source code:

#Loc: <Workspace>/Engine/Source/Runtime/ApplicationCore/Private/Windows/WindowsApplication.cpp:66

Scope: file

Source code excerpt:

static int32 EnableRawInputSimulationOverRDP = true;
FAutoConsoleVariableRef	CVarEnableRawInputSimulationOverRDP(
	TEXT("Slate.EnableRawInputSimulationOverRDP"),
	EnableRawInputSimulationOverRDP,
	TEXT("")
);

static int32 ForceRawInputSimulation = false;
FAutoConsoleVariableRef	CVarForceRawInputSimulation(

#Associated Variable and Callsites

This variable is associated with another variable named EnableRawInputSimulationOverRDP. They share the same value. See the following C++ source code.

#Loc: <Workspace>/Engine/Source/Runtime/ApplicationCore/Private/Windows/WindowsApplication.cpp:64

Scope: file

Source code excerpt:


#if !UE_BUILD_SHIPPING
static int32 EnableRawInputSimulationOverRDP = true;
FAutoConsoleVariableRef	CVarEnableRawInputSimulationOverRDP(
	TEXT("Slate.EnableRawInputSimulationOverRDP"),
	EnableRawInputSimulationOverRDP,
	TEXT("")
);

static int32 ForceRawInputSimulation = false;
FAutoConsoleVariableRef	CVarForceRawInputSimulation(
	TEXT("Slate.ForceRawInputSimulation"),

#Loc: <Workspace>/Engine/Source/Runtime/ApplicationCore/Private/Windows/WindowsApplication.cpp:79

Scope: file

Source code excerpt:

#else
static int32 ForceRawInputSimulation = false;
static int32 EnableRawInputSimulationOverRDP = false;
#endif

/* 
* Enabling first touch event will prevent small pop on some touch input devices.
*/
static bool bEnableFirstTouchEvent = false;

#Loc: <Workspace>/Engine/Source/Runtime/ApplicationCore/Private/Windows/WindowsApplication.cpp:98

Scope (from outer to inner):

file
function     static bool ShouldSimulateRawInput

Source code excerpt:

static bool ShouldSimulateRawInput()
{
	return ForceRawInputSimulation || (EnableRawInputSimulationOverRDP && FPlatformMisc::IsRemoteSession());
}

FWindowsApplication* FWindowsApplication::CreateWindowsApplication( const HINSTANCE InstanceHandle, const HICON IconHandle )
{
	WindowsApplication = new FWindowsApplication( InstanceHandle, IconHandle );
	return WindowsApplication;