Files
UnrealEngine/Engine/Plugins/Media/PixelStreaming/Source/PixelStreamingInput/Public/EditorPixelStreamingSettings.h
2025-05-18 13:04:45 +08:00

54 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DeveloperSettings.h"
#include "EditorPixelStreamingSettings.generated.h"
// Config loaded/saved to an .ini file.
// It is also exposed through the plugin settings page in editor.
UCLASS(config = PixelStreaming, defaultconfig, meta = (DisplayName = "PixelStreaming"))
class PIXELSTREAMINGINPUT_API UPixelStreamingSettings : public UDeveloperSettings
{
GENERATED_UCLASS_BODY()
public:
/**
* Pixel streaming always requires various software cursors so they will be
* visible in the video stream sent to the browser to allow the user to
* click and interact with UI elements.
*/
UPROPERTY(config, EditAnywhere, Category = PixelStreaming)
FSoftClassPath DefaultCursorClassName;
UPROPERTY(config, EditAnywhere, Category = PixelStreaming)
FSoftClassPath TextEditBeamCursorClassName;
/**
* Pixel Streaming can have a server-side cursor (where the cursor itself
* is shown as part of the video), or a client-side cursor (where the cursor
* is shown by the browser). In the latter case we need to turn the UE4
* cursor invisible.
*/
UPROPERTY(config, EditAnywhere, Category = PixelStreaming)
FSoftClassPath HiddenCursorClassName;
/**
* Pixel Streaming may be running on a machine which has no physical mouse
* attached, and yet the browser is sending mouse positions. As such, we
* fake the presence of a mouse.
*/
UPROPERTY(config, EditAnywhere, Category = PixelStreaming)
bool bMouseAlwaysAttached = true;
// Begin UDeveloperSettings Interface
virtual FName GetCategoryName() const override;
#if WITH_EDITOR
virtual FText GetSectionText() const override;
#endif
// END UDeveloperSettings Interface
#if WITH_EDITOR
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
#endif
};