Files
UnrealEngineUWP/Engine/Source/Editor/MeshPaintMode/Private/MeshPaintModeModule.cpp
ben zeigler e4549adade #jira UE-60254 Fix shutdown crash in nativization module. Also fix several other places that were loading modules during module shutdown
#rb phillip.kavan

#ROBOMERGE-SOURCE: CL 4136215 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: ben.zeigler

[CL 4136217 by ben zeigler in Staging-4.20 branch]
2018-06-18 16:22:43 -04:00

52 lines
2.3 KiB
C++

// Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.
#include "MeshPaintModeModule.h"
#include "Modules/ModuleManager.h"
#include "Textures/SlateIcon.h"
#include "EditorStyleSet.h"
#include "EditorModeRegistry.h"
#include "EditorModes.h"
#include "MeshPaintEdMode.h"
#include "PropertyEditorModule.h"
#include "PaintModeSettingsCustomization.h"
#include "PaintModeSettings.h"
#include "Modules/ModuleManager.h"
IMPLEMENT_MODULE(FMeshPaintModeModule, MeshPaintMode );
void FMeshPaintModeModule::StartupModule()
{
FEditorModeRegistry::Get().RegisterMode<FEdModeMeshPaint>(
FBuiltinEditorModes::EM_MeshPaint,
NSLOCTEXT("MeshPaint_Mode", "MeshPaint_ModeName", "Paint"),
FSlateIcon(FEditorStyle::GetStyleSetName(), "LevelEditor.MeshPaintMode", "LevelEditor.MeshPaintMode.Small"),
true, 200 );
/** Register detail/property customization */
FPropertyEditorModule& PropertyModule = FModuleManager::LoadModuleChecked<FPropertyEditorModule>("PropertyEditor");
PropertyModule.RegisterCustomClassLayout("PaintModeSettings", FOnGetDetailCustomizationInstance::CreateStatic(&FPaintModeSettingsCustomization::MakeInstance));
PropertyModule.RegisterCustomPropertyTypeLayout("VertexPaintSettings", FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FVertexPaintSettingsCustomization::MakeInstance));
PropertyModule.RegisterCustomPropertyTypeLayout("TexturePaintSettings", FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FTexturePaintSettingsCustomization::MakeInstance));
PropertyModule.RegisterCustomPropertyTypeLayout("TexturePaintSettings", FOnGetPropertyTypeCustomizationInstance::CreateStatic(&FTexturePaintSettingsCustomization::MakeInstance));
FModuleManager::Get().LoadModule("MeshPaint");
}
void FMeshPaintModeModule::ShutdownModule()
{
FEditorModeRegistry::Get().UnregisterMode(FBuiltinEditorModes::EM_MeshPaint);
/** De-register detail/property customization */
FPropertyEditorModule* PropertyModule = FModuleManager::GetModulePtr<FPropertyEditorModule>("PropertyEditor");
if (PropertyModule)
{
PropertyModule->UnregisterCustomClassLayout("PaintModeSettings");
PropertyModule->UnregisterCustomPropertyTypeLayout("VertexPaintSettings");
PropertyModule->UnregisterCustomPropertyTypeLayout("TexturePaintSettings");
PropertyModule->UnregisterCustomPropertyTypeLayout("TexturePaintSettings");
}
}