Files
UnrealEngine/Engine/Plugins/Editor/MaterialAnalyzer/Source/MaterialAnalyzerModule.cpp
2025-05-18 13:04:45 +08:00

59 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "MaterialAnalyzerModule.h"
#include "SMaterialAnalyzer.h"
#include "WorkspaceMenuStructure.h"
#include "WorkspaceMenuStructureModule.h"
#include "Widgets/Docking/SDockTab.h"
#define LOCTEXT_NAMESPACE "MaterialAnalyzer"
static const FName MaterialAnalyzerName("MaterialAnalyzer");
class FMaterialAnalyzerModule : public IModuleInterface
{
public:
FMaterialAnalyzerModule()
{
}
// FModuleInterface overrides
virtual void StartupModule() override;
virtual void ShutdownModule() override {}
virtual bool SupportsDynamicReloading() override
{
return true;
}
TSharedRef<SDockTab> SpawnMaterialAnalyzerTab(const FSpawnTabArgs& SpawnTabArgs);
};
void FMaterialAnalyzerModule::StartupModule()
{
FGlobalTabmanager::Get()->RegisterNomadTabSpawner(
MaterialAnalyzerName,
FOnSpawnTab::CreateRaw(this, &FMaterialAnalyzerModule::SpawnMaterialAnalyzerTab))
.SetGroup(WorkspaceMenu::GetMenuStructure().GetDeveloperToolsAuditCategory())
.SetDisplayName(LOCTEXT("TabTitle", "Material Analyzer"))
.SetTooltipText(LOCTEXT("TooltipText", "Opens Material Analyzer tool."))
.SetIcon(FSlateIcon(FAppStyle::GetAppStyleSetName(), "MaterialEditor.ToggleMaterialStats.Tab"));
}
TSharedRef<SDockTab> FMaterialAnalyzerModule::SpawnMaterialAnalyzerTab(const FSpawnTabArgs& SpawnTabArgs)
{
const TSharedRef<SDockTab> MajorTab = SNew(SDockTab)
.TabRole(ETabRole::NomadTab);
TSharedPtr<SWidget> TabContent;
TabContent = SNew(SMaterialAnalyzer, MajorTab, SpawnTabArgs.GetOwnerWindow());
MajorTab->SetContent(TabContent.ToSharedRef());
return MajorTab;
}
IMPLEMENT_MODULE(FMaterialAnalyzerModule, MaterialAnalyzer)
#undef LOCTEXT_NAMESPACE