You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Lit->Lumen Added Lit->Lumen submenu with 4 view modes - Lumen Scene, Lumen Reflection View, Lumen Surface Cache and Overview: * Lumen Scene - same as ShowFlags->VisualizeLumenScene. Visualizes Lumen scene representation in highest possible quality, with highest possible view distance * Lumen Reflection View - Lumen Scene, but with current reflections settings. Basically represents how things look in the reflections * Lumen Surface Cache - visualizes surface cache and marks with pink missing surface cache coverage * Overview - 3 Lumen view mode tiles, overlaid on top of normal view Show->Lumen Added Show->Lumen submenu with 6 flags, which allow to disable specific trace types (screen space, detail, global, far field), disable secondary bounces (radiosity) and disable Screen Space Directional Occlusion. Show->Visualize Removed �Lumen Scene� (replaced by Lit->Lumen->Lumen Scene view mode) and �Lumen Global Illumination� (replaced by r.Lumen.Visualize.IndirectDiffuse) from Advanced visualization modes are accessible through r.Lumen.Visualize.Mode, which overrides current Lit->Lumen-> settings. Misc changes: * Renamed VisualizeLumenScene* to LumenVisualize* * Moved shared visualize parameters to LumenVisualize.h * Lumen HWRT visualize now uses same ray footprint as SWRT visualize * Replaced HALF_WORLD_MAX with Lumen::MaxTracingEndDistanceFromCamera and Lumen::MaxTraceDistance in preparation for the LWC WORLD_MAX changes #rb Patrick.Kelly, Daniel.Wright #preflight 61e73339b56c33b8ecf753b2 #ROBOMERGE-AUTHOR: krzysztof.narkowicz #ROBOMERGE-SOURCE: CL 18658215 in //UE5/Release-5.0/... via CL 18658227 via CL 18658249 #ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592) [CL 18658268 by krzysztof narkowicz in ue5-main branch]
135 lines
4.4 KiB
C++
135 lines
4.4 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "LumenVisualizationMenuCommands.h"
|
|
#include "LumenVisualizationData.h"
|
|
#include "Containers/UnrealString.h"
|
|
#include "Framework/Commands/InputChord.h"
|
|
#include "Materials/Material.h"
|
|
#include "Internationalization/Text.h"
|
|
#include "Templates/Function.h"
|
|
#include "EditorStyleSet.h"
|
|
#include "EditorViewportClient.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "LumenVisualizationMenuCommands"
|
|
|
|
FLumenVisualizationMenuCommands::FLumenVisualizationMenuCommands()
|
|
: TCommands<FLumenVisualizationMenuCommands>
|
|
(
|
|
TEXT("LumenVisualizationMenu"), // Context name for fast lookup
|
|
NSLOCTEXT("Contexts", "LumenVisualizationMenu", "Lumen Visualization"), // Localized context name for displaying
|
|
NAME_None, // Parent context name.
|
|
FEditorStyle::GetStyleSetName() // Icon Style Set
|
|
),
|
|
CommandMap()
|
|
{
|
|
}
|
|
|
|
void FLumenVisualizationMenuCommands::BuildCommandMap()
|
|
{
|
|
const FLumenVisualizationData& VisualizationData = GetLumenVisualizationData();
|
|
const FLumenVisualizationData::TModeMap& ModeMap = VisualizationData.GetModeMap();
|
|
|
|
CommandMap.Empty();
|
|
for (FLumenVisualizationData::TModeMap::TConstIterator It = ModeMap.CreateConstIterator(); It; ++It)
|
|
{
|
|
const FLumenVisualizationData::FModeRecord& Entry = It.Value();
|
|
FLumenVisualizationRecord& Record = CommandMap.Add(Entry.ModeName, FLumenVisualizationRecord());
|
|
Record.Name = Entry.ModeName;
|
|
Record.Command = FUICommandInfoDecl(
|
|
this->AsShared(),
|
|
Entry.ModeName,
|
|
Entry.ModeText,
|
|
Entry.ModeDesc)
|
|
.UserInterfaceType(EUserInterfaceActionType::RadioButton)
|
|
.DefaultChord(FInputChord()
|
|
);
|
|
|
|
switch (Entry.ModeType)
|
|
{
|
|
default:
|
|
case FLumenVisualizationData::FModeType::Overview:
|
|
Record.Type = FLumenVisualizationType::Overview;
|
|
break;
|
|
|
|
case FLumenVisualizationData::FModeType::Standard:
|
|
Record.Type = FLumenVisualizationType::Standard;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
void FLumenVisualizationMenuCommands::BuildVisualisationSubMenu(FMenuBuilder& Menu)
|
|
{
|
|
const FLumenVisualizationMenuCommands& Commands = FLumenVisualizationMenuCommands::Get();
|
|
if (Commands.IsPopulated())
|
|
{
|
|
Menu.BeginSection("LevelViewportLumenVisualizationMode", LOCTEXT("LumenVisualizationHeader", "Lumen Visualization Mode"));
|
|
|
|
if (Commands.AddCommandTypeToMenu(Menu, FLumenVisualizationType::Overview))
|
|
{
|
|
Menu.AddMenuSeparator();
|
|
}
|
|
|
|
Commands.AddCommandTypeToMenu(Menu, FLumenVisualizationType::Standard);
|
|
|
|
Menu.EndSection();
|
|
}
|
|
}
|
|
|
|
bool FLumenVisualizationMenuCommands::AddCommandTypeToMenu(FMenuBuilder& Menu, const FLumenVisualizationType Type) const
|
|
{
|
|
bool bAddedCommands = false;
|
|
|
|
const TLumenVisualizationModeCommandMap& Commands = CommandMap;
|
|
for (TCommandConstIterator It = CreateCommandConstIterator(); It; ++It)
|
|
{
|
|
const FLumenVisualizationRecord& Record = It.Value();
|
|
if (Record.Type == Type)
|
|
{
|
|
Menu.AddMenuEntry(Record.Command, NAME_None, Record.Command->GetLabel());
|
|
bAddedCommands = true;
|
|
}
|
|
}
|
|
|
|
return bAddedCommands;
|
|
}
|
|
|
|
FLumenVisualizationMenuCommands::TCommandConstIterator FLumenVisualizationMenuCommands::CreateCommandConstIterator() const
|
|
{
|
|
return CommandMap.CreateConstIterator();
|
|
}
|
|
|
|
void FLumenVisualizationMenuCommands::RegisterCommands()
|
|
{
|
|
BuildCommandMap();
|
|
}
|
|
|
|
void FLumenVisualizationMenuCommands::BindCommands(FUICommandList& CommandList, const TSharedPtr<FEditorViewportClient>& Client) const
|
|
{
|
|
// Map Lumen visualization mode actions
|
|
for (FLumenVisualizationMenuCommands::TCommandConstIterator It = FLumenVisualizationMenuCommands::Get().CreateCommandConstIterator(); It; ++It)
|
|
{
|
|
const FLumenVisualizationMenuCommands::FLumenVisualizationRecord& Record = It.Value();
|
|
CommandList.MapAction(
|
|
Record.Command,
|
|
FExecuteAction::CreateStatic<const TSharedPtr<FEditorViewportClient>&>(&FLumenVisualizationMenuCommands::ChangeLumenVisualizationMode, Client, Record.Name),
|
|
FCanExecuteAction(),
|
|
FIsActionChecked::CreateStatic<const TSharedPtr<FEditorViewportClient>&>(&FLumenVisualizationMenuCommands::IsLumenVisualizationModeSelected, Client, Record.Name)
|
|
);
|
|
}
|
|
}
|
|
|
|
void FLumenVisualizationMenuCommands::ChangeLumenVisualizationMode(const TSharedPtr<FEditorViewportClient>& Client, FName InName)
|
|
{
|
|
check(Client.IsValid());
|
|
Client->ChangeLumenVisualizationMode(InName);
|
|
}
|
|
|
|
bool FLumenVisualizationMenuCommands::IsLumenVisualizationModeSelected(const TSharedPtr<FEditorViewportClient>& Client, FName InName)
|
|
{
|
|
check(Client.IsValid());
|
|
return Client->IsLumenVisualizationModeSelected(InName);
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|